实现方案

使用uniapp

uni.getLocale()

获取当前设置的语言
使用 vue i18n 实现组件的国际化。
小程序端 tabbar 的国际化无法使用 i18n ,需要自定义 tarbar 组件。

系统国际化功能

在哪里设置 app 语言?
两种方案
1、.获取APP系统默认语言

  1. 在我的APP中 ->我的->添加设置 手动修改APP语言环境

    使用方式

1.引入国际化包

  1. npm install vue-i18n --save-dev

2.创建语言文件

  1. // 目录结构
  2. common
  3. ├── lang 国际化词条,多语言文件
  4. ├── en-US.js -英文词条
  5. └── zh-CN.js -中文词条
  6. //内容结构
  7. export default {
  8. login: {
  9. title: 'Login',
  10. placeholderAccount: 'Enter Account',
  11. placeholderPassword: 'Enter Password',
  12. autoLogin: 'Auto Login',
  13. loginButton: 'Login',
  14. logoutButton: 'Logout',
  15. forget: 'Forget Password',
  16. reg: 'Resister Account',
  17. noLogin: 'No Login'
  18. },
  19. home: {
  20. title: 'Home'
  21. }
  22. }
  23. export default {
  24. login: {
  25. title: '登录',
  26. placeholderAccount: '请输入账号',
  27. placeholderPassword: '请输入密码',
  28. autoLogin: '自动登录',
  29. loginButton: '登录',
  30. logoutButton: '退出登录',
  31. forget: '忘记密码',
  32. reg: '注册账号',
  33. noLogin: '未登录'
  34. },
  35. home: {
  36. title: '消息'
  37. }
  38. }

3.引入语言文件并初始化

  1. // Vue i18n 国际化
  2. import VueI18n from 'vue-i18n';
  3. Vue.use(VueI18n);
  4. // i18n 部分的配置,引入语言包,注意路径
  5. import lang_zh_CN from '@/common/lang/zh_CN.js';
  6. import lang_en_US from '@/common/lang/en_US.js';
  7. const i18n = new VueI18n({
  8. // 默认语言
  9. locale: 'zh_CN',
  10. // 引入语言文件
  11. messages: {
  12. 'zh_CN': lang_zh_CN,
  13. 'en_US': lang_en_US,
  14. }
  15. });

4.页面展示国际化文件

image.png

5.动态切换国际化词条

  1. // 在vue生命周期内调用
  2. this.$i18n.locale = 'en_US'; //en_US为new VueI18n中messages 的key