本地化后备语言

Mat*_*yhr 4 xcode localization objective-c localizable.strings ios

我想在我的iPhone应用程序中本地化几个字符串,它对我选择的5种语言起作用.但是,我有一个问题,如果我没有为特定语言定义一个键,我希望它选择英语作为后备,因为我知道我已经用英语定义了每个字符串.事情是,所有键都被翻译并不是很重要,因为即使iPhone设置为西班牙语,也可以显示英语.

例:

于:

"HELLO" = "hello" ;
"PERSON" = "my friend" ;
Run Code Online (Sandbox Code Playgroud)

ES:

"HELLO" = "hola" ;
Run Code Online (Sandbox Code Playgroud)

预期结果:

如果iPhone被设置为英语我想要它说:hello, my friend如果languange设置为西班牙语我想要它说hola, my friend.目前该应用程序将输出hola, PERSON.(我使用NSLocalizedString方法).

可能有一个非常简单的解决方案,但我找不到任何好的解决方案.谢谢您的帮助,

马蒂亚斯

Mat*_*yhr 7

其他答案肯定是正确的,但这不是我想要的.相反,我找到了另一种方法,并编写了一个静态方法,在我的环境中对我来说非常有效,如果有人想要实现相同的东西,我想在这里添加它:

+ (NSString *)localizedStringForKey:(NSString *)key table:(NSString *)table
{
    NSString *str = [[NSBundle mainBundle] localizedStringForKey:key value:@"NA" table:table];
    if ([str isEqualToString:@"NA"])
    {
        NSString *enPath = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
        return [[NSBundle bundleWithPath:enPath] localizedStringForKey:key value:@"NA" table:table];
    }

    return str;
}
Run Code Online (Sandbox Code Playgroud)