Lingo.dev + .jsonc(带注释的 JSON)
Lingo.dev CLI 可翻译 JSONC(带注释的 JSON)文件,支持所有标准 JSON 功能以及注释和尾随逗号。CLI 提取注释作为翻译提示,保留精确的格式,智能处理嵌套结构,并仅处理修改过的内容以提高成本效率。
快速设置
创建一个 i18n.json
配置文件:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"jsonc": {
"include": ["locales/[locale].jsonc"]
}
}
}
提醒:[locale]
是一个占位符,在 CLI 运行时会被实际的语言区域替换,因此应在配置中保持原样。
翻译一切
npx lingo.dev@latest i18n
自动处理嵌套结构,提取注释作为翻译提示,并仅更新更改的内容。
基于注释的翻译提示
JSONC 的主要优势是使用注释提供翻译上下文:
{
// 此注释为问候语提供上下文
"greeting": "Hello, world!",
"button": "Click me" /* 解释按钮的用途 */,
/*
* 多行注释用于复杂上下文
* 解释文化差异
*/
"welcome": "Welcome to our app"
}
注释会被自动提取为提示,以提高翻译质量并为 AI 翻译提供上下文。
智能结构保留
保留复杂的层次结构并支持尾随逗号:
{
"nav": {
"home": "Home", // 导航项
"about": {
"team": "Our Team" // 嵌套导航
},
},
"items": {
"one": "{{count}} item",
"other": "{{count}} items", // 支持复数形式
},
}
高级配置
排除文件
"jsonc": {
"include": ["locales/[locale]/*.jsonc"],
"exclude": ["locales/[locale]/config.jsonc"]
}
锁定技术键
"jsonc": {
"lockedKeys": ["app/version", "settings/apiKey"]
}
使用正斜杠 (/
) 表示嵌套键路径,或使用星号 (*
) 匹配多个键路径。