Advertisement
thieumao

LanguageManager - Swift 2.3

Nov 10th, 2016
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.00 KB | None | 0 0
  1. //
  2. //  LanguageManager.swift
  3. //  Learn4
  4. //
  5. //  Created by Nguyen Van Thieu B on 11/3/16.
  6. //  Copyright © 2016 Thieu Mao. All rights reserved.
  7. //
  8.  
  9. import UIKit
  10.  
  11. class LanguageManager: NSObject {
  12.    
  13.     var availableLocales = [Locale]()
  14.     static let sharedInstance = LanguageManager()
  15.    
  16.     override init() {
  17.        
  18.         let english = Locale()
  19.         english.initWithLanguageCode("en", countryCode: "gb", name: "United Kingdom")
  20.        
  21.         let finnish  = Locale()
  22.         finnish.initWithLanguageCode("vi", countryCode: "vi", name: "VietNamese")
  23.         self.availableLocales = [english,finnish]
  24.        
  25.     }
  26.    
  27.     func getCurrentBundle()->NSBundle{
  28.        
  29.         let bundlePath = NSBundle.mainBundle().pathForResource(getSelectedLocale(), ofType: "lproj")
  30.         let bundle = NSBundle(path: bundlePath!)
  31.         return bundle!
  32.        
  33.     }
  34.    
  35.     private func getSelectedLocale()->String{
  36.        
  37.         let lang = NSLocale.preferredLanguages()
  38.         let languageComponents: [String : String] = NSLocale.componentsFromLocaleIdentifier(lang[0])
  39.        
  40.         if let languageCode: String = languageComponents[NSLocaleLanguageCode]{
  41.            
  42.             for locale in availableLocales {
  43.                 if(locale.languageCode == languageCode){
  44.                    
  45.                     return locale.languageCode!
  46.                 }
  47.             }
  48.         }
  49.         return "en"
  50.     }
  51.    
  52.     func setLocale(langCode:String){
  53.        
  54.         NSUserDefaults.standardUserDefaults().setObject([langCode], forKey: "AppleLanguages")
  55.         NSUserDefaults.standardUserDefaults().synchronize()
  56.        
  57.     }
  58. }
  59. class Locale: NSObject {
  60.     var name:String?
  61.     var languageCode:String?
  62.     var countryCode:String?
  63.    
  64.     func initWithLanguageCode(languageCode: String, countryCode:String, name: String)->AnyObject{
  65.         self.name = name
  66.         self.languageCode = languageCode
  67.         self.countryCode = countryCode
  68.         return self
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement