实现方案
uni.getLocale()
获取当前设置的语言
使用 vue i18n 实现组件的国际化。
小程序端 tabbar 的国际化无法使用 i18n ,需要自定义 tarbar 组件。
系统国际化功能
在哪里设置 app 语言?
两种方案
1、.获取APP系统默认语言
1.引入国际化包
npm install vue-i18n --save-dev
2.创建语言文件
// 目录结构common├── lang 国际化词条,多语言文件│ ├── en-US.js -英文词条│ └── zh-CN.js -中文词条//内容结构export default {login: {title: 'Login',placeholderAccount: 'Enter Account',placeholderPassword: 'Enter Password',autoLogin: 'Auto Login',loginButton: 'Login',logoutButton: 'Logout',forget: 'Forget Password',reg: 'Resister Account',noLogin: 'No Login'},home: {title: 'Home'}}export default {login: {title: '登录',placeholderAccount: '请输入账号',placeholderPassword: '请输入密码',autoLogin: '自动登录',loginButton: '登录',logoutButton: '退出登录',forget: '忘记密码',reg: '注册账号',noLogin: '未登录'},home: {title: '消息'}}
3.引入语言文件并初始化
// Vue i18n 国际化import VueI18n from 'vue-i18n';Vue.use(VueI18n);// i18n 部分的配置,引入语言包,注意路径import lang_zh_CN from '@/common/lang/zh_CN.js';import lang_en_US from '@/common/lang/en_US.js';const i18n = new VueI18n({// 默认语言locale: 'zh_CN',// 引入语言文件messages: {'zh_CN': lang_zh_CN,'en_US': lang_en_US,}});
4.页面展示国际化文件
5.动态切换国际化词条
// 在vue生命周期内调用this.$i18n.locale = 'en_US'; //en_US为new VueI18n中messages 的key
