• ant-design国际化扩展新语言


    ant-design国际化目前支持66中语言。

    如果刚好要用的语言它不存在,我们可以参考node_modules中的语言自己写一套组件的翻译。

    下面以缅甸语为例子。

    引入vue-i18n:npm install vue-i18n

    main.js

    1. import i18n from './common/lang' //i18n
    2. createApp(App).use(i18n).mount('#app')

    App.vue

    1. <template>
    2. <a-config-provider :locale="locale" v-if="isRefresh">
    3. <router-view />
    4. </a-config-provider>
    5. </template>
    6. <script>
    7. import ant_lang from "@/common/lang/ant_lang_file";
    8. export default {
    9. data() {
    10. return {
    11. isRefresh: true,//用于刷新
    12. locale: "",//ant-design国际化
    13. };
    14. },
    15. provide() {
    16. return {
    17. reload: this.reload,
    18. };
    19. },
    20. computed: {},
    21. created() {
    22. this.getLocale();
    23. },
    24. methods: {
    25. reload() {
    26. this.getLocale();
    27. this.isRefresh = false;
    28. this.$nextTick(() => {
    29. this.isRefresh = true;
    30. });
    31. },
    32. //获取缓存的语言类型
    33. getLocale() {
    34. let lang = ant_lang[localStorage.getItem("language")] || ant_lang["zh-CN"];
    35. this.locale = lang;
    36. },
    37. },
    38. };
    39. </script>

     创建语言工具包

     index.js用于翻译业务上的语言

    1. // index.js
    2. import { createI18n } from 'vue-i18n'
    3. import enLocale from './en_US'
    4. import zhLocale from './zh_CN'
    5. import thLocale from './th_TH'
    6. import myLocale from './my_MM'
    7. const messages = {
    8. "en-US": {
    9. ...enLocale
    10. },
    11. "zh-CN": {
    12. ...zhLocale
    13. },
    14. "th-TH": {
    15. ...thLocale
    16. },
    17. "my-MM": {
    18. ...myLocale
    19. }
    20. }
    21. const i18n = createI18n({
    22. legacy: false,
    23. globalInjection: true,
    24. locale: localStorage.getItem('language') || 'zh-CN',
    25. messages: messages,
    26. });
    27. export default i18n

    zh_CN.json为例其他几个JSON语言包都是map对象只是翻译的语言不同

     ant_lang_file.js用于翻译ant_design组件的文件,因为缅甸语ant_design组件也不支持,所以得自己跟着node_modules的来写一套缅甸语的组件翻译

    1. import antEnLocale from 'ant-design-vue/es/locale/en_US'
    2. import antZhLocale from 'ant-design-vue/es/locale/zh_CN'
    3. import antThLocale from 'ant-design-vue/es/locale/th_TH'
    4. import antMyLocale from './ant_exten_lang/es/local/my_MM'
    5. export default {
    6. "en-US": antEnLocale, //英语
    7. "zh-CN": antZhLocale, //泰语
    8. "th-TH": antThLocale, //中文
    9. "my-MM": antMyLocale, //缅甸语言
    10. }

    以中文为准,从node_modules\ant-design-vue\es\locale目录下copy一套中文的改成缅甸语就可以了,路径都改成自己的。

     node_modules\ant-design-vue\es\locale\zh_CN.js

     copy的zh_CN改成了my_MM缅甸语

     弄完这些文件后就OK可以使用了

     效果图:

     

     

     

  • 相关阅读:
    ThePASS 研究院|探索 Aragon:开创性的 DAO 基础设施实现全面治理
    312.戳气球
    施努卡:3d机器视觉检测系统 3d视觉检测应用行业
    01.AJAX 概念和 axios 使用
    java反射机制解读
    5.合宙Air32F103_LCD_key
    贪心-K次取反后最大化的数组和
    二叉树操作题
    什么是MDD,DDD,TDD?
    如何使用oracle数据库的length()、lengthb()、replace()、regexp_substr()函数
  • 原文地址:https://blog.csdn.net/qq_42661587/article/details/126469073