2014-01-20 34 views
0

目前即時通訊這個代碼獲取當前的設備語言:如何,每當用戶改變其更新設備語言

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0]; 

現在我需要更新此語言,只要通過NSCurrentLocaleDidChangeNotification

用戶更改到設備的其他語言

你可以建議我如何更新語言,如果用戶更改爲設備中的其他語言。

回答

1

沒有必要由你自己做,iOS設備會照顧的ü

的知道哪些語言 - >假設當u改變語言裝置 - >設置 所有的應用程序在後臺會終止,和u需要在 方法再次啓動它


你的情況是非常不同的,所以你怎麼能對不斷變化的語言實現通知,becz應用程序被終止,這樣你們不就不可能得到任何通知,

更好

u需要使用用戶默認試試這個

EDITED FOR CONDITION


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 


    // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(defaultsChanged) name:NSCurrentLocaleDidChangeNotification object:nil]; 


    NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0]; 
    NSLog(@"%@",language); 
    NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults]; 
    NSString *currecntLan = [standardDefaults objectForKey:@"CURRENTLAN"]; 
    if([currecntLan isEqualToString:language]) 
    { 
     NSLog(@"language does't change"); 
    } 
    else 
    { 
     NSLog(@"CHANGED"); 
     //your saving code 
    } 
    } 


- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 


    //since u need to update the userdefaults 
    //hear u can set the defaults with current language 
    NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0]; 
    NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults]; 
    [standardDefaults setObject:language forKey:@"CURRENTLAN"]; 


} 


END EDITE FOR CONDITION

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

{

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0]; 
    NSLog(@"%@",language);//it prints "en" for english 

    ..update it to server heare 


  • 選擇你的項目 - >信息 - >本地化 - > 「添加ü要suppourt語言」
  • Info.plist文件添加到你的項目,在那裏選擇你想要支持的語言
  • 編輯該文件的格式爲key = value; // heare key是幫助的基本語言,值是支持的語言。

例如,heare我添加了 「西班牙」 語言的stringfile看起來像下面

"Automatic Play" = "juego automático"; 
"Manual Play"  = "juego manual"; 
"Settings"   = "Ajustes"; 


另一個字符串文件日語它看起來像下面


"Automatic Play" = "自動再生"; 
"Manual Play"  = "手動遊び"; 
"Settings"   = "設定"; 


後,美需要使用一些在宏編程文件,例如

[aButton setTitle:NSLocalizedString(@"Automatic Play", nil) forState:UIControlStateNormal]; //use like this hear "Automatic Play" is the key that u specify 

...和他人也

只是用這樣的並且當您更改設備中的語言時,每個密鑰的值都會更新,因此不需要執行額外的工作

有很多博客可以關注它。

+0

我這樣做的東西已經 –

+0

如果用戶更改語言設置,然後再次打開該應用程序,我需要更新用戶更改語言 –

+0

雅它將更新 –

0

不用擔心,只需檢查應用程序啓動時的語言。

每當您更改設備語言時,您的應用程序將重新啓動。