【问题标题】:NSLocalizedString ProblemNSLocalizedString 问题
【发布时间】: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";

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

怎么了?

【问题讨论】:

    标签: objective-c nslocalizedstring


    【解决方案1】:

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

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

    【讨论】:

    • 完美,但我还需要一步,我需要将 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 文件,它将无法工作,并且会混淆语言。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多