【问题标题】:Localizable.strings (English) doesn't work but InfoPlist.strings (English) works?Localizable.strings(英语)不起作用,但 InfoPlist.strings(英语)起作用?
【发布时间】:2012-02-16 10:20:23
【问题描述】:

在 .m 文件中:

UIActionSheet *someSheet = [[UIActionSheet alloc] 
    initWithTitle:NSLocalizedString(@"TITLE", nil)
    delegate:self 
    cancelButtonTitle:@"CANCEL"
    destructiveButtonTitle:nil
    otherButtonTitles:@"option1", @"option2", nil
];

Localizable.strings (English)我设置"TITLE" = "Share";

InfoPlist.strings (English) 中我设置了CFBundleDisplayName="AppName123"

然后我将 iPhone 的语言切换到另一种尚未本地化的语言(例如日语)。

在跳板中,应用的名称确实更改为 "AppName123",但在运行时我看到“TITLE”应该是“Share”。

该应用程序没有日文本地化,为什么它没有默认使用英文?

谁能告诉我怎么了?谢谢!

【问题讨论】:

  • 好的,你看到了“TITLE”,你做了什么来获得“TITLE”的值?
  • @Jacky Boy 对不起,我忘了提,我使用了 NSLocalizedString(@"TITLE", nil)
  • @1212e,如果您找到了问题的解决方案,您应该将其发布为答案,然后通过单击新答案旁边的复选符号将其标记为已接受的答案。

标签: iphone ios localization


【解决方案1】:

请试试这个代码

在 Localizable.strings 文件中

"FirstName" = "XYZ";

在您的 .m 文件中

NSString *string = NSLocalizedString(@"FirstName",@"");

NSString *string = NSLocalizedString(@"FirstName",nil);

【讨论】:

    【解决方案2】:

    以防万一有人遇到和我类似的问题:

    我忘记在两个文件中使用分号。我将分号放在 InfoPlist.strings 文件中,却忘记将它们放在 Localizable.strings 文件中。

    "Cancel" = "Отмена";
    "Connecting ..." = "Подключение ...";
    

    必须有分号。不要忘记。

    【讨论】:

      【解决方案3】:

      在其中一个项目中,我遇到了这样的情况: 1)我有localizable.strings(里面有英文,it,fr,de)包含这样的翻译:

      /* comment for translation */
      "KeyString" = "ValueString";
      

      2) 然后我使用 LocalizedStrings 略有不同,有两个参数,像这样:

      _myString = NSLocalizedString(@"KeyString", @"Comment for translation");
      

      效果很好,当我设置为其他语言(如波兰语)时,我有英文翻译。

      希望它有所帮助:) F.

      【讨论】:

      • 我添加了一些评论 initWithTitle:NSLocalizedString(@"TITLE", @"some comment") 但它仍然不起作用:(
      • 您是否使用例如“English”创建了 lizable.strings,然后添加了一些其他可用的翻译?
      • 顺便说一句,您在翻译和 NSLocalizedString 中是否使用了相同的注释?
      • 嗨菲利普,问题已解决,答案在我问题的开头。不管怎么说,还是要谢谢你 ! :)
      【解决方案4】:

      已解决,Simulator -> Erase all.

      【讨论】:

      • 您能否提供更多详细信息。我在 Xcode 和 iOS 模拟器中都没有找到那个菜单
      • @user454083 在iOS模拟器版本6中是iOS Simulator -> Reset Content and Settings
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多