越南语持续本地化:Crowdin 配置实操指南
← 博客
🌏 本地化9分钟

越南语持续本地化:Crowdin 配置实操指南

💡 持续本地化让越南语翻译随每次发版自动保持同步:源字符串推送到 GitHub 后,Crowdin 自动检测变更并分配翻译,审核通过后以 l10n_ 前缀分支提交 PR 回代码库。关键配置只需一个 crowdin.yml 文件和四个字段。越南语的特殊陷阱是 Unicode 规范化漂移,NFD 编码的源文件会让未变动的字符串被误判为新字符串,浪费翻译预算。

要点

  • Crowdin 的 GitHub 集成默认每小时同步一次:新源字符串自动上传,审核通过的越南语翻译以 l10n_ 分支 PR 的形式返回。
  • 最小化 crowdin.yml 只需四个字段(project_id、api_token、源路径、带 %locale% 的翻译路径),CLI 会跳过未变动的文件,保持 CI 流水线高效运行。
  • 每次推送前将源 JSON 规范化为 NFC Unicode,避免 macOS NFD 编码造成"虚假新字符串"。
  • 越南语通常比英语长 10-25%,每次重要发版后须用 vi 语言环境运行布局回归测试。
  • 越南语字符串须设置人工审核门槛后再合并:机器翻译能处理通用 UI 文案,但声调标记错误不会被自动质量评估工具检测到。

什么是持续本地化,越南语为何常常滞后?

传统本地化采用瀑布式流程:开发完成后冻结字符串,交给译者批量翻译,等待交付,再发布。对于敏捷产品,这意味着越南语版本比英语晚几周甚至几个月上线。越南拥有 7844 万互联网用户(DataReportal,2024年),发布一个翻译滞后的产品会直接影响本地用户的信任度。

持续本地化用自动化触发器取代字符串冻结。开发者推送新字符串后,TMS 立即检测差异并分配翻译任务。审核通过后平台自动创建 PR,越南语版本随同次发版上线,无需等待批量交付。

对于中国出海越南的游戏公司和科技企业,持续本地化的意义更为显著:越南玩家和用户期待的是本地化质量与国内 App 相近的产品,而不是偶尔更新的机器翻译版本。

Crowdin 与 GitHub 的同步流程是什么?

Crowdin 的 GitHub 集成是双向的。您将源文件(如 src/locales/en.json)推送到 GitHub 后,Crowdin 自动将新增或变更的字符串拉取到项目中。译者在 Crowdin 编辑器内审核通过越南语字符串后,平台将翻译文件推送到带 l10n_ 前缀的分支,并自动创建 PR。

默认同步间隔为每小时一次。可通过 Crowdin 控制台的"Sync Now"按钮立即触发,也可在 CI/CD 流水线中使用 Crowdin CLI 进行精确控制。集成同时支持分支管理:为 main、staging 和功能分支分别创建 Crowdin 分支,让不同发布轨道的翻译状态相互隔离。

竞品平台 Phrase TMS、Lokalise 和 Smartcat 均提供相同的 Webhook 触发模式。核心概念(推送时上传源文件、审核通过时提交翻译 PR)一致,差异主要体现在定价、自动化工作流深度和机器翻译集成方案上。

越南语项目的最小化 crowdin.yml 应包含哪些内容?

在代码库根目录创建 crowdin.yml 文件。基于 JSON 的越南语项目最小可行配置:

project_id: "YOUR_PROJECT_ID"
api_token: "%CROWDIN_API_TOKEN%"
base_path: "."
files:
  - source: /src/locales/en.json
    translation: /src/locales/%locale%.json
    ignore:
      - /src/locales/en.json

%locale% 占位符会映射为越南语的 vi,生成 src/locales/vi.json。ignore 规则防止源文件被当作翻译目标文件覆盖。

在 CI 流水线中添加两个步骤(GitHub Actions 示例):

- name: Upload sources to Crowdin
  run: crowdin upload sources --config crowdin.yml
- name: Download approved Vietnamese
  run: crowdin download --language vi --config crowdin.yml

将 CROWDIN_API_TOKEN 存储为仓库密钥,不要在配置文件中硬编码。Crowdin CLI 会缓存上次上传状态并跳过未变动的文件,保持 CI 高效运行。

