NSLocalizedString 问题

Posted

技术标签:

【中文标题】NSLocalizedString 问题【英文标题】:NSLocalizedString Problem 【发布时间】:2010-11-28 13:50:33 【问题描述】:

我有:

-(IBAction)about 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"About", @"Title of AlertView")
                                                    message:@"App name \n© My  name \n2010"
                                                   delegate:self
                                          cancelButtonTitle:NSLocalizedString(@"Back", @"Cancel Button Title")
                                          otherButtonTitles:nil];
    [alert show];
    [alert release];

在 Localizable.strings 中:

/* Title of AlertView */
"About" = "Über";
/* Cancel Button Title */
"Back" = "Zurück";

我的问题:当语言是德语时,它是德语,但是当我将语言更改为英语时,警报视图仍然是德语

怎么了?

【问题讨论】:

【参考方案1】:

如果您使用 xCode 4,您将面临这样的问题。尝试下一步:

    从设备中删除应用程序 选择项目树根节点获取项目属性 选择“构建阶段”选项卡 点击“添加构建阶段”并选择“复制文件” 在“复制文件”视图中选择“资源” 添加 Localizable.strings 文件 为项目执行“清理” “构建并运行”

【讨论】:

完美,但我还需要一步,我需要将 InfoPlist 重命名为 Localizable :) @ademar111190 您的评论应该添加到上面的答案中。谢谢。 @Sha 好建议。我现在就去做!【参考方案2】:

使 Localizable.strings 文件可本地化(单击它,按 cmd+i 并按下“使文件可本地化”按钮)并向其中添加德语和英语本地化。然后将德文本地化写入文件的德文版本,英文版本如下:

/* Title of AlertView */
"About" = "About";
/* Cancel Button Title */
"Back" = "Back";

【讨论】:

你确定你有 2 个看起来像这样的文件吗? grab.by/grabs/9de2f9e8f874eb23249a57acd5e74497.png 确保使用新的本地化您有一个“(Base)”文件和一个“()”文件。如果没有 Base 文件,它将无法工作,并且会混淆语言。

以上是关于NSLocalizedString 问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSLocalizedString 或 .xib 进行本地化

Objective C 中的 NSLocalizedString

变量 NSString anos 与 NSLocalizedString Xcode 一起使用

NSLocalizedString 有时会加载字符串,但并非总是如此

NSLocalizedString - 强制国家特定的字符串文件

iOS UITests NSLocalizedString 不工作