iOS 本地化不一致性

3
我第一次本地化iPhone应用程序。我把所有的字符串都放在了一个名为Localizable.strings的文件中,并通过代码中的NSLocalizedString来访问它们,这个方法很好用。 接下来,我有一个名为info.html的文件,其中包含我用作关于框的UIWebView的主体内容。我把它放在语言文件夹(en.lprojde.lproj)中,并将它们添加到Xcode的资源中。 现在,在模拟器中,字符串和html文件都会以适当的语言显示。 然而,在设备上,字符串出现本地化,而html文件仍然没有翻译。 这是模拟器和设备之间的奇怪不一致性!有人知道解决方法吗?(...除了违反本地化系统,手动调用de_info.htmlen_info.html等使用NSLocalizedString的方法。)
2个回答

7

首先尝试删除该应用程序。

使用Xcode部署到设备(或模拟器)时,资源仅添加,不会被删除。
现在您可能有三个HTML文件。 一个在de文件夹中,一个在en文件夹中,还有一个在根文件夹中。

如果存在,则iOS会优先选择根文件夹中的文件。

一般规则是:当您从项目中删除(或像此案例中移动它们)资源时,应从设备或模拟器中删除该应用程序。


1
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!(通常在盯着宜家安装说明书半个小时后发出的声音。)非常感谢。 - Joe Völker

4

另外一个补充:我还需要从当前的构建目录中删除该应用程序才能使其正常工作(否则,在设备上删除的应用程序将再次被错误版本替换)。

在XCode中,您可以在“构建”菜单中按下“alt”键,然后有选项清除整个构建目录。

这最终为我解决了问题。叹气...


+1 提到“清理构建文件夹”选项。我遇到了同样的问题,简单的“清理”+从模拟器中删除应用程序似乎在移除XIB本地化后并没有解决问题。这对我解决了问题。 - ig2r

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接