0

我需要<DefaultValue>在与此类似的文件中翻译标签(~45k 行):

<Resources>
  <Resource>
    <File>App_GlobalResources\Ecommerce_Modules.ascx.resx</File>
    <Key>ModuleTitle.ecTermsAndConds</Key>
    <DefaultValue>Terms And Conditions</DefaultValue>
    <Value>1</Value>
  </Resource>
  <Resource>
    <File>App_GlobalResources\Ecommerce_Modules.ascx.resx</File>
    <Key>ModuleTitle.ecStorefrontCatalogMenu</Key>
    <DefaultValue>Catalog Menu</DefaultValue>
    <Value>1</Value>
  </Resource>
...
</Resources>

我查看了 Google Translator Toolkit,但它不支持任意 XML。有一些付费服务,但现在谷歌翻译就足够了。

我可以提取所有标签/文本,xmlstarlet但如何使用翻译更新值?

xmlstarlet sel -t -m "/Resources/Resource" -c "./DefaultValue" -n ~/Downloads/Resources.xml
4

1 回答 1

1

我创建了自己的 Bash 脚本curl来使用和xmlstarlet来解决这个问题google web translator

原则

我在每个包含要翻译的文本的元素上循环,调用翻译函数(例如谷歌翻译),并用翻译更新输出文件中的给定元素。因此,您需要在脚本文件中为您的表达式定义 XPath:

# @description Xpath to each item is build as $xpath[i]/$i18nTag
xpath="/Resources/Resource"
i18nTag="DefaultValue"

然后运行:

./xml-translator.bash en fr ./input.xml

检查结果./input.fr.xml

免责声明

  • 由于 Google 服务条款,该项目不是一个开箱即用的解决方案,但应该在这个问题上提供一个良好的开端。

存储库

在github上查看: XML-translator

于 2013-06-06T13:37:40.853 回答