-
在全球化的今天,为了向各种语言和文化的用户提供更好的体验,网站和Web应用常常需要进行国际化(i18n)。在本文中,我们将介绍如何在前端工程中实现国际化。
什么是国际化(i18n)?
国际化(i18n)是一个让应用程序易于本地化的过程。本地化(L10n)则是为特定区域或语言适应软件。简单来说,国际化就是设计应用以支持多种语言和文化的过程。
-
前端国际化实现方式
使用i18n库
许多前端框架都有相应的i18n库,例如,React有react-i18next和react-intl,Vue有vue-i18n。这些库一般提供了下面的功能:
文本翻译:将指定的键翻译成当前语言的文本。
日期和数字格式化:根据当前语言的习惯,格式化日期和数字。
支持在运行时改变语言:用户可以在使用应用的过程中切换语言。
创建语言包
语言包是包含各种翻译文本的文件。你可以为每种语言创建一个语言包,例如en.json、fr.json、zh.json等。
-
实现过程
根据vue-i18n官方文档,
-
在main.js中进行初数据始化
-
import VueI18n from 'vue-i18n' Vue.use(VueI18n) // todo: 获取本地缓存的语言和语言包 初始化语言 const lang = storage.get('lang') || 'zh'//存到本地的语言编码 const newPackage = storage.get('language_dictionary')//存到本地的语言包 const i18n = new VueI18n({ locale: lang, messages: { 'en': LangENUS,//本地页面存在的英文包 'zh': LangZHCN//本地页面存在的中文包 }, silentTranslationWarn: true }) i18n.mergeLocaleMessage(lang, newPackage)//把先后两个包拼到一起
-
在登录页面支持用户去选择哪种语言;登录接口会返回用户选择了哪个语言code,根据这个code前端将其放到请求头上,后端会根据这个code,返回某种语言的翻译数据;进入项目之后,右上角支持可以自由切换当前语言版本,此刻调取获取语言包/tabs的staus 栏接口,重新刷新系统;页面需要国际化的字段改为$t('***') 。。。。。。
-
总结:
使用了nodejs中文件处理系统fs处理文件的读取;|
使用正则表达式/[\u4e00-\u9fa5]/g
匹配对应的中文
使用换行符划分了每一个独立的行,也可以通过fs. -
使用了nodejs中文件处理系统fs处理文件的读取
-
使用正则表达式
/[\u4e00-\u9fa5]/g
匹配对应的中文 - 使用换行符划分了每一个独立的行,也可以通过fs.createReadStream(filePath);进行按行读取