越南语 i18n与l10n:先做什么
💡 国际化(i18n)是一次性工程工作,使代码库支持多语言:UTF-8编码、字符串外部化、区域格式化。本地化(l10n)是针对每种目标语言重复进行的翻译与文化适配。对于越南语,i18n必须先行:缺少编码声明或存在硬编码字符串,即使最完美的越南语翻译也会在运行时出错。
要点
- i18n是一次性工程基础;l10n建立在其之上,缺少i18n则无法成功。
- 越南语i18n最低要求:全局UTF-8编码、
<html>元素上设置lang="vi"、所有字符串置于语言环境文件、使用vi区域设置的日期/数字/货币格式化。 - 越南语l10n增加:母语翻译、正确的汉越词语体选择,以及针对比英语长10-20%的字符串的布局质量检查。
- 跳过i18n直接翻译是最昂贵的错误:翻译进行中仍需改造代码库,两项工作相互阻碍。
- 两个阶段都影响SEO:i18n建立URL结构和hreflang信号;l10n产出Google收录和排名的越南语内容。
i18n和l10n有什么区别?
W3C国际化活动对两个术语给出了精确定义。国际化(i18n)是使产品能够轻松本地化,以适应文化、地区或语言各异目标受众的设计和开发工作。本地化(l10n)是调整产品、应用程序或文档内容,以满足特定目标市场的语言、文化和其他要求。
实际操作中:i18n是工程师对代码库所做的工作;l10n是翻译人员和内容专家对内容所做的工作。这两个缩写取自每个单词的首字母和末字母,中间的数字表示中间字母的数量(internationalization有18个,localization有10个)。
为什么越南语本地化必须先做i18n?
越南语使用扩展拉丁字母,共29个基本字母,以及标记6个音调的组合变音符号。若代码库以Windows-1258等旧式编码存储文本,越南语字符串一旦载入,变音符号就会乱码。界面中硬编码的字符串意味着每轮翻译都需要同步改动代码,阻碍并行工作流程。
i18n创建了l10n所要填充的技术挂钩。没有这些挂钩,即使最完美的翻译也无法干净地集成到产品中。完整的上线清单请参阅越南语网站本地化完整清单。
越南语就绪代码库的i18n检查清单
开始翻译前完成以下工程任务:
- UTF-8编码:在每个HTTP响应和HTML
<meta charset>标签(须在前1024字节内)中声明charset="UTF-8"。W3C国际化活动将此列为正确渲染越南语变音符号最关键的步骤。 - 语言属性:在每个越南语页面的
<html>元素上设置lang="vi"。仅当需要区分越南本土越南语与海外越南语变体时才使用lang="vi-VN"。 - 字符串外部化:将所有用户可见的字符串移至语言环境资源文件(JSON、XLIFF或PO格式),按字符串ID建立键值对。vi.json示例:
"checkout_button": "Thanh toán"。硬编码字符串是本地化不完整的首要原因。 - 区域感知格式化:使用平台的Intl API或ICU兼容库处理日期、数字和货币。JavaScript示例:
new Intl.NumberFormat('vi-VN', { style: 'currency', currency: 'VND' }).format(250000)返回正确的"250.000 ₫"。 - URL结构:从一开始就采用子目录路径(
example.com/vi/)。上线后再修改URL结构会导致链接断裂和SEO受损。 - 弹性布局:设计能承受字符串长度增长的UI组件。越南语文本通常比英语长10-20%,影响按钮标签、导航项和表格列。
l10n在i18n基础上增加了什么?
代码库国际化完成后,l10n填充特定于语言环境的内容:
- 翻译:语言环境文件中的每个字符串由越南本地母语者翻译,包括UI标签、错误消息、meta标题、meta描述和alt文本。
- 语体选择:越南语有明显的正式与非正式语体之分。汉越词(源自古汉语的借词)在科技、金融和医疗语境中传达专业感,这对进入越南市场的中国企业是天然优势。母语专家会根据受众和领域做出恰当的语体选择。
- 文化适配:越南盾VND(无小数位)、DD/MM/YYYY日期格式和正式场合24小时制时间格式,均与中文或英语默认值不同,必须在每个本地化字符串中正确应用。
- 布局质量检查:在移动端和桌面端宽度进行最终视觉审查,确认较长的越南语字符串不会破坏导航菜单、按钮或数据表格。
实用决策表:哪些是i18n任务?哪些是l10n任务?
在启动越南语项目前,用此表快速分类本地化任务。常见错误:在字符串外部化完成前提交翻译文件,导致集成工作被阻断。
| 任务 | 阶段 | 执行者 |
|---|---|---|
| 将文件编码切换为UTF-8 | i18n | 工程师 |
在HTML元素添加lang="vi" | i18n | 工程师 |
| 将字符串移至vi.json语言环境文件 | i18n | 工程师 |
| 实现Intl日期和数字格式化 | i18n | 工程师 |
| 设置/vi/子目录URL路由 | i18n | 工程师 |
| 实现双向hreflang | i18n | 工程师 |
| 翻译vi.json中的所有字符串 | l10n | 越南语译员 |
| 审查汉越词语体选择 | l10n | 越南本地专家 |
| 按越南语字符串长度测试布局 | l10n | QA工程师+越南审阅者 |
| 越南语SEO关键词研究 | l10n | 越南语SEO专家 |
自主完成还是聘请专家:各阶段的边界
i18n是您自己的开发团队应当主导的工程工作。所有主流框架都内置了i18n支持:Next.js、React i18next、Vue i18n、Angular i18n、WordPress的WPML。这是代码库架构决策,不是外包任务。
l10n质量取决于内容类型。机器翻译(Google翻译、DeepL)在有越南本地审阅者进行后期编辑的情况下,能较好地处理大批量结构化内容。如需了解AI与人工翻译的详细对比,请参阅AI与人工翻译对比分析。对于界面文案、营销文本和专业术语,越南本地母语专家的直接翻译在质量和语体准确性上持续优于机器翻译后期编辑。
如需了解专业越南语网站本地化服务(支持中文、英文和法文源语言),请参阅本站的越南语网站本地化服务,提供覆盖技术、营销和专业领域的本地母语翻译。
常见问题
i18n完成前可以开始翻译越南语吗?
静态内容文件(博客文章、帮助文章)可以立即翻译,不依赖代码库i18n。但UI字符串在字符串外部化完成且应用程序中语言环境文件加载正常运作之前,无法集成到产品中。同时推进两条线是可行的;只需为UI字符串安排好在i18n完成前的集成等待期。
简单营销网站的最低i18n配置是什么?
对于简单静态营销网站:声明UTF-8编码、在越南语页面添加lang="vi"、使用/vi/子目录URL,并实现双向hreflang。字符串外部化对静态网站的紧迫性低于动态应用,但能让未来更新效率大幅提升。仅当页面显示价格或日期时才需添加区域感知格式化。
hreflang是i18n任务还是l10n任务?
hreflang是i18n任务。它是由工程师在HTML或HTTP标头中实现的技术信号,告知搜索引擎页面的目标语言以及存在哪些替代语言版本。这不是翻译工作。但hreflang需要先确定越南语URL结构,因此依赖于i18n架构决策。
如何验证应用中越南语字符串编码正确?
在浏览器中打开越南语页面并查看原始HTML源代码。越南语文本应显示为可读的Unicode字符:"Tiếng Việt",而非乱码序列。若看到乱码,先在服务器层修复编码:确保HTTP Content-Type标头包含charset=UTF-8,然后验证源文件以无BOM的UTF-8格式保存。
参考来源
- W3C国际化活动:本地化与国际化 - 本文使用的i18n和l10n主要定义。已于2026年9月验证。
- W3C国际化:HTML和CSS编写 - 越南语UTF-8编码要求和lang属性指南。已于2026年9月验证。
- Unicode CLDR项目 - 越南语区域数据:日期/数字/货币格式和vi区域设置的ICU排序规则。已于2026年9月验证。
- Wikipedia:国际化与本地化 - i18n/l10n概念的百科全书式概述。已于2026年9月验证。
Written by Dao Huy (Lucas), Vietnamese translator & localization specialist (EN · ZH · FR → Vietnamese). See translation services →
