怡呀呀 2022-12-23 17:29 采纳率: 14.3%
浏览 13
已结题

vue-i18n中英文切换后部分文字为改变

使用vue-i18n进行中英文切换必须刷新页面才起作用吗?直接进行切换部分失效。

<button v-for="(item, index) in languageList" :key="index"  @click="languageChange(index)"> {{ item.name }}</button>
languageList: [
        { name: '简体中文(Chs)', value: 'zh' },
        { name: 'English(En)', value: 'en' }
      ],
languageChange(index) {
      this.activePhy = index
      this.$i18n.locale = this.languageList[index].value
      localStorage.setItem('language', this.languageList[index].value)
      window.location.reload() // 用来刷新页面
    },
  • 写回答

2条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2022-12-23 17:33
    关注

    不需要刷新页面就可以进行中英文切换。

    可以在切换语言的时候动态的更新翻译文本。例如:

    languageChange(index) {
      this.activePhy = index
      this.$i18n.locale = this.languageList[index].value
      localStorage.setItem('language', this.languageList[index].value)
    },
    

    这样,在页面中使用 $t 方法进行翻译的地方就会根据切换后的语言进行渲染。


    另外,为了在切换语言后保存当前选择的语言,可以使用 localStorage 存储当前选择的语言。在页面加载时,可以读取 localStorage 中保存的语言设置,如果有的话就使用它,否则使用默认的语言。

    例如:

    mounted() {
      let language = localStorage.getItem('language')
      if (language) {
        this.$i18n.locale = language
      }
    },
    

    这样,在用户切换语言后,在下次打开页面时会使用上次选择的语言。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月22日
  • 创建了问题 12月23日

悬赏问题

  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价