2012-08-06 199 views
0

我创建了一个新的Xcode项目并尝试设置字符串本地化。IOS字符串本地化在添加其他本地化时停止工作

我添加了一个名为 新文件“localization.strings'具有以下内容

。‘登录’=‘英文文本2’;

我已经添加了第二本地化项目>信息部分在最新版本的Xcode中。

然后在右边的框中打勾,为localization.strings文件添加法语。一旦添加,我可以运行/构建应用程序,但字符串不再链接到这个文件。

例如,如果我更新上面的原始英文版本,以“测试文本英语”为例,它仍然显示原始英文文本2。

任何想法为什么会发生这种情况?该应用程序太大,无法发布,并且没有构建错误,该文件没有损坏,丢失,编码不正确。

+0

一旦我在localization.stings文件上单击Make localized ...,就会出现该问题。 一旦这个被点击的字符串不链接到这个文件 – StuartM 2012-08-06 13:21:32

回答

5

你需要做一个干净的构建并从模拟器和/或你的设备上删除应用程序,然后一切都应该工作。你只需要做一次。

在添加任何本地化之前,您的字符串文件将最终位于应用程序包的根目录中,例如, MyApp.app/Localizable.strings。然后,当您运行应用程序时,它将被复制到模拟器和/或您的设备中。

添加本地化后,文件的内容将被移动到本地化特定的子目录中,如MyApp.app/en.lproj/Localization.stringsMyApp.app/fr.lproj/Localization.strings。但是根文件夹中的旧文件仍然在模拟器和设备中停留,并且在其他文件之前就已经找到了。所以做一个干净的版本,从模拟器和你的设备删除应用程序,该旧文件将被删除。

+0

我只在这个应用程序的模拟器上测试。我已重置模拟器,并完全重新启动xcode并运行新版本,但旧文本仍然存在。我也完全从项目中完全删除了两个localization.string文件,因此它们不再是 - 但标签仍然读取“英语Test2”,就像它仍然在某处缓存一样? – StuartM 2012-08-06 15:25:21

+0

您需要将重置模拟器与干净的版本结合起来。按住Alt并选择“产品 - >清洁生成文件夹”以获得完整的清洁。 – 2012-08-07 06:07:01

+0

真棒,干净的生成文件夹工作。谢谢 – StuartM 2012-08-07 09:14:59

0

这不是唯一可能发生的问题。我遇到另一种情况:两个具有相同名称的文件:“Localizable.strings”。 我有一个在库文件夹中,一个在主项目文件夹中。本地化系统只使用其中一个,而不是两个。 我通过删除不必要的问题来解决问题。