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"]
}