Lingo.dev + .xml(数据)

Lingo.dev CLI 翻译 XML 文件时会保留文档结构、属性、命名空间和模式合规性。CLI 保持 XML 模式和 DTD 的合规性,保留所有命名空间声明和前缀,保持精确的 XML 层次结构和格式,正确处理各种字符编码,并确保输出通过 XML 验证工具。

快速设置

为基于语言环境命名的 XML 文件进行配置:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "xml": {
      "include": ["data/[locale].xml"]
    }
  }
}

提醒[locale] 是一个占位符,在 CLI 运行时会被实际的语言环境替换,因此应在配置中保持原样。

翻译 XML 内容

npx lingo.dev@latest i18n

在翻译文本内容的同时保留 XML 结构、属性、命名空间和文档模式。

XML 结构处理

元素内容

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <product id="123">
        <name>高级小部件</name>
        <description>为专业人士提供的高质量小部件</description>
        <category>工具</category>
    </product>
</catalog>

元素中的文本内容会被翻译,而 XML 结构保持不变。

属性翻译

<item title="用户手册" description="完整指南">
    <help tooltip="点击获取帮助">入门指南</help>
</item>

可翻译的属性会被处理,而技术属性保持不变。

混合内容处理

<documentation>
    <section title="简介">
        欢迎阅读我们的<emphasis>全面</emphasis>指南。
        访问<link href="/help">我们的帮助中心</link>了解更多信息。
    </section>
</documentation>

混合文本和元素内容会被正确处理。

高级 XML 功能

命名空间支持

<root xmlns:ui="http://example.com/ui"
      xmlns:data="http://example.com/data">
    <ui:label>欢迎信息</ui:label>
    <data:content ui:title="页面标题">
        内容在此
    </data:content>
</root>

XML 命名空间和前缀会被精确保留。

CDATA 区段

<content>
    <![CDATA[
    这是不会被翻译的原始内容,
    包括 <tags> 和特殊字符。
    ]]>
</content>
<message>此文本将被翻译</message>

CDATA 区段保持不变,而常规文本内容会被处理。

处理指令

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<document>
    <title>Document Title</title>
</document>

处理指令和 XML 声明会被保留。

高级配置

多个 XML 文件

"xml": {
  "include": [
    "data/[locale].xml",
    "config/[locale]/*.xml"
  ]
}

锁定技术元素

"xml": {
  "include": ["data/[locale].xml"],
  "lockedKeys": ["id", "version", "timestamp", "schema"]
}