这是我第一次尝试使用 Localizable.strings 文件将一些本地化添加到应用程序中,但我遇到了一个意想不到的问题。为了清楚起见,这些是我经历的步骤。
- File >> New >> New File 并添加了 Strings 类型的 Resources 文件。
- 将文件命名为“Localizable.strings”
- 单击 Localizable.strings 文件并通过 Localization 部分添加西班牙语。(我已经在我的项目文件夹中确认我有 en 和 es 文件夹)。
- 开始在 Localizable.strings(英语)文件中添加我的 KEYS,然后将西班牙语翻译添加到西班牙语文件中。
例如,这是我尝试添加的本地化之一。
"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上的任何设置可能会有所不同?