这件事已经困扰了好几天。
我在我的项目中设置了阿拉伯语本地化,并将我的设备语言设置为阿拉伯语。
当我从Xcode运行我的应用程序时,使用run When选项设置为使用阿拉伯语本地化,本地化可以正常工作。
当我在没有Xcode的情况下运行应用程序时,应用程序使用英语。
我读过类似问题的答案,但到目前为止没有一个对我有用。
NSLocalizableString(@"login",@"");从Localizable.strings文件加载字符串。只要我将Run scheme本地化选项设置为阿拉伯语,它就能正常工作。我还能错过什么?
示例:
-(void) viewDidLoad
{
[super viewDidLoad];
// ...
[self setupLocalization];
}
-(void) setupLocalization
{
self.mailAddress.placeholder = NSLocalizedString(@"email_address", @"");
self.password.placeholder = NSLocalizedString(@"password", @"");
}发布于 2017-01-02 15:39:02
我发现了问题所在:
AppDelegate的application:didFinishLoadingWithOptions:包含了这段代码片段
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@[@"en"] forKey:@"AppleLanguages"];
[defaults synchronize];哪个forces NSLocalizedString()返回英语值。
这个项目是外包的,我不知道片段在那里。
发布于 2017-01-02 14:44:16
是否调用NSLocalizedString(_:,comment:)将字符串转换为本地化字符串?
如果你不这么做,那就是它不起作用的原因。
https://stackoverflow.com/questions/41428753
复制相似问题