研发图纸文件管理系统-前端项目
iczer
2020-06-24 2cb54136b545090662b7b71f87dacc8bf0e1889e
feat: add statements and phrase mode for i18n-extend plugin; :star2:
新增:i18n-extend 插件增加语句模式和词组模式;
3个文件已修改
19 ■■■■ 已修改文件
src/pages/form/advancedForm/i18n-repository.js 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/form/advancedForm/i18n-task.js 补丁 | 查看 | 原始文档 | blame | 历史
src/plugins/i18n-extend.js 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/form/advancedForm/i18n-repository.js
src/pages/form/advancedForm/i18n-task.js
src/plugins/i18n-extend.js
@@ -1,15 +1,26 @@
// 语句模式
const MODE = {
  STATEMENTS: 's', //语句模式
  PHRASAL: 'p', //词组模式
}
const VueI18nPlugin = {
  install: function (Vue) {
    Vue.mixin({
      methods: {
        $ta(syntaxKey) {
        $ta(syntaxKey, mode) {
          let _mode = mode || MODE.STATEMENTS
          let keys = syntaxKey.split('|')
          let message = ''
          let _this = this
          let locale = this.$i18n.locale
          let message = ''
          let splitter = locale == 'US' ? ' ' : ''
          // 拼接 message
          keys.forEach(key => {
            message += _this.$t(key)
            message += _this.$t(key) + splitter
          })
          if (keys.length > 0) {
          // 英文环境语句模式下,转换单词大小写
          if (keys.length > 0 && _mode == MODE.STATEMENTS && locale == 'US') {
            message = message.charAt(0).toUpperCase() + message.toLowerCase().substring(1)
          }
          return message