meta.json
什么是 meta.json 文件?它是如何使用的?
简介
meta.json
是一个文件,由 Lingo.dev 编译器 在构建时生成。它记录了在 React 应用中发现的所有可翻译内容,作为构建时分析与运行时翻译之间的桥梁。
注意: 对 meta.json
文件的所有更改都应提交到代码库中。
示例文件
以下是一个(非常简化的)meta.json
文件示例:
{
"version": 0.1,
"files": {
"components/hero.tsx": {
"scopes": {
"3/declaration/body/0/argument/1/1": {
"type": "element",
"hash": "a1b2c3d4e5f6...",
"context": "",
"skip": false,
"overrides": {},
"content": "Welcome to our app"
}
}
}
}
}
要了解所有属性的含义,请参阅 Schema Properties。
文件位置
默认情况下,meta.json
文件输出到相对于编译器配置(例如 vite.config.ts
文件)位置的 src/lingo
目录。
要了解如何自定义此位置,请参阅 Compiler Options。
架构属性
本节描述了 meta.json
文件中所有属性的含义。
version
用于兼容性检查和未来迁移的架构版本标识符。
- 类型:
number
- 必需: 是
files
一个容器对象,用于按源文件路径组织所有可翻译的范围。每个键表示从源根目录的相对路径(例如,"components/hero.tsx"
,"pages/home.jsx"
)。
- 类型:
object
- 必需: 是
files[filePath].scopes
用于存储在特定源文件中发现的所有可翻译内容的容器。每个键是一个基于 AST 的标识符,唯一标识文件中的一段可翻译内容。
- 类型:
object
- 必需: 是
files[filePath].scopes[astKey].type
指示可翻译内容是来自 JSX 元素的内容还是 JSX 属性的值。
- 类型:
"element" | "attribute"
- 必需: 是
files[filePath].scopes[astKey].hash
用于变更检测的源内容的 SHA-256 哈希值。当源内容发生变化时,此哈希值也会随之变化,表明可能需要重新翻译。
- 类型:
string
- 必需: 是
files[filePath].scopes[astKey].context
帮助译者理解内容用途或位置的上下文信息。
- 类型:
string
- 必需: 否
files[filePath].scopes[astKey].skip
指示是否应将此内容排除在翻译之外的标志。
- 类型:
boolean
- 必需: 是
files[filePath].scopes[astKey].overrides
绕过正常翻译流程的特定语言翻译覆盖。适用于品牌名称、技术术语或自定义翻译。
- 类型:
object
- 必需: 是
files[filePath].scopes[astKey].content
需要翻译的实际源文本,从您的 React 组件中提取。
- 类型:
string
- 必需: 是