JavaScript国际化核心是分离语言内容与逻辑代码、动态加载语言包并实时更新界面文本;采用JSON管理文案、按需加载缓存、data-i18n标记替换、Intl处理格式化、localStorage持久化偏好并响应系统语言变化。

JavaScript 实现国际化(i18n)的核心是**分离语言内容与逻辑代码,按用户偏好动态加载对应语言包,并实时更新界面文本**。关键不在于用多复杂的库,而在于结构清晰、切换无刷新、状态可保持。
把每种语言的文案单独存为 JSON 文件,结构扁平易维护:
// locales/zh.json
{
"welcome": "欢迎来到我们的网站",
"login": "登录",
"settings": "设置"
}
// locales/en.json
{
"welcome": "Welcome to our website",
"login": "Login",
"settings": "Settings"
}
{"button": {"submit": "提交"}}),深层嵌套会增加调用成本不用一次性加载所有语言,按需 fetch 并缓存,减少首屏体积:
navigator.language 或读取 localStorage 中保存的用户选择import() 动态导入或 fetch().then(r => r.json()) 加载对应 JSONconst messages = {}),后续切换直接读取,不重复请求给 HTML 元素加 data-i18n 属性标记需要翻译的 key:
立即学习“Java免费学习笔记(深入)”;
<h1 data-i18n="welcome"></h1> <button data-i18n="login"></button>
再写一个简单函数批量替换:
function applyLocale(lang) {
fetch(`/locales/${lang}.json`)
.then(r => r.json())
.then(translations => {
document.querySelectorAll('[data-i18n]').forEach(el => {
const key = el.dataset.i18n;
if (translations[key] !== undefined) {
el.textContent = translations[key];
}
});
});
}
data-i18n-attr 扩展到属性(如 placeholder、title)Intl API 处理时间/货币(new Intl.DateTimeFormat('zh').format(new Date()))切换语言不只是改页面,还要持久化偏好并兼顾系统行为:
localStorage.setItem('preferred-lang', 'en')
languagechange 事件(部分浏览器支持),或在页面初始化时比对 navigator.language 与当前语言,自动提示切换/en/settings)更利于 SEO 和分享,可用 history.pushState 同步以上就是javascript如何实现国际化_怎样轻松切换网站的多语言的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号