公司业务做大了,要把系统卖到国外去。
老板把任务交给你,让你把系统改成多语言。
你信心满满打开代码,结果傻眼了。
代码里全是硬编码的汉字,到处都是“用户登录”、“保存成功”。
想改吧,根本无从下手。
改一个地方,另外三个地方就报错。
老外客户一看界面,全是乱码,直接把合同退了。
别急,别慌。
我做了十年开发,踩过无数坑。
今天我就把这套多语言方案分享给你。
不讲那些虚头巴脑的理论,全是实操干货。
看完你就能直接上手,把你的系统变成国际化大厂的范儿。
这步最基础,也是最累的。
但必须得做,不做后面全是雷。
说白了,就是别在代码里直接写汉字。
以前你写按钮,可能直接这么写:
```html ```现在你得换个思路。
给这段话起个代号,专业点叫 Key。
比如叫 `archive.submit`。
代码里只写这个代号,不写汉字。
系统运行的时候,会拿着这个代号去查字典。
查到什么字,就显示什么字。
你可以建个 JSON 文件,或者 YAML 文件。
专门放中文和英文的对照关系。
就像查字典一样。
比如:
```json { "archive.submit": { "zh": "提交档案", "en": "Submit Archive" } } ```如果是中文环境,系统就取 "zh" 后面的字。
如果是英文环境,就取 "en" 后面的字。
这样做的好处是啥?
以后老板想改文案,你不用动代码。
改改这个配置文件就行了,安全又方便。
避坑提醒:
别起那种 `a1`、`b2` 这种看不懂的代号。
过半年你自己都忘了这是啥意思。
一定要用有意义的词,比如 `user.login.title`。
前端界面变了,后端不能傻站着。
接口返回的消息,也得跟着变。
不然老外操作报错了,弹出一堆中文提示。
他只能对着屏幕发呆,体验极差。
一般看请求头。
浏览器发请求时,会带个东西叫 `Accept-Language`。
后端拿到这个头,就知道该回中文还是英文。
或者,你可以在 URL 里带参数。
比如 `api/list?lang=en`。
这种方式更直观,方便你调试。
你可以用 Postman 试试,换个参数,返回的文字就变了。
很多人只顾着翻译菜单、按钮。
结果报错的时候,弹出一堆中文错误码。
像“文件不存在”、“网络超时”、“权限不足”这种。
统统都要翻译。
最好搞个统一的错误码处理机制。
后端只返回错误码,比如 `404`。
前端根据错误码,去语言包里找对应的话。
这样前后端都清爽,维护起来也轻松。
菜单按钮好办,因为有固定的数量。
最难的是数据库里的数据。
比如用户上传的文件名,或者档案的分类名称。
这些是用户自己填的,存在数据库里的。
怎么让它们也支持多语言?

最简单的办法,直接加字段。
你的表里本来有个 `name` 字段存中文名。
你再加个 `name_en` 字段存英文名。
存数据的时候,让用户填两个版本。
取数据的时候,根据语言选字段。
如果是英文环境,就查 `name_en`。
这种方式简单粗暴,开发速度最快。
适合字段少、时间紧的项目。
如果字段特别多,加字段会把表搞得很乱。
你可以单独建一张表,专门存翻译。
主表里只存个 ID 或者默认语言。
展示的时候,去翻译表里查。
比如有个档案表,ID 是 100。
翻译表里就存:ID 100 的英文名叫啥。
这样结构更清晰,扩展性也好。
以后老板想加个法语、德语。
直接往翻译表里加数据就行。
不用改原来的表结构,不用重启服务。
避坑提醒:
记得加缓存,别每次查库都去关联查询。
数据量一大,系统会被拖慢的。
你以为翻译完就完了?
这才是噩梦的开始。
很多系统一换英文,界面就乱套了。
中文四个字,英文可能是一长串。
“保存设置” vs "Save System Settings"。
原来的按钮可能写死了宽度。
英文一进去,直接把布局撑爆了。
或者文字显示不全,被截断了。
所以,UI 布局一定要做自适应。
按钮高度要能自动撑开,宽度别写死。
文字太长了,就让它自动换行。
或者用 CSS 的 `text-overflow: ellipsis`。
显示不完就省略号,鼠标放上去显示全称。
不光是文字,数字格式也不同。
日期格式,中国习惯是 2023-10-01。
美国习惯可能是 10/01/2023。
金钱符号,人民币是 ¥,美元是 $。
甚至数字的千分位分隔符都不一样。
有的国家用逗号,有的用点。
这些细节如果不注意,老外会觉得你的系统很 Low。
一定要用现成的国际化库来处理这些格式。
别自己手写转换逻辑,容易出错,还浪费时间。
做档案管理系统多语言,其实就是个细致活。
把文字抽离出来,别写死在代码里。
接口根据请求头,返回对应语言的提示。
数据库里的数据,单独建表存翻译。
布局要灵活,别被长短不一的文字撑爆。
千万别用机器翻译直接糊弄客户。
有些专业术语,机器翻出来很离谱。
比如“服务器”,机器翻成“Server”没问题。
但有些行业黑话,翻出来老外也看不懂。
找几个懂行的朋友,帮忙校对一下。
好了,方法都告诉你了。
别光收藏吃灰。
今晚回去,找个简单的页面。
试着把里面的几个汉字抽离出来。
迈出第一步,你就已经赢了。
加油!