0

0

怎样使用JavaScript处理国际化(i18n)与本地化(l10n)?

betcha

betcha

发布时间:2025-10-04 12:21:02

|

315人浏览过

|

来源于php中文网

原创

答案:现代Web应用通过分离语言内容与逻辑实现国际化,利用JavaScript的Intl API处理日期、数字等本地化格式,并结合键值映射或i18next等库实现多语言支持,同时可动态切换语言并持久化用户偏好。

怎样使用javascript处理国际化(i18n)与本地化(l10n)?

处理国际化(i18n)和本地化(l10n)在现代Web应用中非常重要,JavaScript提供了多种方式来支持多语言和区域格式。核心思路是分离语言内容与代码逻辑,并根据用户环境动态加载对应的语言资源。

使用内置API进行本地化格式化

JavaScript的 Intl API 是处理日期、时间、数字、货等本地化格式的强大工具,无需引入额外库。

• 格式化日期和时间:

new Intl.DateTimeFormat('zh-CN').format(new Date()) 输出中文格式日期,如“2024/5/20”

new Intl.DateTimeFormat('en-US', { weekday: 'long' }).format(new Date()) 输出“Monday”

立即学习Java免费学习笔记(深入)”;

• 格式化数字和货币:

new Intl.NumberFormat('de-DE').format(123456.78) 输出 “123.456,78”

new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(1000) 输出 “¥1,000”

• 排序与比较(考虑语言规则):

['ä', 'a', 'z'].sort(new Intl.Collator('de').compare) 按德语排序规则处理变音字符

实现多语言文本翻译(i18n)

可通过简单的键值映射结构管理不同语言的文本内容。

• 定义语言包:

const messages = {
  en: {
    greeting: 'Hello',
    welcome: 'Welcome to our site'
  },
  zh: {
    greeting: '你好',
    welcome: '欢迎访问我们的网站'
  }
};

• 根据用户语言选择资源:

获取浏览器语言:const userLang = navigator.language || 'en';

Wave.Video
Wave.Video

一个在线的AI自动化视频创作平台

下载

获取最匹配语言:const lang = userLang.startsWith('zh') ? 'zh' : 'en';

• 创建翻译函数:

function t(key) {
  return messages[lang][key] || key;
}
document.getElementById('greeting').textContent = t('greeting');

使用成熟的i18n库(推荐用于复杂项目)

对于大型应用,推荐使用功能完善的第三方库,例如 i18nextformatjs

• i18next 示例:

安装:npm install i18next

配置:

import i18n from 'i18next';
i18n.init({
  lng: 'zh',
  resources: {
    en: { translation: { greeting: 'Hello' } },
    zh: { translation: { greeting: '你好' } }
  }
});

使用:document.title = i18n.t('greeting');

它还支持复数、上下文、命名空间、异步加载语言包等高级功能。

动态切换语言与持久化偏好

允许用户手动切换语言,并将选择保存到 localStorage。

• 切换语言函数:

function setLanguage(lng) {
  lang = lng;
  document.documentElement.lang = lng;
  localStorage.setItem('user-lang', lng);
  // 重新渲染页面文本
  updateUI();
}

• 页面加载时恢复用户偏好:

读取 localStorage 中的语言设置,若无则用浏览器默认语言。

基本上就这些。小项目可用原生方法加简单对象管理,复杂应用建议用 i18next 这类成熟方案,配合 Intl API 处理格式化,体验更完整。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

410

2023.09.04

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

890

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

468

2024.06.27

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

565

2023.09.20

Python WebSocket实时通信与异步服务开发实践
Python WebSocket实时通信与异步服务开发实践

本专题聚焦 Python 在实时通信场景中的开发实践,系统讲解 WebSocket 协议原理、长连接管理、消息推送机制以及异步服务架构设计。内容包括客户端与服务端通信实现、连接稳定性优化、消息队列集成及高并发处理策略。通过完整案例,帮助开发者构建高效稳定的实时通信系统,适用于聊天应用、实时数据推送等场景。

5

2026.03.18

Java Spring Security权限控制与认证机制实战
Java Spring Security权限控制与认证机制实战

本专题围绕 Java 后端安全体系建设展开,重点讲解 Spring Security 在权限控制与认证机制中的应用实践。内容涵盖用户认证流程、权限模型设计、JWT 鉴权方案、OAuth2 集成以及接口安全防护策略。通过实际项目案例,帮助开发者构建安全可靠的后端认证体系,提升系统安全性与可扩展能力。

21

2026.03.18

抖漫入口地址合集
抖漫入口地址合集

本专题整合了抖漫入口地址相关合集,阅读专题下面的文章了解更多详细地址。

138

2026.03.17

多环境下的 Nginx 安装、结构与运维实战
多环境下的 Nginx 安装、结构与运维实战

本专题聚焦多环境下Nginx实战,详解开发、测试及生产环境的差异化安装策略与目录结构规划。深入剖析配置模块化设计、灰度发布流程及跨环境同步机制。结合监控告警、故障排查与自动化运维工具,提供全链路管理方案,助力团队构建灵活、高可用的Nginx服务体系,从容应对复杂业务场景挑战。

14

2026.03.17

PS 批量添加图片
PS 批量添加图片

本专题整合了PS批量添加图片教程合集,阅读专题下面的文章了解更多详细操作。

15

2026.03.17

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 6.2万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 3.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号