我有一个应用程序,我正在尝试本地化多种语言。我通过.strings文件进行大部分本地化,但是对于更大的帮助文件,我需要本地化版本的html文件。
我已经阅读了Apple的文档,并在Google上进行了很多搜索,我认为我正在做正确的事情。
在我的xcode项目目录中,我有一个“en.lproj”和一个“ja.lproj”(日语)。我将HTML帮助文件的版本放在每个目录中,然后将它们导入到xcode中的Resources组中。执行此操作后,文件似乎正确显示。我在Resources下看到一个“help.html”文件,它是一个“组”,如果我查看它,我看到:
help.html(英语)
help.html(日语)
当我构建我的应用程序时,我的应用程序似乎在其相应的.lproj目录下正确包含了两个版本的文件,并且当我运行应用程序时一切正常(当设置为英语时,我看到英文文档,以及日语当设置为日语时。)
然而,当我构建我的项目时,我从xcode 4.2中收到恼人的警告:
警告:输出文件的多个构建命令... / ja.lproj / StartQuizController.html
警告:输出文件的多个构建命令... / en.lproj / StartQuizController.html
根据我的理解,当存在与您的应用程序相关的冲突文件名时,会出现这些“多个构建命令”消息。但是,由于这些文件已本地化并存在于它们自己的子目录中,因此没有真正的冲突。
我做错了什么,或者警告是xcode 4.2中的错误?
谢谢, 罗恩
答案 0 :(得分:3)
我认为如果以Xcode的方式进行,我们可以阻止这些警告。
Xcode只使用一个复制命令来复制本地化文件,您可能有两个单独的命令。
您可以先尝试从“复制包资源”构建阶段删除文件。 删除本地化文件的复制命令并添加新文件。如果Xcode正确处理您的本地化文件,它应该在“选择要添加的项目”-Picker中为每个本地化显示单个文件而不是文件。
如果不起作用,只需将其完全删除并再次添加物理文件即可 备份所有的html文件。然后从项目中删除它们(逻辑和物理)。
答案 1 :(得分:1)
我也试图本地化我的项目。我总是在一个html文件中添加一个应用程序内用户手册,该文件将被加载到UIWebView上。
我还没有完成它,但我要做的是为每种语言创建不同的文件,例如:
info_en.html // for english
info_es.html // for spanish
info_ca.html // for catalan
然后当加载webView时,我将加载@"info_en.html"
而不是加载NSLocalizedString(@"info", nil);
文件。然后,在每个本地化的字符串文件中,html文件的名称将与语言匹配。 / p>
我相信这应该有所帮助,但是,我还没有尝试过。