在iOS iPad应用程序中遇到Localizable.strings的问题

时间:2012-04-08 16:09:19

标签: iphone objective-c xcode ipad localization

这是我第一次尝试使用Localizable.strings文件向应用添加一些本地化,我遇到了一个意想不到的问题。为清楚起见,这些是我经历过的步骤。

  1. 文件>>新>>新文件并添加了一个字符串类型的资源文件。
  2. 将文件命名为“Localizable.strings”
  3. 单击Localizable.strings文件并通过Localization部分添加西班牙语。 (我已经在我的项目文件夹中确认我有en和es文件夹。)
  4. 开始在Localizable.strings(英文)文件中添加我的KEYS,然后将西班牙语翻译添加到西班牙文件中。
  5. 举个例子,这是我想要添加的本地化之一。

    "CAMERA_ERROR" = "The device does not have a camera";
    

    我在西班牙语.strings文件中添加了完全相同的字符串,但更改了文本以适合西班牙语。在我的应用代码中,我使用以下内容:

    NSString *cameraError = NSLocalizedString(@"CAMERA_ERROR", nil);
    

    直到这一刻,一切似乎都很好,但这是奇怪的地方,我感到困惑。如果我在我的一个iMac上运行应用程序它工作正常,根据我设置模拟器的语言,它会显示正确的英语或西班牙语字符串。

    然而,当我在这台MacBook Pro上运行完全相同的应用程序时,它不会显示字符串,而是采用“KEY”标题并显示它。因此,它不会将消息显示为“设备没有摄像头”,而是将其显示为“CAMERA_ERROR”。代码与从git repo克隆的相同项目完全相同。

    任何人都可以对此有所了解吗? MacBook上的任何设置都可能不同?

1 个答案:

答案 0 :(得分:6)

尝试在MacBook Pro上执行以下操作:

  1. 清理项目;

  2. 从模拟器/设备中删除应用程序;

  3. 重建应用。

  4. 这应该解决它。