Vue 项目中实现多语言国际化 ( i18n )

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 项目中实现多语言国际化 ( i18n )相关的知识,希望对你有一定的参考价值。

参考技术A

现在项目中很多情况下需要实现 国际化 ,即 多语言 。比较常用的就是 中/英 文的切换。
普遍常用的就是 I18N 了,怎么实现呢?莫急,咱们往下瞅!

第一步:安装

第二步:在 src 目录下新建一个 lang 文件

一般有三个文件: index.js( 配置 ) 、 zh( 中文 ) 、 en( 英文 )
如果有个更多的语言设置,新增对应的 js 文件即可
注意:所有语言包的内部结构必须一样,方便调用

第三步:main.js 里引入 i18n 的配置

第四步:在页面使用

引入 i18n 以后,会全局注册一个变量 $t
平时我们取值都是 name
现在我们取值是 $t(index.title) , index.title 就是在语言里的属性

哇哦,多语言是不是很简单,动起手来,赶紧试试吧!!!

vue项目国际化(多语言)

参考技术A

记录一下笔记,以下 vue 项目案例使用 vue-cli 搭建 ;

1. 使用 npm 命令安装所需依赖 vue-i18n , 此demo安装的版本为 vue-i18n@8.24.2 ;

main.js

二.配置多语言包

language > config > zh-hk.js

language > config > en.js

import Vue from \'vue/dist/vue.min.js\';
import VueI18n from \'vue-i18n/dist/vue-i18n\';
import Cookies from \'js-cookie\';

Vue.use(VueI18n);

// 存储在本地,刷新后不会丢失
const language = Cookies.get(\'language\') || \'zh\';
Cookies.set( \'language\' , language )
const i18n = new VueI18n(
locale: language, // 语言标识
messages:
zh: require(\'./config/zh\'), // 中文
\'zh-hk\': require(\'./config/zh-hk\'), // 中文繁体-香港
en: require(\'./config/en\'), // 英文

);

export default i18n;

...
// 引入配置文件index
import i18n from "./language"

new Vue(
el: \'#app\',
router,
store,
i18n, // 挂载到vue实例
components: App ,
template: \'<App/>\'
)

<li><a href="javascript:;">语言切换/ $t(\'language.name\') </a></li>

console.log(this.$t(\'language.name\'));

<li><a href="javascript:;">语言切换/ $t(\'language.name\') </a></li>

<li><a href="javascript:;" @click="changeLang">语言切换/ $t(\'language.name\') </a></li>

changeLang() let currentLang = Cookie.get(\'language\'); if(currentLang === \'zh\') this. i18n.locale = \'en\'; Cookie.set(\'language\',\'en\') else if(currentLang === \'en\') this.$i18n.locale = \'zh\'; Cookie.set(\'language\',\'zh\')

changeLang() let currentLang = Cookie.get(\'language\'); if(currentLang === \'zh\') Cookie.set(\'language\',\'zh-hk\') else if(currentLang === \'zh-hk\') Cookie.set(\'language\',\'en\') else if(currentLang === \'en\') Cookie.set(\'language\',\'zh\') location.reload(); // 刷新页面

以上是关于Vue 项目中实现多语言国际化 ( i18n )的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot + Spring Cloud +Vue 管理系统前端搭建(五多语言国际化)

低代码平台多语言国际化(i18n)技术方案

[Java中实现国际化] - 配合thymeleaf实现中英文自动切换(多语言)

国际化多语言方案i18n / class google sheets v4 api 在线文档同步json

国际化多语言方案i18n / class google sheets v4 api 在线文档同步json

vue项目国际化(多语言)