iOS:Localizable.strings不起作用



这已经困扰了好几天了。

我在我的项目中设置了阿拉伯语本地化,并将我的设备语言设置为阿拉伯语。

当我从Xcode运行我的应用程序,并将运行方案选项设置为使用阿拉伯语本地化时,本地化效果很好。

当我在没有Xcode的情况下运行该应用程序时,该应用程序使用英语。

我读过类似问题的答案,但到目前为止,没有一个对我有效。

  • 我正在使用NSLocalizableString(@"login",@"");Localizable.strings文件加载字符串。只要我将Run scheme本地化选项设置为阿拉伯语,这就可以很好地工作。

  • 我已尝试卸载该应用程序,清理项目,然后重新安装。现在,该应用程序使用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", @"");
}

我发现了问题所在:

AppDelegateapplication:didFinishLoadingWithOptions:包含以下代码片段

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@[@"en"] forKey:@"AppleLanguages"];
[defaults synchronize];

这迫使CCD_ 5返回英文值。

这个项目是外包的,我不知道这个片段在那里。

是否调用NSLocalizedString(_:,comment:)将字符串转换为本地化字符串?

如果你不这样做,那就是它不起作用的原因。

最新更新