本地化iphone app html文件和奇怪的xcode 4.2警告

时间:2011-06-29 21:22:10

标签: iphone ios xcode localization

我有一个应用程序,我正在尝试本地化多种语言。我通过.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中的错误?

谢谢, 罗恩

2 个答案:

答案 0 :(得分:3)

我认为如果以Xcode的方式进行,我们可以阻止这些警告。

Xcode只使用一个复制命令来复制本地化文件,您可能有两个单独的命令。

您可以先尝试从“复制包资源”构建阶段删除文件。 删除本地化文件的复制命令并添加新文件。如果Xcode正确处理您的本地化文件,它应该在“选择要添加的项目”-Picker中为每个本地化显示单个文件而不是文件。


如果不起作用,只需将其完全删除并再次添加物理文件即可 备份所有的html文件。然后从项目中删除它们(逻辑和物理)。

  • 将文件的英文版本添加到Xcode,让Xcode将其复制到您的目录。
  • 选择左侧边栏中的文件
  • 打开右侧边栏的第一个标签
  • 使用本地化部分中的+按钮添加本地化
  • 要么通过Xcode替换文件的内容,要么使用Finder替换本地化版本。

答案 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>

我相信这应该有所帮助,但是,我还没有尝试过。