前端国际化方案:从i18n到动态语言切换实现
🧑🏫 作者:全栈老李
📅 更新时间:2025 年 5 月
🧑💻 适合人群:前端初学者、进阶开发者
🚀 版权:本文由全栈老李原创,转载请注明出处。
最近有学员问我:"老李啊,我们产品要出海了,老板让我三天内搞定多语言切换,这玩意儿到底怎么整?" 今天咱们就掰开了揉碎了聊聊前端国际化那些事儿。
为什么国际化不是简单的翻译?
很多人以为国际化(i18n)就是把页面文字换成英文那么简单,就像把"登录"改成"Login"。但实际上,国际化是个系统工程,包括但不限于:
- 文本翻译(最基础)
- 日期/时间格式(美国用MM/DD/YYYY,中国用YYYY-MM-DD)
- 货币显示(¥9.99 vs $9.99)
- 图片/图标本地化(某些手势在不同文化中有不同含义)
- 布局适配(阿拉伯语从右向左排版)
举个真实案例:某国产App在阿拉伯地区上线后,因为所有图片都包含"左手操作"的暗示,导致用户大量差评——在部分中东文化中,左手是不洁的象征。
主流i18n方案选型
方案1:i18next全家桶
// 配置示例 - 全栈老李友情提示:记得安装i18next和react-i18next
import i18n from 'i18next';
import {
initReactI18next } from 'react-i18next';
i18n
.use(initReactI18next)
.init({
resources: {
en: {
translation: {
"welcome": "Hello World!",
"price": "Price: {
{value}}"
}
},
zh: {
translation: {
"welcome": "你好世界!",
"price": "价格:{
{value}}"
}
}
},
lng: localStorage.g