标题
段落1
第2段
段落3
副标题
i18n · once
标题
L10n · per locale
标题
Foundations
副标题
段落1
第2段
段落3
段落1
第2段
段落3
BCP 47 标签(如 en-US 或 zh-Hans-CN)用于编码语言、字符集和地区。它们是所有国际化(i18n)系统的基石,决定了应应用哪些翻译、格式和规则。
Unicode 为每种文字体系中的每个字符分配了一个唯一的码点。UTF-8 是网络上最主流的编码格式,它能确保文本无论使用何种语言都能正确显示。
翻译键是稳定的标识符,用于映射到特定语言环境的字符串。它们将源代码与可翻译内容解耦,从而支持开发与翻译的并行进行。
不同语言的复数规则各不相同——英语有两种形式,阿拉伯语则有六种。ICU MessageFormat 通过单一语法即可处理复数、性别和选择表达式。
阿拉伯语、希伯来语及其他从右向左书写的文字。要支持从右向左(RTL)布局,需要镜像布局、翻转图标,并使用 CSS 逻辑属性代替 left/right。
日期、数字和货币的格式因地区而异。Intl API 以及 date-fns 等库提供了支持地区设置的格式化功能,因此 1,000.50 在德语中会显示为 1.000,50。
标签
副标题
.json
React · Vue · Angular
在 Web 应用(React、Vue、Angular)中最为流行。易于人类阅读,支持嵌套以构建有序的键值结构。没有内置的复数形式生成标准,因此 ICU MessageFormat 等库填补了这一空白。
.xlf
TMS interchange
基于 XML 的行业标准,用于不同工具之间的翻译数据交换。所有专业翻译管理系统 (TMS) 平台均支持该标准。虽然格式较为冗长,但功能丰富,内置了对备注、状态跟踪和元数据的支持。
.po / .pot
Python · PHP · Ruby
Python、PHP 和 Ruby 生态系统中常用的经典开源格式。内置复数支持,并采用专用的复数形式语法。受到翻译人员和翻译工具的广泛支持。
.arb
Flutter · Dart
Application Resource Bundle 是 Flutter 和 Dart 的标准格式。该格式基于 JSON,并支持 ICU 消息语法,原生支持复数形式和下拉菜单。Flutter 的 gen-l10n 工具集即采用此格式。
.strings
iOS · macOS
适用于 iOS 和 macOS 开发的 Apple 平台原生格式。.strings 处理简单的键值对,而 .stringsdict 则采用 XML plist 结构来处理复数形式规则。
.resx
.NET · C#
.NET 资源文件格式,用于 C# 和 VB.NET 应用程序。基于 XML,并与 Visual Studio 工具集深度集成。支持字符串、图像及其他资源的类型化资源。
徽章
副标题
副标题
徽章
副标题
评估命令行工具、SDK 支持、基于 Git 的工作流以及 CI/CD 集成点。优秀的 TMS 平台能够直接集成到您的开发流程中,从而确保翻译内容能与代码变更自动保持同步。
翻译记忆库会存储已获批准的译文,并在遇到相似或相同的字符串时提供翻译建议。这有助于降低翻译成本、加快交付速度,并确保产品整体的一致性。
请关注审核工作流程、内嵌评论、共享词汇表和审批链。这些功能使译者、审核人员和开发者能够协作,不会产生瓶颈或沟通误解。
现代 TMS 平台提供机器翻译建议、自动化质量检查、批量操作和智能路由。AI 辅助工作流程在保持翻译质量的同时减少了人工工作量。
Quality
副标题
在词序不同的语言中,通过拼接片段来构建句子会导致语法不通顺。请改用 ICU MessageFormat 并配合占位符。
如果将面向用户的文本直接嵌入源代码中,就无法在不修改代码的情况下进行翻译。请从一开始就将所有字符串提取出来。
仅针对单数/复数的简单 if/else 语句仅适用于英语。许多语言拥有多种复数形式,需要遵循正确的 ICU 复数规则。
在产品发布后才仓促添加国际化功能,意味着需要进行耗费巨大的重构。从一开始就为国际化进行设计,既能节省时间,又能避免架构债务。
副标题
By framework
副标题
徽章
副标题