ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Among Us 繁体中文本地化实战教程:语言文件、编码与字体渲染排查

Among Us 繁体中文本地化实战教程:语言文件、编码与字体渲染排查 如果你是繁体中文用户又恰好是 Among Us 的玩家大概率遇到过这样一幕游戏能正常打开主菜单却混着简体中文和英文部分按钮显示成方块或问号。更常见的是下载了社区标注为“Revamped / 繁体中文”的资源包启动之后任务描述、会议提示仍然残缺不全整局游戏只能靠队友手势和零散英文硬撑。语言问题在大多数游戏里只影响“看得舒服不舒服”但在 Among Us 这样的多人推理游戏里它直接作用于胜负紧急会议倒计时只有几秒按钮标识一旦看错整局节奏就乱了。这篇文章要解决的就是这个问题。我会围绕 Among Us 的繁体中文本地化把“在哪改语言”“改哪些文件”“怎么改不崩”“改完怎么验证”完整讲一遍。读完之后无论你手里的资源来自官方商店还是社区整合版本你都能独立判断它是否真正支持繁体中文并在需要时手动补齐本地化内容同时避开字体缺失、编码错误、版本不匹配这三个最坑的问题。先给出本文的核心判断Among Us 的本地化难点从来不是“翻译这句话”而是“让翻译被游戏加载并正确渲染”。一份繁体中文翻译文本从写进 JSON 或语言资源文件到最后显示在画面上中间隔着语言标识符、编码、字体资源、资源打包方式四道关卡。很多人在最后一道关卡翻车文件里的文字明明写对了打开游戏却还是英文、简体或乱码。所以本文不会花太多篇幅讨论“这句任务名该怎么译”而是把重点放在“如何让翻译生效”和“如何确认已经生效”这两个工程环节上。在动手前先明确范围。“Among Us Revamped Traditional Chinese”这个标题实际上包含了两层含义一层是 Among Us 的改造版本Revamped既可能是官方对界面和美术的翻新也可能是社区重新整合资源后的版本另一层是繁体中文Traditional Chinese / zh-TW语言资源。不同版本的改造深度差异极大轻的只是换文本重的会连带替换字体、界面布局和语言切换逻辑。因此文中凡是涉及具体文件路径我都会标注“以你的实际目录为准”。你要从这篇文章里带走的不是一条能用的路径而是一套可以迁移到其他 Unity 游戏的本地化排查方法。1. 为什么繁体中文本地化是一个真实问题Among Us 是 Innersloth 开发的多人社交推理游戏2018 年发行2020 年前后因为直播和社交链条传播迅速成为现象级产品。它的核心玩法是将 4 到 15 名玩家分成船员Crewmate与伪装者Impostor两个阵营船员通过做任务、修反应堆、报告尸体来维持飞船运转伪装者则要在不被发现的情况下破坏设施、击杀船员、利用通风管道转移位置最后在投票环节混淆视听。整个游戏的信息传递高度依赖文字谁在哪个房间、任务是什么、尸体在哪、投票给谁所有关键信息都在极短时间内通过 UI 文字完成交换。所以本地化质量在 Among Us 里不是“锦上添花”而是基础体验的一部分。一个繁体中文玩家如果看到的界面是简体、英文和乱码的混合体会有三个直接问题第一任务无法快速理解比如“校准分配器”“启动反应堆”这类操作型任务一旦术语翻译不准确玩家根本不知道要去哪个房间干什么团队效率直接下降第二会议和投票阶段的信息判断会出错按钮文字不清晰时很容易误点“跳过”或误投第三社交沟通成本被拉高玩家不得不在游戏中频繁切到外部翻译工具。另一个常被忽略的问题是简体中文与繁体中文之间的差异。很多人以为“简体中文能看懂繁体中文只是字不一样”但对港台玩家和一部分海外华人来说并非如此。简体与繁体之间不仅字形不同词汇习惯也有明显区别例如“信息”与“資訊”、“鼠标”与“滑鼠”、“网络”与“網路”游戏内术语更是如此。一份只做了简体中文的资源即使能显示繁体字形读起来也带着别别扭扭的“大陆腔”并不等于完成了繁体中文本地化。对于要做“繁体中文增强”的改版作者来说术语表和用词习惯往往比字形转换更花时间。从社区反馈看Among Us 官方在一段时间里陆续补充了多个语言选项其中简体中文与繁体中文的覆盖度并不总是同步。部分旧版本、移动端版本或区域商店版本语言列表里可能根本没有繁体中文而第三方整合资源里的“繁体中文”也可能只是从简体资源“转换字形”而来并未对词汇和语气做适配。这个背景意味着繁体中文玩家在多数情况下不能指望“打开游戏自动就是繁体”需要自己做一次语言路径的确认和修正。这就是本文接下来要操作的事情。2. Among Us 的语言机制与本地化核心概念要手动处理本地化先要理解游戏是怎么把文字显示到屏幕上的。Among Us 使用 Unity 引擎开发这是很容易在公开资料里确认的信息。Unity 游戏处理多语言通常有几种常见方式一是把文本存放在独立的语言资源文件中运行时按语言标识符加载二是把文本直接写在场景或预制体里由游戏逻辑按条件显示三是把文本打进 AssetBundle 或 Addressables 资源包启动时动态下载。Among Us 这类以多语言同步更新为目标的游戏主要会走第一种方式文本资源外置游戏启动时读取当前语言代码再加载对应资源。在这个过程中有三个概念需要分清。第一个是“语言标识符”。游戏内部用一串代码来表示当前界面语言常见的有 en英语、zh-CN简体中文、zh-TW繁体中文、zh-Hant繁体中文的另一种写法在部分系统中用于区分地区。很多“语言切了但没效果”的情况其实是语言标识符没有切换成功游戏仍然在用默认的 en 资源。手动修改本地化时第一步永远是确认你的版本识别的是哪个语言代码而不是把文件内容改成繁体就觉得万事大吉。第二个是“编码”。文本文件在磁盘上是一串字节怎么把字节还原成文字靠的就是编码。简体中文和繁体中文最常用的编码是 UTF-8部分老资源和 Windows 工具链可能遗留 Big5 或 GBK还有的文本带 BOMByte Order Mark头。编码不一致时轻则个别字显示异常重则整个语言文件解析失败游戏直接回调英文或报错。后面会给出一个编码检查脚本这是定位乱码问题的核心工具。第三个是“字体资源”。文字要显示游戏必须有包含对应字符的字形。如果语言文件里有某个繁体字但当前字体资源里没有这个字形屏幕上一个方块、一个问号或一个空格。尤其是 Unity 游戏用 TextMeshPro 做 UI 时文字会被预先烘焙进字体图集Font Atlas图集里没收录的字符运行时几乎不可能自动补上必须显式配置 fallback 字体或重新生成图集。把三个概念串起来游戏先读语言标识符拿到对应的文本资源再把文本按编码解析成字符串最后由字体资源决定每个字符能不能画出来。本文第 4 章改的是第一环第 5 章查的是第二环第 6 章解决的是第三环。这样分层之后你在排查时就不会再“眉毛胡子一把抓”。3. 环境准备与前置条件先说明以下操作默认你有 Among Us 的正版游戏文件且以 PC 端为主要场景。PC 端操作空间最大也最容易验证手机端的文件路径因系统限制更复杂我会在相应位置单独提示。不同平台的前置条件如下。操作系统Windows 10/11 或 macOS部分脚本涉及 bashWindows 用户可以用 Git Bash、WSL 或 PowerShell 替代。游戏版本建议先在游戏中查看版本号并记录下来。改动仅对该版本有效游戏更新后本地化改动很可能被覆盖。文本编辑器推荐 Visual Studio Code 或 Notepad。不要用 Windows 自带记事本直接编辑包含中文的 JSON记事本的编码感知能力有限容易在保存时引入 BOM 或改变编码。工具链可选Python 3.x用于运行编码检查脚本和批量文本校验如果临时没有 Python也可以用 VS Code 右下角的编码状态栏手动查看文件编码。备份空间至少保证游戏目录同盘有约 1GB 空闲空间用于备份实际备份大小取决于你的版本资源体积以实际为准。开始前请先确认游戏目录里是否有本地化相关的子目录。Unity 独立包的标准结构里游戏数据通常放在游戏目录/游戏名_Data下语言文件可能在StreamingAssets、Resources或打包后的globalgamemanagers等资源内。不同版本的 Among Us 和不同改版放置位置千差万别。不要凭空去搜某个固定文件名更可靠的做法是先进入游戏名_Data目录用文件搜索功能搜索language、Localization、lang、zh等关键词看看能搜出哪些文件再根据文件扩展名判断格式。为什么一定要先备份因为本地化文件通常和版本强相关游戏的资源打包方式、UI 控件 ID、渲染管线在每次更新后都可能变化。你在旧版本上改好的字段到新版本里可能因为 key 变了而失效甚至因为文件格式不兼容导致游戏启动崩溃。备份的意义不只是“改坏了能还原”还能让你在游戏更新后快速对比出哪些文件被动过、哪些资源被替换过是排查改版兼容问题的第一步。4. 核心流程让游戏显示繁体中文这一章按“先官方、后手动”的顺序拆解。实际操作时请严格按照顺序执行能通过官方入口解决的就不要去动文件官方入口解决不了再考虑手动改资源。4.1 第一步确认当前版本的语言设置启动游戏进入设置Settings页面找到语言或 Language 选项。如果列表里有「中文繁體」或「Traditional Chinese」这一项直接切换即可。切换后建议完全退出游戏再重新启动因为部分 Unity 游戏的字符串资源只在启动时加载一次运行时切换可能只改一半界面。如果设置里只有简体中文或英文说明这个版本内置的语言资源不完整需要进入下一步。4.2 第二步通过游戏平台属性切换语言如果你用的是 Steam 版本可以右键游戏 → 属性 → 语言查看下拉列表里是否有繁体中文选项。Steam 的语言设置会告诉游戏启动时应该加载哪种语言资源。需要说明的是这个下拉列表由开发商在 Steamworks 后台配置Among Us 在不同时期配置的语言种类可能不同列表里没有繁体中文就说明该版本没有通过平台分发这组资源。如果用的是 Epic 或其他平台版本建议直接查看商店页面的语言支持说明或者尝试在游戏内完成切换。泛泛而言平台语言设置作用于游戏的全局依赖但并非所有游戏都会读取平台的语言偏好以游戏内设置为准平台设置可以作为旁路手段补充。4.3 第三步定位并检查本地化文件当官方入口和平台入口都没有繁体中文时才进入手动阶段。这是“Among Us Revamped”类改版最常涉及的环节。先备份再把语言资源目录翻出来。搜索关键词优先尝试Localization、language、lang。找到候选文件后先不要急着改用文本编辑器打开观察内部结构如果是 JSON 格式你会看到大括号包裹的键值对如果是 CSV 或自定义格式通常第一行是字段名如果内容是乱码但文件较小可能是 Unity 的序列化资源不能直接当文本编辑。查看文件里是否出现zh-TW、zh_Hant、TraditionalChinese、cht这类标识。如果出现了说明版本内部预留了繁体中文的资源槽位如果完全没有说明这个版本可能压根没有加载繁体资源的设计需要从外部补一个资源文件或在配置中新增语言项。4.4 第四步在配置中切换语言标识符不少改版把当前语言写在配置文件里比如settings.ini、config.json或实际位置以你的版本为准的一个配置文件。常见写法形如languagezh-TW或{ language: zh-TW }如果你在资源目录里看到了独立的语言文件但游戏启动后仍然是英文最可能的原因就是运行配置里的语言标识符还停留在en或zh-CN。先定位这个配置项把它改成zh-TW再重新启动游戏。注意不要想当然地把所有出现zh-CN的地方都改成zh-TW有些字段是给特定初始化过程用的改错会导致解析异常。稳妥的做法是每改一处就启动一次游戏看效果不要一次性大批量修改。5. 完整示例本地化文件修改与编码检查这一章直接给出可以复用的三个示例对应三个典型操作查看语言文件内容、检查文件编码、备份与还原。示例以“如何理解游戏本地化文件”为最终目标文件路径都是示意请以你的实际版本为准。5.1 语言文件格式示例JSON多数 Unity 游戏的文本资源会以 JSON 或类 JSON 的字典结构保存。下面是一个简化后的语言文件示例仅用于说明结构{ meta: { language: zh-TW, version: 1.0, updated: 2025-01-10 }, ui: { main_menu: { play: 開始遊戲, settings: 設定, shop: 商店, how_to_play: 如何遊玩 }, in_game: { report: 發現屍體, emergency_meeting: 召開緊急會議, vent: 使用通風管, kill: 擊殺 } }, tasks: { swipe_card: 刷卡, fix_wiring: 修理電線, calibrate_distributor: 校準分配器 } }关键逻辑有三点。第一meta.language是给游戏判断语言用的如果界面已经切到zh-TW但meta里还写着zh-CN某些实现会只认meta字段第二每个键如play、report对应界面上的一个控件不能改键只能改值第三JSON 对语法极其敏感中文标点、多余逗号、未闭合引号都会让整个文件解析失败。改完后先用在线 JSON 校验工具或编辑器内置插件验证再放回游戏目录。5.2 编码检查脚本Python无论语言文件本身结构如何乱码的根源 80% 出在编码上。这个脚本可以批量扫描一个目录下的文本文件输出它们的编码、可信度和是否带 BOM# -*- coding: utf-8 -*- import os import chardet lang_dir Localization # 改成你的语言文件目录 exts (.json, .txt, .csv, .ini) for root, _, files in os.walk(lang_dir): for file in files: if not file.endswith(exts): continue path os.path.join(root, file) with open(path, rb) as fp: raw fp.read() result chardet.detect(raw) has_bom raw.startswith(b\xef\xbb\xbf) print(f{path}\n 编码{result[encoding]} 可信度{result[confidence]:.2f} BOM{has_bom})运行方式python check_encoding.py如果 chardet 没有安装先用pip install chardet安装。解释一下输出encodingUTF-8且BOMFalse是推荐状态encodingUTF-8且BOMTrue在多数 Unity 资源里也能用但建议统一去 BOM如果显示Big5、GB2312或Windows-1252基本可以断定这个文件与游戏主语言文件混用需要转成 UTF-8。手动转换时用 VS Code 打开文件点击右下角编码栏选择“通过编码保存”再选择 UTF-8 即可。5.3 备份与还原脚本bash本地化改动前先跑一次备份脚本避免返工#!/usr/bin/env bash # 备份 Among Us 本地化相关目录 GAME_DIR$HOME/Games/Among Us # 改成你的游戏目录 LOC_DIR$GAME_DIR/Among Us_Data # 按实际目录调整 if [ ! -d $LOC_DIR ]; then echo 未找到目录: $LOC_DIR exit 1 fi BACKUP_DIR$HOME/among_us_loc_backup_$(date %Y%m%d_%H%M%S) cp -r $LOC_DIR $BACKUP_DIR echo 备份完成: $BACKUP_DIRWindows 用户可以在 PowerShell 中执行等价的Copy-Item -Recurse命令。备份完成后再执行任何修改。还原时只需要删掉当前被修改的目录把备份目录复制回去。6. 字体渲染繁体中文最容易踩的坑如果第 4 章和第 5 章都做完了界面仍然显示方块或问号问题基本就出在字体渲染这一层。先解释原因。Unity 游戏的 UI 文字尤其是在使用 TextMeshPro 的版本里字符会被烘焙进一张或多张字体图集。图集里收录了哪些字符取决于创建字体资源时选择的源字体文件和导入设置。很多海外团队做本地化时字体资源只覆盖了拉丁字符和部分常见符号简体中文字形不全繁体中文字形更少。当遇到图集里没有的字符时Unity 的表现通常是显示为一个长方形或问号而不是动态去系统字体里找。怎么判断是不是字体问题非常简单观察同一段文字里是否“大部分字正常个别字是方块”。如果所有文字都乱码优先怀疑编码如果只是零星几个字缺失那 99% 是字体资源没有覆盖到这些字形。解决思路有三条难度从低到高。第一条给游戏配置一个 fallback 字体。部分 Unity 游戏支持在设置或资源文件中指定回退字体列表。如果你能找到类似字体配置的字段可以在列表中追加一个本地路径的繁体字体文件例如思源黑體、Noto Sans TC、微軟正黑體。注意追加顺序游戏会按列表顺序逐个查找字形前面的字体没有才用后面的。第二条替换字体资源文件。找到游戏使用的字体资源通常在资源目录中扩展名可能是 .ttf、.otf也可能被 Unity 序列化打包用支持繁体中文的同名字体替换。替换前务必备份原文件因为字体文件体积大改动后会影响加载时间和包体大小。这一步在部分版本里需要同时替换 Font Asset 的图集只替换源字体可能不会生效。第三条借助社区 Mod 或改版提供的字体补丁。如果你的目标是玩“Revamped 繁体中文整合版”很多长期维护的整合包已经内置了专门的繁体字体和文本资源你不需要自己解决字体问题。但要注意这类补丁和游戏版本强绑定更新游戏后必须同步更新补丁否则高概率出现缺字或崩溃。需要提醒的是字体替换属于资源级修改不同版本的资源打包差异很大。如果替换后游戏无法启动先检查字体文件格式是否被完整导入再检查是否多放了多余文件。实在解决不了不要硬钻先回滚到备份再尝试其他补丁方案。7. 运行结果与效果验证改动完成后验证比修改本身更重要。很多教程只教“改到哪”不教“怎么确认成功”导致用户改完心里没底。这里给一个可执行的验证清单。启动游戏后按顺序检查以下界面主菜单是否显示「開始遊戲」「設定」「商店」「如何遊玩」等繁体中文按钮英文残留不超过可接受范围。单人模式或教学关进入一局游戏检查任务面板。重点看任务名称和描述是否已切换为繁体而不是“字形变了但用词还是简体习惯”。会议室触发一次紧急会议或报告尸体检查按钮是否显示「跳過」「投票」等倒计时数字是否正常。设置页切出设置页再返回确认语言切换没有导致界面错位或文本截断。如果游戏支持日志输出可以查看 Unity 的日志文件不同平台的日志路径不同常见位置在%APPDATA%\..\LocalLow\Innersloth\Among Us\Player.log或类似路径以实际为准搜索language、zh、font等关键词看资源加载阶段有没有报错。判断成功的标准不是“全是繁体”而是“关键操作路径没有歧义”。这里给出一个更实际的建议以“能否在 10 秒内无障碍完成一次报告尸体 → 开会 → 投票”的完整流程作为验收标准。如果这个链路里所有文字都能正确读出来就说明本地化已经达到可玩状态剩下少数边角文本的翻译润色可以后续再修。如果验证失败请按下述顺序排查第一重启游戏确认完全退出而非后台挂起第二检查语言配置文件是否还在值是否仍然是zh-TW第三跑一次编码检查脚本确认文件没被编辑器改成其他编码第四回滚到备份重新按第 4 章顺序做一遍。多数失败都出现在“文件改了但配置没改”或“编码被编辑器悄悄改了”这两处不需要一开始就怀疑版本有恶意问题。8. 常见问题与排查方法下面这张表汇总了 Among Us 繁体中文本地化实践中最高频的六个问题问题现象可能原因排查方式解决方案界面仍然是英文语言标识符没有切换成功进入设置页检查语言选项修改运行配置为 zh-TW界面出现乱码文本文件编码与游戏不一致运行编码检查脚本统一转存为 UTF-8 无 BOM显示繁体但用词像简体资源只有简转繁字形没有语义适配对比任务术语与港台习惯替换为真正的 zh-TW 资源打开语言文件后启动报错JSON 语法错误用 JSON 校验器检查修复括号、引号、逗号个别文字显示为方块字体资源缺少对应字形观察缺失字符是否零星增加繁体 fallback 字体游戏更新后修改失效更新覆盖了本地化文件查看版本号和更新日志重新应用本地化补丁逐条补充两句。第一条是最常见的情况很多人改了配置文件但忘了重启进程或者配置文件其实有多个副本改了一个另一个没改需要全盘搜索确认。第二条的乱码形态值得区分全文件乱码是编码问题单行乱码则可能是文件混合编码。第三条属于“看起来成功实际不合格”如果目的是真正服务繁体中文玩家用词适配比字形转换更关键这也是 Revamped 类改版价值所在。第四条的 JSON 报错最容易定位因为错误信息通常会指出行号和列号按提示修改即可。第五条要在动手前先确认字体资源是否支持繁体别在替换翻译文件后才发现字体不支持白折腾一趟。第六条是长期维护问题建议每次游戏更新后都先运行一次“检查语言文件是否被动过”的对比脚本再决定是否需要重新打补丁。9. 最佳实践与工程建议把该踩的坑都踩过一遍后以下工程建议能帮助你少走很多弯路。第一永远在改动前备份。这条怎么强调都不过分。本地化文件、字体资源、配置文件这三类文件任何一项出错都可能导致游戏无法启动而备份是成本最低的保险。备份不只备份要改的文件最好连同整个游戏数据目录一起拷贝方便后续比对差异。第二坚持最小改动原则。一次只改一个文件、改完立即验证不要一次性把翻译、字体、配置全改完再开机。这样一旦出问题能迅速定位到是哪一步引入的。批量修改看着高效实际排查成本成倍上升。第三维护一个术语表。如果你参与到 Revamped 繁体中文整合版的更新维护中建议用表格维护一组固定译法。比如「任務」「船員」「偽裝者」「緊急會議」「跳過」「投票」「通風管」「擊殺」每局的翻译保持统一不要出现同一操作在不同界面叫法不一致的情况。术语一致性的价值在多人游戏里会被成倍放大因为玩家需要在极短时间内共享同一套词汇。第四善用对比而非直接全覆盖。做多个版本的语言文件横向对比时先diff一下因为某个版本可能在meta结构上有差异直接覆盖会丢失结构字段。游戏更新后尤其要注意这一点。第五关注安全边界。如果你只是想自己玩手动改文件足够了如果你想参与社区发布整合包请确认自己拥有资源来源的合法授权不要直接搬运商业资源、破解资源或未经允许的素材。本地化补丁做到“只改语言、不影响游戏原有功能”是最低底线。同时在给别人提供补丁时建议附带校验信息和还原说明降低使用门槛。第六区分“自己用”和“分发”。自己用的本地化文件可以随便改就算改坏了也不影响别人分发时则需要考虑目标机器多样性不同 Windows 版本和不同字体环境下同一个字体文件可能表现不同。发布前最好在至少两个干净环境里测试过避免“我这儿好的你那儿全乱码”。10. 总结与后续学习方向回到开头那个判断Among Us 的繁体中文本地化本质是一条“翻译文本 → 编码解析 → 字体渲染 → 资源加载”的流水线。本文真正讲清楚的是这条流水线的前三环如何切换语言标识符、如何检查和修复编码、如何识别和规避字体缺口。实际操作中大部分问题都出在第二环和第三环而不是翻译文本本身。如果你现在手头有一份繁体中文资源包建议不要急着整包替换先做三件事打开资源文件观察结构、跑一遍编码检查脚本、备份整个游戏数据目录。三件事做完你对这个版本的本地化机制就已经有了基本判断接下来再决定是否手动调整心里就有底了。想继续深入的话有三个方向可以选一是学习 Unity 游戏的资源打包规则搞清楚 TextAsset、StreamingAssets、AssetBundle 的差异这会让你理解为什么有些文字改文件就能生效有些则必须重新打包二是研究社区 Mod 加载器的工作原理比如 BepInEx 这类 Unity 社区常见的插件框架了解补丁如何在不修改原文件的前提下接管语言资源这是更“工程化”的本地化方案三是系统学习编码与字符集知识特别是 UTF-8、BOM、Big5 与 CJK 字符集的关系这套知识不仅能用在游戏本地化上任何处理多语言文本的后端工程都能用上。最后提醒一句不论改动多小都要记录游戏版本号、修改日期和修改内容。多人游戏的更新频率不低今天能用的繁体中文补丁三个月后可能因为一次小更新就失效。养成版本记录的习惯比任何技巧都更能节省你的时间。
返回列表