Antd Vue LocaleProvider國際化組件zh_CN中文配置

  • 2019 年 12 月 30 日
  • 筆記

Antd Design Vue 官方說明,DatePicker、MonthPicker、RangePicker、WeekPicker 等插件的部分 locale 是從 value 中讀取,目前的默認文案是英文,如果需要使用其他語言,需要通過下面的方案正確設置 moment 的 locale。

官方文檔推薦在入口文件(main.js)全局設置 locale :

import moment from 'moment';  import 'moment/locale/zh-cn';  moment.locale('zh-cn');

前端組件這樣寫:不過我使用時遇到一個問題,使用 defaultValue 屬性時報錯,刪掉就好了。

<a-date-picker :defaultValue="moment('2015-01-01', 'YYYY-MM-DD')" />

完成上面的步驟後,日期組件還有部分顯示英文,並且年月順序錯誤。最後發現,Ant Design Vue 有一個國際化設置,需要在入口文件(App.vue)中引入組件 LocaleProvider 用於全局配置國際化方案。

<template>    <a-locale-provider :locale="locale">      <App />    </a-locale-provider>  </template>    <script>    import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN';    export default {      data() {        return {          locale: zhCN,        };      },    };  </script>

也可以直接都寫到 App.vue 中:

<template>    <a-locale-provider :locale="locale">      <App />    </a-locale-provider>  </template>     <script>  import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN';  import moment from 'moment';  import 'moment/locale/zh-cn';  moment.locale('zh-cn');  export default {    data() {      return {        locale: zhCN,      }    }  }  </script>

因為是配置中文,可以直接將 local 設置為 zhCN:

<template>    <a-locale-provider :locale="zhCN">      <App />    </a-locale-provider>  </template>     <script>  import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN';  import moment from 'moment';  import 'moment/locale/zh-cn';  moment.locale('zh-cn');  export default {    data() {      return {        zhCN,      }    }  }  </script>

這樣以上組件既可以顯示中文了。

期間遇到一個小問題,如果您項目中沒有安裝 moment 庫也是不可以的,需要安裝 moment ,這是一個日期格式化組件。

在項目根目錄鍵入以下命令並回車:

npm i -S moment

根據網上的資料:

1、註冊 moment 組件:(main.js)

Vue.prototype.$moment = moment;

一般我們只需要日期格式化即可:moment(要格式化的內容).format("YYYY-MM-DD HH:mm:ss")  

2、也有人說 moment 只能在格式化的頁面中引入,不能全局引入。

具體的使用方法,待我進一步測試。

本文已加入 騰訊雲自媒體分享計劃 (點擊加入)