当前位置:   article > 正文

antd vue组件国际化、业务文案国际化 i18n_ant组件国际化从local里取值

ant组件国际化从local里取值

一、组件内建文案国际化 

官方文档:国际化 LocaleProvider - Ant Design Vue (antdv.com)  官方文档 有些不需要的 我减去了 

先创建组件A  上代码:  

  1. <template>
  2. <div>
  3. <div class="change-locale">
  4. <a-radio-group :value="locale" @change="changeLocale">
  5. <a-radio-button key="en" :value="enUS">
  6. English
  7. </a-radio-button>
  8. <a-radio-button key="cn" :value="zhCN">
  9. 中文
  10. </a-radio-button>
  11. </a-radio-group>
  12. </div>
  13. <br>
  14. <a-config-provider :locale="locale">
  15. <div class="example">
  16. <a-pagination :default-current="1" :total="50" show-size-changer />
  17. </div>
  18. </a-config-provider>
  19. </div>
  20. </template>
  21. <script>
  22. import enUS from 'ant-design-vue/es/locale/en_US';
  23. import zhCN from 'ant-design-vue/es/locale/zh_CN';
  24. export default {
  25. data() {
  26. return {
  27. locale: enUS,
  28. enUS,
  29. zhCN,
  30. };
  31. },
  32. methods: {
  33. changeLocale(e) {
  34. const localeValue = e.target.value;
  35. this.locale = localeValue;
  36. },
  37. },
  38. };
  39. </script>

上成果截图:

 实现上面的步骤总结:

1、在main.js中 引入    ConfigProvider  和使用  ConfigProvider

  1. import { ConfigProvider} from 'ant-design-vue';
  2. Vue.use(ConfigProvider);

2、在A 组件中 导入你所需要的 语言包  

import enUS from 'ant-design-vue/es/locale/en_US';

import zhCN from 'ant-design-vue/es/locale/zh_CN';

3、剩下的 看代码就可以

二、业务文案的国际化  i18n

官方文档:单文件组件 | Vue I18n (kazupon.github.io)

全局应用 某一个语言

  1、引入 i18n

npm install vue-i18n
  1. import VueI18n from 'vue-i18n'
  2. Vue.use(VueI18n)

 2、创建你需要的语言文件                                           文件内部代码

 

   3、在main.js 中创建实例对象  引入创建的js  本来打算放图片  放代码方便复制

  1. import VueI18n from 'vue-i18n'
  2. import LangENUS from './common/lang/en-us'
  3. import LangZHCN from './common/lang/zh-cn'
  4. Vue.use(VueI18n)
  5. // 注册i18n实例并引入语言文件,文件格式等下解析
  6. const i18n = new VueI18n({
  7. locale: 'zh', //这里 配置默认语言
  8. messages: {
  9. 'en': LangENUS,
  10. 'zh': LangZHCN
  11. }
  12. })
  13. new Vue({
  14. el: '#app',
  15. i18n, // 注意这里
  16. components: { App },
  17. template: '<App/>'
  18. })

 4、组件中应用  语法需要  {{ $t('xx.xx')}}  

  1. <span>{{$t('title.home')}}</span>
  2. <a-button type="primary">
  3. {{$t('title.code')}}
  4. </a-button>

效果图:

     

三、面向Vue 组件的设计,你也可以更方便的分别控制每个组件的语言环境信息。

官方文档   看   单文件组件

1、安装 vue-i18n-loader

        为了使用 <i18n> 自定义块,你需要安装 vue-loader 和 vue-i18n-loader。如果你使用了单文件组件,vue-loader (opens new window)很可能已在项目中使用了,那么 vue-i18n-loader (opens new window)vue-i18n-loader (opens new window)必须另外安装:

npm i --save-dev @kazupon/vue-i18n-loader

2、在build 中找到  webpack  配置文件  大概是webpack.base.conf.js  尝试文档中的 两个方式

        我用的是  因为版本问题  

  1. options: {
  2. loaders: {
  3. // 你需要指定 `i18n` 的值为 `vue-i18n-loader`
  4. i18n: '@kazupon/vue-i18n-loader'
  5. }

 创建组件 D    用<i18n> 标签 

  1. <i18n>
  2. {
  3. "en": {
  4. "hello": "hello world!"
  5. },
  6. "zh": {
  7. "hello": "你好、世界!"
  8. }
  9. }
  10. </i18n>
  11. <template>
  12. <div id="app">
  13. <label for="locale">locale</label>
  14. <select v-model="locale">
  15. <option>en</option>
  16. <option>zh</option>
  17. </select>
  18. <p>message: {{ $t('hello') }}</p>
  19. </div>
  20. </template>
  21. <script>
  22. export default {
  23. name: 'D',
  24. data () {
  25. return {
  26. locale: 'en'
  27. }
  28. },
  29. watch: {
  30. locale (val) {
  31. this.$i18n.locale = val
  32. }
  33. }
  34. }
  35. </script>

 效果图

    

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/475128
推荐阅读
相关标签