一年好景君须记,最是橙黄橘绿时。这篇文章主要讲述本地化不适用于App的初始加载相关的知识,希望能为你提供帮助。
这是一个棘手的问题。我的应用程序是英文的,我也将其本地化为法语。当我在法国设备上安装它时,它首先用英语加载但是当我关闭我的应用程序并打开它然后用法语加载它。
答案有时,语言不会出现在像en这样的预期代码中,以避免像这样添加两个本地化文件的密钥
把它放在en本地化文件中
"appLang"="en";
这在fr本地化文件中
"appLang"="fr";
当app启动这样的检查语言时
let ll = NSLocalizedString("appLang", comment: "")// instance is a shared object has a property to check language property in all parts of the app if(ll == "en")
{
instance.isEn= trueUserDefaults.standard.set([ll], forKey: "AppleLanguages")}
else
{
instance.isEn= falseUserDefaults.standard.set([ll], forKey: "AppleLanguages")
}
此外,你可以像这样强制捆绑
NSString *lang = (NSString *)[[NSLocale preferredLanguages] objectAtIndex:0];
接下来找到这种语言的包:
NSBundle *myLangBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:lang ofType:@"lproj"]];
【本地化不适用于App的初始加载】如果找到了bundle,那么在
NSLocalizedStringFromTableInBundle
中使用它:_label.text = NSLocalizedStringFromTableInBundle(@"LabelText",nil,myLangBundle,nil);
否则查找并使用默认包。
推荐阅读
- Android Wear没有拿起本地化版本
- timeago相当于Android
- 在Android和Raspberry Pi 3 Linux之间建立Wifi-Direct连接
- 通过Android应用程序向Apache服务器发送请求,摆脱无限循环
- MediaPlayer无法在Android Things Raspberry Pi 3上运行
- 在Android Things上扫描Wifi网络会返回空列表
- 如何在Raspberry Pi 3模块上启用I2C(与Android Things一起使用作为操作系统)
- 使用generator-fountain-webapp的Yoeman出错
- 找不到模块'wrappy'