iOS:Localizable.strings不起作用

时间:2017-01-02 14:35:38

标签: ios xcode localization

这已经困扰了好几天。

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

当我从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", @"");
}

2 个答案:

答案 0 :(得分:0)

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

如果你不这样做,那就是它无法正常工作的原因。

答案 1 :(得分:0)

我发现了问题所在:

AppDelegate' application:didFinishLoadingWithOptions:包含此代码段

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

forces NSLocalizedString()返回英文值。

该项目外包,我不知道该片段在那里。