# 游戏本地化(Localization / L10n) Confidence: high Last verified: 2026-04-28 Generation: human_only # 游戏本地化(Localization / L10n) > **本地化不是翻译。** 翻译是把文字从 A 语言变成 B 语言;本地化是让游戏在 B 文化中**感觉像是为当地人设计的**。 --- ## 目录 1. [本地化 vs 国际化 vs 文化适配](#本地化-vs-国际化-vs-文化适配) 2. [多语言技术实现](#多语言技术实现) 3. [UI/UX 在地化](#uiux-在地化) 4. [文化适配(Culturalization)](#文化适配culturalization) 5. [本地化流程管理](#本地化流程管理) 6. [质量保障与测试](#质量保障与测试) 7. [各语言特殊挑战](#各语言特殊挑战) 8. [工具与平台](#工具与平台) --- ## 本地化 vs 国际化 vs 文化适配 ### 概念区分 | 概念 | 英文 | 范围 | 说明 | |------|------|------|------| | **全球化** | Globalization (G11n) | 商业策略 | 决定进入哪些市场 | | **国际化** | Internationalization (I18n) | 技术准备 | 让游戏**具备**支持多语言的能力 | | **本地化** | Localization (L10n) | 内容适配 | 将游戏适配到特定地区 | | **文化适配** | Culturalization | 深度调整 | 根据文化价值观修改内容 | ### 国际化(I18n)技术准备清单 ``` 开发阶段必须完成: ✅ 文本外置 └── 所有用户可见字符串在代码外(CSV/JSON/XLIFF) └── 硬编码 = 后期无法本地化 ✅ 动态文本支持 └── 占位符系统:"{player_name} 获得了 {item_count} 个 {item_name}" └── 复数规则:1 sword / 2 swords(不同语言规则不同) ✅ 字体支持 └── 中/日/韩:CJK 字体(数万字符) └── 阿拉伯/希伯来:RTL(从右到左) └── 泰语/印地语:复合字符 ✅ UI 自适应 └── 文本框支持动态扩展 └── 按钮大小随文本长度调整 └── 最小/最大宽度约束 ✅ 日期/时间/数字格式 └── 日期:MM/DD/YYYY(美)vs DD/MM/YYYY(欧)vs YYYY/MM/DD(日) └── 数字:1,000.50(美)vs 1.000,50(德) └── 货币:符号位置($100 vs 100$) ✅ 语音/音频分离 └── 语音文件按语言分包 └── 音效(非语言)共用 ``` --- ## 多语言技术实现 ### 文本系统架构 ``` 本地化系统架构: Key-Value 存储(运行时) ├── 主键: gameplay.dialog.welcome ├── 英文: "Welcome, {player_name}!" ├── 中文: "欢迎回来,{player_name}!" ├── 日文: "お帰りなさい、{player_name}さん!" └── 占位符:{player_name} → 运行时替换 存储格式对比: ├── CSV — 简单,Excel 友好,但不支持嵌套 ├── JSON — 灵活,支持嵌套,解析开销小 ├── XLIFF — 行业标准,支持翻译记忆、状态追踪 └── GetText (.po) — Linux 标准,支持复数规则 ``` ### 复数规则处理 | 语言 | 复数形式 | 示例 | |------|----------|------| | **英语** | 2种:1 / other | 1 apple / 2 apples | | **中文** | 1种:无变化 | 1个苹果 / 2个苹果 | | **日语** | 1种:通常无变化 | (偶有变化但不依赖数字)| | **俄语** | 3种:1 / 2-4 / other | 1 яблоко / 2 яблока / 5 яблок | | **阿拉伯语** | 6种 | 极其复杂 | | **波兰语** | 3种 | 复杂规则 | ```python # ICU MessageFormat 风格的复数处理 # "{count, plural, one {# sword} other {# swords}}" # 俄语需要3种形式 # "{count, plural, one {# меч} few {# меча} many {# мечей}}" ``` ### RTL(从右到左)语言支持 | 语言 | 方向 | 特殊处理 | |------|------|----------| | **阿拉伯语** | RTL | 文字方向、数字方向、UI 镜像 | | **希伯来语** | RTL | 同上 | | **波斯语** | RTL | 同上 | | **乌尔都语** | RTL | 同上 | ``` RTL 实现要点: 1. 文本渲染方向:从右到左 2. 数字通常保持 LTR(嵌入在 RTL 中) 3. UI 布局镜像: ├── 左对齐 → 右对齐 ├── 返回按钮从左上角移到右上角 ├── 进度条从右向左填充 └── 列表滚动条在左侧 4. 混合文本(RTL 中夹杂英文)需要 BiDi 算法 ``` ### 字体与渲染 | 语言族 | 字符数 | 字体大小 | 渲染挑战 | |--------|--------|----------|----------| | **拉丁** | ~200 | 小 | 简单 | | **CJK** | 20,000+ | 极大 | 字形复杂、文件大 | | **阿拉伯** | ~200 | 中 | 连字、字形变化 | | **泰语** | ~100 | 小 | 复合字符、无空格分词 | | **印地语** | ~500 | 中 | 复合字符、重音符号 | **字体优化策略**: ``` 1. 子集化(Subsetting) └── 只打包实际使用的字符 └── CJK 游戏常用字约 3500 个,而非全部 2 万字 2. 动态字体加载 └── 基础包:常用字 └── 扩展包:生僻字按需下载 3. SDF(Signed Distance Field)字体 └── 放大不模糊,适合 UI └── 支持描边、发光等效果 4. 字体回退链 └── "游戏专用字体" → "系统默认" → "Noto Sans" ``` --- ## UI/UX 在地化 ### 文本扩展问题 | 语言 | 相比英语平均长度 | 极端情况 | |------|-----------------|----------| | **中文** | 50-70% | 更短 | | **日语** | 60-80% | 类似 | | **德语** | 120-150% | 单词极长 | | **俄语** | 110-130% | 较长 | | **法语** | 110-120% | 较长 | | **西班牙语** | 115-125% | 较长 | **UI 设计原则**: ``` 1. 按钮最小宽度 = 英文长度 × 1.5 2. 文本框支持自动换行和动态高度 3. 避免固定宽度的紧凑布局 4. 预留 30% 的文本扩展空间 5. 用图标+文字,而非纯文字按钮 ``` ### 文化色彩与符号 | 元素 | 西方含义 | 东方含义 | 注意 | |------|----------|----------|------| | **白色** | 纯洁、婚礼 | 死亡、葬礼 | 避免在喜庆场景使用 | | **红色** | 危险、爱情 | 喜庆、好运 | 反向含义 | | **4** | 普通数字 | 谐音"死" | 中文区避免 | | **13** | 不吉利 | 普通 | 西方避免 | | **竖大拇指** | 赞 | 部分地区冒犯 | 中东地区 | | **OK 手势** | 好的 | 部分地区冒犯 | 巴西等地区 | --- ## 文化适配(Culturalization) ### 内容审查层级 ``` 层级 1:法律合规(必须改) ├── 赌博机制(部分国家禁止) ├── 血腥/暴力程度(德国、澳大利亚分级严格) ├── 政治敏感内容 ├── 宗教冒犯 └── 历史修正(如日本对二战内容的处理) 层级 2:文化敏感(应该改) ├── 骷髅/死亡符号(中韩常见,中国需要和谐) ├── 裸露程度(不同地区接受度不同) ├── 酒精/毒品引用 ├── 节假日活动(圣诞节 vs 春节) └── 角色设计(肤色、体型多样性) 层级 3:文化增强(可以改) ├── 本地节日活动 ├── 本地名人/梗引用 ├── 本地支付方式 ├── 本地社交媒体集成 └── 本地配音(而非仅字幕) ``` ### 典型案例 | 游戏 | 地区 | 改动内容 | |------|------|----------| | **PUBG** | 中国 | 血液变绿色,死亡改为挥手告别 | | **魔兽世界** | 中国 | 骷髅变面粉袋,尸体变坟墓 | | **原神** | 全球 | 四国庆典映射现实节日(璃月=春节) | | **王者荣耀** | 全球 | 英雄名称/形象本地化(如荆轲→阿轲) | --- ## 本地化流程管理 ### 标准本地化流程 ``` Phase 1: 准备(开发中同步进行) ├── 提取所有可本地化字符串 ├── 锁定文本(Freeze) ├── 准备术语表(Glossary) ├── 准备风格指南(Style Guide) └── 准备上下文注释(Context) Phase 2: 翻译 ├── 初翻(第一译者) ├── 编辑审校(第二人) ├── LQA(语言质量保证) └── 客户审阅(可选) Phase 3: 集成 ├── 导入翻译文件 ├── 字体/排版调整 ├── UI 适配测试 └── 功能测试 Phase 4: 验证 ├── 语言测试(In-game LQA) ├── 文化审查 ├── Bug 修复 └── 最终签核 ``` ### 术语表(Glossary)管理 ``` 术语表示例: | 英文 | 中文 | 日文 | 备注 | |------|------|------|------| | HP | 生命值 | HP | 不要译成" hit point" | | Mana | 法力值 | MP/マナ | 魔法类游戏 | | Critical Hit | 暴击 | クリティカル | 统一译法 | | Quest | 任务 | クエスト | 不要混用"使命" | | Boss | 首领 | ボス | 不要译成"老板" | ``` ### 上下文(Context)的重要性 ``` 反例:没有上下文的翻译灾难 原文:"Charge!" ├── 战士技能 = "冲锋!" ✅ ├── 法师技能 = "充能!" ✅ ├── 商店按钮 = "充值!" ✅ └── 没有上下文 → 译者只能猜 → 错误率高 解决方案: ├── 提供截图 ├── 提供场景描述 ├── 标注角色性别、语气 └── 标注字符串长度限制 ``` --- ## 质量保障与测试 ### 本地化测试检查清单 | 类别 | 检查项 | 通过标准 | |------|--------|----------| | **语言** | 拼写/语法错误 | 零错误 | | **语言** | 术语一致性 | 术语表 100% 匹配 | | **语言** | 截断/溢出 | 无 UI 溢出 | | **功能** | 占位符替换 | 所有 {变量} 正确显示 | | **功能** | 复数规则 | 1/2/5 分别测试 | | **功能** | 日期/数字格式 | 符合当地习惯 | | **文化** | 敏感内容 | 无法律/文化风险 | | **性能** | 字体加载 | 无卡顿、无方块字 | ### Pseudo-Localization(伪本地化测试) ``` 在正式翻译前,用伪语言测试 UI 适应性: 原文:"Welcome, Player!" 伪本地化:"[Ŵéļçõmé, þļåýéŕ!]" 特点: - 增加 30% 字符长度 - 添加重音符号 - 用方括号标记可扩展边界 目的: - 发现截断问题 - 发现硬编码字符串 - 测试 RTL 布局 - 无需等待真实翻译 ``` --- ## 各语言特殊挑战 | 语言/地区 | 主要挑战 | 解决方案 | |-----------|----------|----------| | **中文** | CJK 字体大、繁简转换、审查 | 子集化字体、自动繁简转换、提前审查 | | **日语** | 敬语系统、平假名片假名混合 | 语境标注敬语级别、术语统一 | | **韩语** | 合成字体(字母组合成字)| 确保字体支持合成 | | **阿拉伯语** | RTL、连字、数字方向 | BiDi 算法、UI 镜像测试 | | **德语** | 单词极长、复合词 | UI 预留 150% 空间、允许换行 | | **俄语** | 变格(名词随语境变化)| 占位符设计支持变格 | | **泰语** | 无空格分词、复合字符 | 使用分词库、特殊字体测试 | | **印地语** | 复合字符、字体支持有限 | 使用 Noto Sans Devanagari | --- ## 工具与平台 ### 本地化工具对比 | 工具 | 类型 | 特点 | 价格 | |------|------|------|------| | **Unity Localization** | 引擎内置 | 与 Unity 深度集成 | 免费 | | **Unreal Text Localization** | 引擎内置 | 基于文本收集 | 免费 | | **Crowdin** | 云端平台 | 协作翻译、API 集成 | 免费起步 | | **Transifex** | 云端平台 | 企业级、工作流完善 | 付费 | | **Phrase** | 云端平台 | 开发者友好、CLI 工具 | 付费 | | **POEditor** | 云端平台 | 简单轻量、性价比高 | 免费起步 | | **memoQ** | 桌面 CAT | 专业译者工具 | 付费 | | **SDL Trados** | 桌面 CAT | 行业标准 | 付费 | ### 本地化成本参考 | 内容类型 | 每字价格(美元) | 备注 | |----------|-----------------|------| | **普通游戏文本** | $0.08-0.15 | 量大可议价 | | **创意/营销文本** | $0.15-0.30 | 需要创译(Transcreation)| | **LQA 测试** | $40-80/小时 | 或按字数计费 | | **配音** | $200-500/小时 | 因语言和演员而异 | | **文化顾问** | $100-300/小时 | 审查敏感内容 | --- ## 最佳实践 - [ ] **开发第一天就做 I18n** — 后期 retrofit 成本是前期的 10 倍 - [ ] **文本 Freeze 后再翻译** — 避免反复修改导致翻译返工 - [ ] **提供上下文** — 截图 + 场景描述 + 长度限制 - [ ] **维护术语表** — 确保全游戏术语一致 - [ ] **先做 Pseudo-Localization** — 在真实翻译前发现 UI 问题 - [ ] **测试所有语言** — 特别是 RTL 和 CJK - [ ] **分包下载语音** — 语音文件按语言分包,减少首包大小 - [ ] **记录玩家反馈** — 母语玩家的翻译纠错是最宝贵的 - [ ] **考虑方言** — 西班牙语(西班牙 vs 拉美)、葡萄牙语(葡 vs 巴) - [ ] **节日活动本地化** — 不只是翻译,还要考虑文化相关性 --- ## 相关页面 - [游戏 UI/UX](game-ui-ux.md) — UI 自适应设计 - [社区资源](game-dev-communities.md) — GDC 在地化技术分享 - [游戏数据分析](game-data-analytics.md) — 多地区数据对比