Types
dataFormat
支持的内容格式类型的枚举
概述
DataFormat 用于指定可翻译内容的格式。
type DataFormat = 'JSX' | 'ICU' | 'I18NEXT';类型定义
值
| 值 | 描述 | 内容类型 | 使用场景 |
|---|---|---|---|
'JSX' | JSX/React 组件格式 | JsxChildren | 包含元素与变量的富 UI 组件 |
'ICU' | ICU MessageFormat | IcuMessage(字符串) | 处理复数、日期、数字等的复杂格式化 |
'I18NEXT' | i18next 消息格式 | I18nextMessage(字符串) | 简单插值,适用于现有 i18next 项目 |
格式特性
| 格式 | 变量 | 复数处理 | HTML 元素 | 日期/数字格式化 |
|---|---|---|---|---|
| JSX | ✅ 丰富的变量支持 | ✅ 通过分支处理 | ✅ 完整的 HTML 支持 | ✅ 通过变量 |
| ICU | ✅ {variable} 语法 | ✅ 内置复数 | ❌ 仅文本 | ✅ 内置格式化器 |
| i18next | ✅ {{variable}} 语法 | ✅ 通过 count | ❌ 仅文本 | ✅ 通过格式化器 |
示例
格式规格
const jsxEntry: Entry = {
source: { t: 'div', c: ['你好,', { k: 'name' }] },
targetLocale: 'es',
metadata: { dataFormat: 'JSX' }
};
const icuEntry: Entry = {
source: '你好,{name}',
targetLocale: 'es',
metadata: { dataFormat: 'ICU' }
};备注
- DataFormat 决定翻译系统如何处理内容
- 在元数据中指定格式可确保内容被正确处理
- 虽可自动检测,但更推荐显式指定
相关类型
Content- 所有内容格式类型的联合类型JsxChildren- JSX 格式的内容
本指南如何?