我们通过内部 npm 软件包为原

AEO Service Forum Drives Future of Data Innovation
Post Reply
rumiseoexpate5
Posts: 57
Joined: Wed Dec 11, 2024 3:54 am

我们通过内部 npm 软件包为原

Post by rumiseoexpate5 »

生 JavaScript 和 React 提供翻译助手,包括复数、数字、日期、单位和货币的助手。其中许多助手均由globalize.js提供支持,这是一个流行的开源 JavaScript 库,可格式化 JavaScript 以符合 Unicode通用区域数据存储库 (CLDR)中定义的规范。Unicode CLDR 是一项国际标准,它定义了如何在不同区域解析不同的字符串集,包括日期、时区、数字和货币。

一旦准备好翻译字符串,工程师就会将带有翻译的代码直接提交到master我们的主要 Git mono-repo 分支。

2. 在 master 的翻译分支上将翻译字符串提取为英文 YAML 文件
查看完整尺寸
统一翻译工作流将字符串提取为 YAML
统一翻译工作流将字符串提取为 YAML

将相关的英文字符串包装到翻译助手中后,必须将这些字符串从代码库中提取为我们的翻译服务可接受的文件格式YAML。我们将运行此翻译提取的过程称为统一翻译工作流 (UTW)。

我们有一个特殊的 git 分支 – i18n/translation– 它与我们的分支 埃及 whatsapp 电话号码列表 保持同步master。UTWi18n/translation每周运行一次,由 npm 脚本触发。

该脚本执行以下操作:

最新的master提交已重新基于i18n/translation。
i18n/translationUTW通过 npm 脚本在分支上运行。
UTW 使用并将我们所有的前端源代码转换为抽象语法树 (AST)。它对这些 AST 进行操作,以识别、验证和解析 Git 中当前 HEAD 提交哈希处的源代码中的所有翻译助手。
解析翻译助手后,UTW 会将其字符串内容和任何相关元数据写入英语 (en-US) YAML 文件。它使用助手的project属性来确定要写入哪个 YAML 文件。
为了更好地理解路由行为,我们假设有以下代码
UTW 验证并解析每个内容t()并查看其project属性。根据这些值,它确定翻译应分别路由到

Image

再见.en-US.yaml

# 说再见 | 来源
“再见”
YAML 文件是键值对的集合。我们key为每个字符串的每个实例生成一个唯一的值作为其值和属性的哈希值,无论其字符串内容在各个文件中是否相同。换句话说,如果英文字符串“Okay”出现在代码库中,则每个“Okay”实例都将使用其自己的唯一键进行提取。
Post Reply