vue3使用 i18n

官方文档链接

Vue I18n 官方文档

安装 Vue I18n

npm install vue-i18n

创建语言文件

// lang/zh.ts
export default {
    login: {
        login: '登录',
        userName: '用户名',
        password: '密码',
    },
};

创建 i18n 配置文件

// i18n/index.js
import { createI18n } from 'vue-i18n';
import zh from './zh';

const language = (navigator.language || 'en').toLocaleLowerCase(); // 获取浏览器的语言设置
const i18n = createI18n({
  legacy: false,
  locale: localStorage.getItem('lang') || language, // 优先从本地存储获取语言设置,如果没有则使用浏览器默认语言
  fallbackLocale: 'en', // 当前语言无法找到匹配的翻译时,使用的备选语言
  messages: {
    en,
    zh,
  },
});

export default i18n;

在主入口文件中使用 i18n

// main.js
import i18n from './i18n/index.js';

app.use(i18n);

在组件中使用 I18n

<template>
  {{ $t("login.password") }}
  <div v-t="'login.password'"></div>
</template>

<script setup lang="ts">
import { useI18n } from 'vue-i18n';

const { t } = useI18n();
console.log(t("home.hello"));
</script>

切换语言

<template>
    <div class="menu">
        <div @click="changeLang('en')">English</div>
        <div @click="changeLang('zh')">中文</div>
    </div>
</template>

<script setup lang="ts">
import { useI18n } from 'vue-i18n';

const { locale } = useI18n();

const changeLang = (lang: string) => {
  locale.value = lang;
  localStorage.setItem('lang', lang); // 保存用户的语言选择到本地存储
};
</script>

posted on   完美前端  阅读(1787)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示