本地化多平台项目 - 合并字符串文件

3
在我们的多平台项目中,我们有多个本地化文件,它们使用不同的标记和文件格式(如iOS .string、Android .xml等)。现在我们想要将它们本地化成多种语言,但是在不同的文件中,有很多相同的字符串。请问有没有一个好的方法来将这些字符串文件合并成一个大的本地化文件,将其交给翻译机构,然后再将其分成不同的文件?有没有人知道一个好的方法?
2个回答

6

我曾经参与过一个有20种语言版本的 iOS/Android 项目,我们使用Excel电子表格来跟踪所有可翻译的字符串。然后使用我的自定义VBA宏自动生成XCode的*.strings文件和Eclipse的*.xml文件。

这里有一个带有VBA宏的Excel示例电子表格: http://members.home.nl/bas.de.reuver/files/multilanguage.zip

你可以使用下面的工具将现有的.strings或.xml文件转换为电子表格格式(键值对,制表符分隔)。然后你可以将电子表格发送给翻译人员,他们填写翻译值的列,发送回来,然后你就可以简单地生成新的翻译文件。

http://members.home.nl/bas.de.reuver/files/stringsconvert.html

2021年编辑
主页现已下线,但我已在Github上添加了Excel/电子表格示例: https://github.com/BdR76/Manage-translations


这似乎是一个相当不错的解决方案。但是,如果我打开Excel文件并运行任何宏,就会出现错误“编译错误。找不到项目或库”。由于我没有VBA经验,您有什么建议吗? - Grinarn
我刚在我的Windows机器上尝试了一下,它完美地运行了。干得好! - Grinarn
顺便说一句,当您开始添加翻译时,通常会出现一些文本过长的情况。因此,请注意,翻译人员可能需要重新表达,或者您需要在应用程序中进行一些布局更改。 - BdR
1
很棒的解决方案,但网页转换器中存在一个错误:如果我从Android转换到iOS,则键中的下划线会丢失。例如,<string name="app_name">This is my app</string> 被转换为 "app name" = "This is my app"; - Soko
当从字符串转换为XML时,空格会被替换为下划线,因为Eclipse无法处理XML键名中的空格。因此,为了对称起见,在从XML转换为字符串时,它们被替换回空格。但是好吧,我现在已经禁用了它。 - BdR
显示剩余3条评论

0

大约一个月前,我的应用程序也遇到了同样的情况。

如果您使用SmoothLocalize进行本地化(我建议这样做,因为它们非常简单且超级便宜),则无需为第二个订单上的重复字符串付费。因此,您将为iOS本地化支付完整的4美分/字,然后只需粘贴Android本地化的订单号,您就不必再次支付翻译费用。

此外,如果它们完全相同,他们会为您转换.strings文件为.xml文件,因此您只需要下一次订单,只需给他们发送电子邮件即可。


我来到这个问题,正在寻找选项。这个选项已经“弃用”了。公司不再提供此服务。 - Shudy
1
@Shudy,有一个名为Respresso的服务。它可以让你在Web UI上处理移动端/网页应用程序本地化(和其他资源),并在每次更改后创建所有平台特定格式,然后在下一次构建期间直接将它们同步到你的项目中。这使你可以授权给翻译人员进行翻译,完成后只需要重新构建项目即可,无需手动下载/复制粘贴。(据我所知,它不会在导入过程中合并重复值,但会通过键匹配它们。) - Krisztián Velez

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