0

我使用 localizable.strings 文件设置了一个测试应用程序。在项目设置中,我添加了 English-United Kingdom、french 和 french-france

“法语”字符串文件在应用程序中工作。当我选择语言“法国”时,我看到了本地化版本

但是,当我将语言设置为英语并将区域形式设置为“英国”时,我希望看到来自 en-GB 字符串文件的字符串。我看的是英文版。我显然在这里遗漏了一些东西。当我使用“法语 - 法国”时也是如此。我希望它使用字符串文件的 fr-FR 版本。

我有法国 - 法国,法国 - 瑞士等。我如何实施这些?

谢谢您的帮助。

4

1 回答 1

0

我通过明确设置从中获取字符串的本地化目录(我的问题链接和下面的文本)解决了一个问题。

未从 BASE 文件中检索 iOS Localizable.strings

NSString *path = [[NSBundle mainBundle] pathForResource:[[NSLocale preferredLanguages] objectAtIndex:0] ofType:@"lproj"];
if (path == nil)
{
    path = [[NSBundle mainBundle] pathForResource:@"Base" ofType:@"lproj"];
}

NSLocalizedStringFromTableInBundle(@"TAB_TITLE_Camera", @"Localizable", [NSBundle bundleWithPath:path], @"");

如果您有要从中检索字符串的特定本地化目录,则可以替换

pathForResource:

使用en-GBfr-FR或您需要的任何其他目录名称。

我相信它应该或者至少应该选择正确的本地化目录,但它似乎没有这样做,这就是我想出这个解决方案的原因。

于 2014-09-19T06:49:50.573 回答