越南语有哪些特殊陷阱会破坏自动化工作流?

以下三种故障模式是越南语在持续本地化流水线中独有的:

Unicode 规范化漂移。 越南语变音符号有两种合法的 Unicode 表示形式:预组合 NFC(每个带音调字符对应一个码点)和分解 NFD(基础字母加组合标记)。macOS 编辑器通常写入 NFD,而大多数 TMS 平台存储 NFC。若源文件以 NFD 格式传入 Crowdin,翻译记忆库会将所有带音调的字符串视为新字符串,匹配分数归零,导致重复付费翻译。解决方案:在预提交钩子中添加 .normalize("NFC") 步骤。

声调标记错误。 越南语有六个声调,以变音符号书写。一个标记错误会完全改变词义:"ma"(鬼)、"mà"(但是)、"má"(妈妈)、"mả"(坟墓)、"mã"(代码)、"mạ"(秧苗)。自动质量评估工具检测不到声调错误,因为输出文本仍是合法的越南语。必须对面向用户的字符串设置人工审核门槛。

字符串长度增长。 越南语字符串通常比英语长 10-25%。导航标签、按钮文本和移动端 Tab 标题可能在自动化构建中静默溢出容器。在每次重要发版后用 vi 语言环境运行布局回归测试,在用户发现前捕获溢出问题。

团队可以自行处理哪些工作,何时需要越南语母语专家?

自动化层面(Crowdin 配置、crowdin.yml、GitHub 集成、CI/CD 流水线)完全是开发者的工作,无需外部专家介入。

翻译层面的实际分界线:

  • 通用 UI 文案和信息类内容:机器翻译加越南语母语审校具有成本效益。现代神经网络机器翻译处理常见产品词汇效果良好,审校环节负责捕捉声调错误和不自然表达。
  • 营销和品牌敏感文案:了解北越语体(正式商业场合的标准用语)和您产品语调的母语译者,能创作出真正有转化效果的文案,而非越南用户一眼识别的机器翻译痕迹。
  • 技术、法律或金融字符串:汉越词专业术语在此至关重要。出海越南的中国应用若使用错误的行业术语,越南用户会立刻察觉这是"外来产品"。具备专业知识的母语专家会选择用户实际使用的词汇。

越南语网站本地化服务涵盖流水线审核和母语翻译层,专为进入越南市场的网络产品提供支持。

常见问题

可以用 Crowdin 免费套餐进行越南语持续本地化吗?

Crowdin 免费套餐支持一个项目,功能有限。持续本地化所需的 GitHub 集成和分支管理功能需要付费套餐。Phrase TMS 和 Lokalise 提供类似的付费方案,可在各自官网比较当前价格。

越南语的语言环境代码应该用哪个?

不带地区变体时使用 vi(ISO 639-1),需要指定越南地区时使用 vi-VN(IETF BCP 47)。在 Crowdin 的 crowdin.yml 中,%locale% 占位符会根据项目设置中配置的语言环境代码输出对应值。

Crowdin 是否支持越南语翻译记忆库和术语表?

支持。Crowdin 为越南语维护项目级翻译记忆库(TM)。源字符串变更时,TM 会显示带匹配分数的历史越南语翻译,降低重复翻译成本。术语表可锁定汉越技术术语,确保多名译者使用一致的词汇。

如何防止机器翻译的越南语直接发布到生产环境?

在 Crowdin 项目设置中配置最低审核门槛,并设置 GitHub 集成仅在所有字符串达到该门槛后才创建翻译 PR。也可在 CI 流水线的 crowdin download 步骤中添加 --export-approved-only 标志,只下载经人工审核的字符串。

中文到越南语和英文到越南语的本地化有哪些不同之处?

中文到越南语本地化有独特优势:大量越南语词汇源自汉语(汉越词),技术和金融术语共享度高,正确使用汉越词让产品在越南用户眼中更专业。然而,现代口语越南语有时偏好纯越南词而非汉越词,在游戏和消费类应用中尤为明显。需要懂得何时用汉越词、何时用日常越南词的母语专家来把控这一平衡。

参考来源

Written by Dao Huy (Lucas), Vietnamese translator & localization specialist (EN · ZH · FR → Vietnamese). See translation services →

报价WhatsApp