前端国际化最佳实践:从硬编码到专业方案
常见误区
很多团队认为国际化是大厂才需要考虑的问题,或者觉得'只面向国内用户,不需要国际化'。等到业务拓展海外时再临时抱佛脚,往往代价巨大。直接硬编码中文,或者依赖 Google 翻译,会导致后期维护成本极高,甚至出现严重的用户体验问题。
国际化不是可选功能,而是现代前端开发的标配。
为什么你需要这个?
- 全球用户覆盖:吸引来自不同国家和地区的用户
- 业务拓展:为未来的海外业务做准备
- 用户体验:让用户使用自己熟悉的语言
- 品牌形象:展现专业、全球化的品牌形象
- 合规要求:满足某些国家的语言法规要求
不推荐的实现方式
最典型的问题就是把字符串写死在组件里,或者手动维护一个简单的字典。这种方式在小型 Demo 中或许可行,但随着项目规模扩大,字符串管理会变得一团糟。
// 反面教材:硬编码字符串
function Header() {
return (
<div className="header">
<h1>欢迎来到我的网站</h1>
<nav>
<a href="/">首页</a>
<a href="/about">关于我们</a>
<a href="/contact">联系我们</a>
</nav>
</div>
);
}
// 反面教材:手动切换语言
function App() {
const [language, setLanguage] = ();
= () => {
texts = {
: { : , : , : },
: { : , : , : }
};
texts[language][key];
};
(
);
}

