【vue 配置国际化语言】

14 篇文章 1 订阅
该文章介绍了如何在Vue项目中配置国际化,包括引入vue-i18n库,注册i18n实例,加载zh.js和en.js语言包,并展示了如何动态合并菜单的语言消息。同时,提供了使用$t函数在模板中调用不同语言的示例。
摘要由CSDN通过智能技术生成

项目演示

代码

官网 :https://kazupon.github.io/vue-i18n/

//语言
import { createI18n } from 'vue-i18n'		//引入vue-i18n组件
import store from "@/store";
import ZH from './zh'  // 引入中文文件
import EN from './en'   // 引入英文文件
// import { 引入的组件 export 出来的 变量} from 'vue-i18n'
  //注册i8n实例并引入语言文件
 const i18n = createI18n({
    locale: store.getters.locales,		//默认显示的语言 
    legacy: false, // composition AP
    globalInjection: true, //全局生效$
      messages: {
        'zh-cn':ZH,	//引入语言文件
        'en':EN 
      }
  })


  /**
   * @description:  动态加载 语言包
   * @param {*} routers 菜单列表
   * @return {*} 
   */  
  export const mergeLocaleMessages=(routers)=>{
    const tree = treeToArr(routers);
    if(tree.length){
      let cn=tree[0]
      let en=tree[1]
        i18n.global.mergeLocaleMessage("zh-cn",{
          'menu':{
            ...cn
          }
        })
        i18n.global.mergeLocaleMessage("en",{
          "menu":{
            ...en
          }
        })
    }
} 

/**
 * @description:  递归处理菜单
 * @param {*} arr
 * @param {*} cn
 * @param {*} en
 * @return {*}
 */
const treeToArr=(arr,cn={},en={})=>{
  for(let i=0;i<arr.length;i++){
    cn[arr[i].path]=arr[i].cn
    en[arr[i].path]=arr[i].en
    if(arr[i].children && arr[i].children.length){
      treeToArr(arr[i].children,cn,en)    
  }
  }
  return [cn,en]
}
  export default i18n; //将i18n暴露出去,在main.js中引入挂载

zh.js 中文语言包:

// 中文语言包:
export default {
  menu: {
      name: "首页",
    },
    message:{
      Primary:"原色",
      Success:"成功",
      Info:"信息",
      Warning:"警告",
      Danger:"微信",
    },
    language:{
      tips:"项目只做了菜单的国际化处理,其他页面和功能需要你自己来处理",
      SelectLanguage:"选择语言"
    }
  };

en.js 英文语言包:

// 中文语言包:
export default{
  menu: {
    name: "home",
  },
  message:{
    Primary:"Primary",
    Success:"Success",
    Info:"Info",
    Warning:"Warning",
    Danger:"Danger",
  },
  language:{
    tips:"The project only handles the internationalization of menus, and other pages and functions need to be handled by yourself",
    SelectLanguage:"Select language"
  }
}

使用方法


<div class="padding-2x flex space-between ">
     <a-button type="primary">{{$t('message.Primary')}}</a-button>
     <a-button type="success">{{$t('message.Success')}}</a-button>
      <a-button type="info">{{$t('message.Info')}}</a-button>
     <a-button type="warning">{{$t('message.Warning')}}</a-button>
      <a-button type="danger">{{$t('message.Danger')}}</a-button>
</div>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Ant Design Vue 中进行国际化配置非常简单。下面是一些步骤: 1. 首先,确保你已经安装了 `ant-design-vue` 和 `vue-i18n` 这两个依赖包。******文语言包: ```javascript export default { antd: { // 以下是 antd 组件的国际化配置 locale: 'zh_CN', Pagination: { // ... }, // ... }, // 其他自定义的国际化配置 // ... }; ``` 4. 在 `en-US.js` 文件中,你可以按照如下方式配置英文语言包: ```javascript export default { antd: { // 以下是 antd 组件的国际化配置 locale: 'en_US', Pagination: { // ... }, // ... }, // 其他自定义的国际化配置 // ... }; ``` 5. 在你的入口文件(例如 `main.js`)中引入 `vue-i18n` 和语言包文件,并配置 i18n 实例: ```javascript import Vue from 'vue'; import VueI18n from 'vue-i18n'; import zhCN from './locales/zh-CN'; import enUS from './locales/en-US'; Vue.use(VueI18n); const i18n = new VueI18n({ locale: 'zh-CN', // 默认语言为中文 messages: { 'zh-CN': zhCN, 'en-US': enUS, }, }); new Vue({ i18n, // ... }).$mount('#app'); ``` 6. 到此,你的国际化配置就完成了!在组件中使用 Ant Design Vue 的组件时,它们会根据当前的语言环境显示相应的语言。 例如,在一个按钮组件中,你可以这样使用国际化: ```html <template> <a-button>{{ $t('antd.Button') }}</a-button> </template> ``` 这里的 `$t` 是 VueI18n 提供的翻译方法,`'antd.Button'` 是你在语言包中配置的对应翻译字段。 希望这些信息能对你有所帮助!如果有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值