XCode 5/iOS 7 - 本地化无法在模拟器中运行

Pru*_*goe 28 xcode localization ios ios-simulator ios7

我正在关注Ray Wenderlich关于本地化的一个教程,但我似乎无法让它工作.

我已经将我的项目设置为英语和法语本地化,并且每个都有一个locaziable.strings文件:

在此输入图像描述

法语文件有正确的(就Google翻译而言)我的字符串的法语版本:

在此输入图像描述

我通过调用localizable.strings文件中的正确键来设置字符串:

 NSString* strTitle = [NSString stringWithFormat:NSLocalizedString(@"Title", Nil)];
Run Code Online (Sandbox Code Playgroud)

我将模拟器设置为法语(BTW:每当我做一个语言改变模拟器崩溃).

但它并没有从正确的localizable.strings文件中提取.它仍然以英文显示:

在此输入图像描述

难道我做错了什么?

Raj*_*jal 46

如果您使用的是xcode 6.1.1和iOS sdk 8.1,请尝试此解决方法.

似乎本地化不适用于xCode 6.1和8.1模拟器.解决方法:转到"编辑方案">>"运行"(侧栏)>>"选项"选项卡>>"应用程序语言"在模拟器上选择要运行应用程序的语言.我从纳塔瓦拉的变通方法得到了这个解决方法, 谢谢他.

但是我在开发者论坛上看到,它正在使用6.2 beta版的Xcode.希望它能做到.


The*_*heo 24

Maybe you have run the app at some time where the file Localizable.strings already existed but has not been localized yet. If this is the case, this unlocalized file still resides in the resources folder in the application bundle in the simulator (when you build an run a new version of your app in the simulator or in the device, unused files will not be deleted). This can lead to problems.

Try to delete the app completely from the simulator and build an run again.

  • 删除应用程序时,请使用xCode的"产品"菜单中的"清除".这最终对我有用. (2认同)

Vik*_*era 12

我在设备上遇到过类似的问题(在我的情况下是IB本地化).所以一般的答案是

设备 - 按Shift + CMD + K卸载应用程序并清理项目

模拟器 - 转到iOS模拟器>重置内容和设置并按Shift + CMD + K清理项目

这些问题真的很烦人.随着更新本地化字符串的能力差,本地化是iOS开发的最大缺点之一.

  • 嘿,对猪有什么:( (4认同)
  • 重置设备对我没有任何帮助,我觉得很奇怪。但是清理项目就成功了! (2认同)

小智 11

可能导致本地化不起作用的另一个问题是字符串文件的编码.Localizable.strings的编码必须是UTF-16.xcode中文本文​​件的默认编码是UTF-8,这使我花了一整天的时间来检查本地化不起作用的原因.

  • 我不知道为什么这会被低估(我只是投了票).我从iOS 2.5开始使用了相同的localized.strings文件,但是在iOS 7中它停止了工作.我刚刚从UTF-8改为UTF-16,它现在正在工作 - 谢谢! (2认同)