gpt4 book ai didi

ios - 如何在用户更改时更新设备语言

转载 作者:行者123 更新时间:2023-11-29 03:19:52 25 4
gpt4 key购买 nike

目前我通过这段代码获取当前设备语言:

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

现在,每当用户通过 NSCurrentLocaleDidChangeNotification 更改为设备中的其他语言时,我都需要更新此语言

如果用户更改为设备中的其他语言,您能否建议我如何更新语言。

最佳答案

不用自己动手,iOS会帮你搞定

用于了解哪种语言 -> 假设您在设备 -> 设置中更改语言后台所有应用程序将被终止,您需要再次启动它方法


您的情况非常不同,因此如何实现更改语言的通知,这是不可能的,因为应用程序已终止,因此您不会收到任何通知,

更好的是,你需要使用用户默认值试试这个

已编辑条件


   - (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"];


}


结束编辑条件

  - (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


  • 选择您的项目->信息->本地化->“添加您想要支持的语言”
  • info.plist 文件已添加到您的项目中,在该文件中选择您要支持的语言
  • key = value; 格式编辑该文件//heare key 是帮助的基本语言,value 是支持的语言。

例如,我听说我添加了“西类牙语”语言,它的字符串文件如下所示

 "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

...对于其他人来说也是如此

只需像这样使用,当您更改设备中的语言时,每个键的值都会更新,您不需要做任何额外的工作

有很多你可以关注的博客。

关于ios - 如何在用户更改时更新设备语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21226535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com