多语言实现原理

413 阅读1分钟
<template>
  <div>
    <h1>多语言实现原理</h1>
    <!-- 需求:中英文切换 -->
    <div>
      <el-button @click="lang='zh'">中文</el-button>
      <el-button @click="lang='en'">英文</el-button>
    </div>
    <div class="content">
      {{ t('hello') }},vue!
    </div></div>
</template>

<script>
/**
 * 实现中英文切换功能,只需要满足3个条件即可完成
 * 实现步骤
 * 1、语言标识符, 中文标识符设置为'zh',英文标识符设置为'en'
 * 2、中英文对照表
 * 3、翻译官 ---- 用一个函数来实现
 *
 * */
export default {
  data() {
    return {
      lang: 'zh',
      message: {
        zh: { // 中文
          hello: '你好'
        },
        en: { // 英文
          hello: 'hello'
        }
      }
    }
  },
  methods: {
    // 函数t即为翻译官
    t(content) {
      /**
       * 需要几个条件才能翻译成功
       * 1、需要知道当前翻译成什么语言 ---- this.lang
       * 2、需要知道翻译的内容 --- 调用函数的是传入即可 --- content
       * 3、中文对照表  --- this.message
       * */
      // 获取当前的语言表
      const curLang = this.message[this.lang]
      // console.log(47, curLang)
      // 根据需要翻译的内容从当前的语言表中找到对应的值即可
      const value = curLang[content]
      return value
    }
  }
}
</script>

<style>
.content{
  padding: 20px;
}
</style>