这已经困扰了好几天。
我已在我的项目中设置了阿拉伯语本地化,并且我已将设备语言设置为阿拉伯语。
当我从Xcode运行我的应用程序并将运行方案选项设置为使用阿拉伯语本地化时,本地化工作正常。
当我在没有Xcode的情况下运行应用程序时,该应用程序使用英语。
我已经阅读了类似问题的答案,但到目前为止,这些问题都没有对我有用。
我正在使用NSLocalizableString(@"login",@"");
从Localizable.strings
文件加载字符串。只要我将“运行方案本地化”选项设置为阿拉伯语,就可以正常工作。
我尝试卸载应用,清理项目然后重新安装。现在,该应用程序使用Localizabe.strings键名称而不是阿拉伯语值。
Localizable.strings文件名称正确,并列在"复制捆绑资源"。
Localizable.strings是完美的格式化程序。我已使用plutil验证了这一点。
我还能错过什么?
示例:
-(void) viewDidLoad
{
[super viewDidLoad];
// ...
[self setupLocalization];
}
-(void) setupLocalization
{
self.mailAddress.placeholder = NSLocalizedString(@"email_address", @"");
self.password.placeholder = NSLocalizedString(@"password", @"");
}
答案 0 :(得分:0)
您是否正在调用NSLocalizedString(_:,comment:)
将字符串转换为本地化字符串?
如果你不这样做,那就是它无法正常工作的原因。
答案 1 :(得分:0)
我发现了问题所在:
AppDelegate
' application:didFinishLoadingWithOptions:
包含此代码段
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@[@"en"] forKey:@"AppleLanguages"];
[defaults synchronize];
forces NSLocalizedString()
返回英文值。
该项目外包,我不知道该片段在那里。