vue-i18n 国际化语言切换
vue-i18n 用于前端vue项目中,需要多语言切换的场景
安装方法(npm)
npm install vue-i18n
简单使用
1、在vue项目的main.ts文件中实例化 i18n
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
2、把 i18n 挂载到 vue 根实例上
new Vue({
router,
store,
i18n,
render: h => h(App),
}).$mount('#app')
3、在 HTML 模板中使用(简单示例)
这里通过修改 i18n的 locale 的属性值来切换语言
<template>
<div>
{{ $t('test.apple') }}
<div>
<button @click="switchLang">切换英文</button>
</div>
</div>
</template> <script>
export default {
name: 'demo',
methods: {
switchLang() {
this.$i18n.locale = 'en'
},
},
}
</script> <style></style>
4、效果如下
在实际项目中,往往是需要大段的翻译内容,这时候,我们需要将翻译文本分类,分文件以便于管理
具体结构可参考下图
其中i18n.js是将i18n实例化的代码
在main.js中挂载到vue实例上
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store' import createI18n from '@/assets/language/i18n.js' const i18n = createI18n() new Vue({
router,
store,
i18n,
render: h => h(App),
}).$mount('#app')
en和zh文件夹中的index.js其实都一样,用webpack的api —— require.context 实现自动化导入模块
const languagesModule = require.context('./languageModule', true, /\.js$/)
const languages = languagesModule.keys().reduce((modules, modulePath) => {
const name = modulePath.replace(/^\.\/(.*)\.js+$/, '$1')
const value = languagesModule(modulePath)
modules[name] = value.default
return modules
}, {})
export default { ...languages }
en和zh文件夹中的 languageModule 文件夹下的文件,都是以下的格式
HTML模板中的使用情况及效果展示
<template>
<div>
{{ $t('test2.an_apple_a_day') }}
<div>
<button @click="switchLang">切换英文</button>
</div>
</div>
</template> <script>
export default {
name: 'demo',
methods: {
switchLang() {
this.$i18n.locale = 'en'
},
},
}
</script>
vue-i18n变量赋值
有时我们的不同翻译文本中有很多相同的语句,这时候我们可以把相同的提取出来,不同的用变量处理 或者 有时候我们的翻译中需要加入后端返回的数据,这时候也可以用到变量,
变量用法
用法很简单,这里只具体举一个例子展示
export default { // 这里切记括号里变量左右不能有空格!!!
wait_and_try_again: '请等待{seconds}秒后再试',
}
模板:
<p>{{ $t('test.wait_and_try_again', { seconds: 6 }) }}<p>
效果:
vue-i18n 国际化语言切换的更多相关文章
- DataGrid 列头实现国际化语言切换
<DataGrid> <DataGrid.Columns> <DataGridTextColumn Binding="{x:Null}" Width= ...
- vue 国际化i18n 多语言切换
安装 npm install vue-i18n 新建一个文件夹 i18n ,内新建 en.js zh.js index.js 三个文件 准备翻译信息 en.js export default { ho ...
- Java 国际化 语言切换
Java国际化 我们使用java.lang.Locale来构造Java国际化的情境. java.lang.Locale代表特定的地理.政治和文化.需要Locale来执行其任务的操作叫语言环境敏感的 ...
- vue中实现国际化--语言切换(转载)
https://segmentfault.com/a/1190000011800593
- iOS - 国际化语言切换
iOS国际化:如何切换语言 1.国际化就是将标签.提示信息等信息放到资源文件中,随着程序需要的语言提供对应的资源文件.以key/value对存储,每个资源的key值不变,value随着需求改变. ...
- Vue-i18n实现语言切换
方法1 Vue — i18n 国际化 全局配置 安 装 1.直接引入js文件 <script src="https://unpkg.com/vue/dist/vue.js"& ...
- Element + Vue I18n动态import加载国际化语言包翻译文件
需求 项目为多页应用,包含产品a.b.c.d.e,每个产品都有自己的翻译文件.一次加载所有翻译文件是极度不合理的.于是考虑动态加载. 实现 参考官方文档:延迟加载翻译 项目结构 │ ├── dist ...
- vue-i18n vue-cli项目中实现国际化 多语言切换功能 一
vue-cli项目中引入vue-i18n 安装: npm install vue-i18n可参考vue-i18n官网文档 main.js中引入: import Vue from 'vue' impor ...
- iOS 语言切换、本地化,国际化
什么是本地化处理? 本地化处理就是我们的应用程序有可能发布到世界的很多国家去,因为每个国家应用的语言是不一样的,所以我们要把我们的应用程序的语言要进行本地化处理一下. 本地化处理需要处理那些文件? ( ...
随机推荐
- JSON-LD & SEO
JSON-LD & SEO https://json-ld.org/ https://en.wikipedia.org/wiki/JSON-LD Google Search structure ...
- vscode & ignore .idea
vscode & ignore .idea settings.json .vscode & ignore .idea // 将设置放入此文件中以覆盖默认设置 { "files ...
- vs code & macOS services
vs code & macOS services Mac OS X, Open Folder With VS Code (right click) https://github.com/Mic ...
- py pandas
import pandas as pd class Main(): def __init__(self): # 读取excel self.df = pd.read_excel("C:\\Us ...
- betterscroll上拉加载
mounted(){ var that=this; setTimeout(()=>{ let scroll = new BScroll(document.getElementById('wrap ...
- banner自用图床
放些常用的图做图床,也不在别的平台用.
- JS判断对象是否包含某个属性
1.使用hasOwnProperty()判断 hasOwnProperty方法的参数就是要判断的属性名称,当对象的属性存在时返回true,否则返回false. var obj = { name:'ja ...
- IDEA总结
1. 什么是idea? idea是Java开发软件 2. IDEA下载 https://www.jetbrains.com/idea/download/download-thanks.html?pla ...
- SpringBoot以war包形式部署到外部Tomcat
SpringBoot 项目打包时能打成 .jar 与 .war包文件,.jar使用 java -jar xx.jar 就可以启动,而 .war 可以部署到tomcat的 webapps 中,随tomc ...
- 更改EFI分区位置
我是win10 + arch 双系统,并且efi分区用的是win10自动创建的(大小100m),所以这些空间很快就不够用了(内核和initramfs都放在了ESP分区当中) 我原本是直接把win的ef ...