iOS本地化仅部分工作

时间:2016-10-12 18:41:26

标签: ios localization localizable.strings xliff

我将我的应用本地化为德语和英语。除了一些空翻译之外,字符串的格式应该没问题,因为我从xCode没有得到任何错误。 plutil -lint <name of the strings file>.strings表示所有本地化文件都可以。

我将目标方案中的应用程序语言切换为德语。 根据构建/运行 InfoPlist.strings ,Localizable.strings将被翻译。应用程序(Localizable.strings)是或者快捷方式和NS ... UsageDescriptions(InfoPlist.strings)是德语。

我已经在模拟器和不同iOS版本的不同设备上尝试了很多。我清理了构建,清理了构建文件夹,删除了DerivedData文件夹。我也删除了该应用程序。我确保将.strings文件添加到目标中。我将编码更改为UTF-16并返回UTF-8。也没有成功。不幸的是,似乎没有任何工作。

我从.xliff文件导入并导出了字符串。也许它与此有关。在我使用导入/导出之前,翻译工作得很好。

看起来很随意。我错过了什么?

1 个答案:

答案 0 :(得分:2)

我在这个问题上花了一些时间,找到了问题的答案 - 我想。将编辑和导出的.xliff文件从xCode导入xCode时,InfoPlist.strings已更新。导入为每个键添加了双引号。

导入前

ShortCutSearchTitle = "Suche"; //working

导入后

"ShortCutSearchTitle" = "Suche"; //not working

我删除了双引号,并在设备上正确翻译了字符串。也许需要干净的构建,但它甚至可以在设备上立即 。我不知道为什么应用程序本身(Localizable.strings)有时会显示错误的翻译。也许这是一个缓存文件或我试过的任何其他东西。

另一方面,在模拟器中,我需要

  1. 删除应用
  2. 重置模拟器
  3. 更改设备语言
  4. 构建并运行应用
  5. 以显示已翻译的InfoPlist.strings。似乎InfoPlist.strings被缓存,直到重置模拟器。我认为在方案(产品/方案/编辑方案/运行)中更改应用程序语言也会影响InfoPlist.strings,但事实并非如此。只有更改模拟器语言才会显示“使用情况”。警报和自定义翻译的InfoPlist.strings使用正确的语言。

    我很高兴找到了错误&#39;?使用双引号,但我也担心我可能必须在每次手动导入后更改双引号。