国际化|多国语言方案 Vue I18n 【Vue2版】

VueI18n是Vue.js应用的国际化插件,支持Vue2和Vue3。用户可以通过NPM安装并使用Vue.use()方法引入。在HTML和JavaScript中设置后,可以轻松切换不同语言环境,如英文和日文,显示对应的语言内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Vue3版本移步这里: Vue I18n-Vue3版


【1】Docs 文档地址

文档: Vue I18n-Vue2版


【2】Installation

文档: Vue I18n Installation


NPM:

npm install vue-i18n@8

When using with a module system, you must explicitly install the vue-i18n via Vue.use() :

import Vue from 'vue'
import VueI18n from 'vue-i18n'

Vue.use(VueI18n)

【3】Getting started

文档: Vue I18n Getting started


3.1 HTML
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-i18n@8"></script>

<div id="app">
  <p>{{ $t("message.hello") }}</p>
</div>

3.2 JavaScript

./en.js

module.exports = {
    message: {
      hello: 'hello world'
    }
  }

./ja.js

module.exports = {
    message: {
      hello: 'こんにちは、世界'
    }
  }

main.js

// If using a module system (e.g. via vue-cli), import Vue and VueI18n and then call Vue.use(VueI18n).
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import  en from './en.js';
import  ja from './ja.js';

Vue.use(VueI18n)
// Ready translated locale messages
const messages = {
  en,
  ja
}

// Create VueI18n instance with options
const i18n = new VueI18n({
  locale: 'ja', // set locale
  messages, // set locale messages
})


// Create a Vue instance with `i18n` option
new Vue({ el:'#app', i18n }).$mount('#app')

// Now the app has started!

Output the following:

<div id="#app">
  <p>こんにちは、世界</p>
</div>
### 如何在 Vue-i18n 中设置和管理语言包 为了在 Vue-i18n 中设置和管理语言包,可以按照以下方式进行操作: #### 安装 Vue-i18n 首先,在项目中安装 `vue-i18n` 插件。可以通过 npm 或 yarn 来完成这一过程: ```bash npm install vue-i18n # 或者 yarn add vue-i18n ``` 这一步骤是为了引入必要的依赖项以便后续配置国际化功能[^1]。 #### 创建语言包文件夹 通常情况下,会创建一个专门用于存储语言资源的目录结构。例如,在项目的 `src` 文件夹下新建名为 `locales` 的子文件夹,并在此基础上定义每种语言对应的 JSON 文件或 JavaScript 对象形式的语言包数据。 对于中文 (Chinese),可命名为 `zh.js`;而对于英文 (English),则命名为 `en.js`。这些文件的内容应该是一个键值对集合,表示各个需要被翻译成目标语言的文字片段[^3]。 #### 初始化 Vue-i18n 实例 接着,在入口文件(通常是 main.js 或类似的初始化脚本)中导入已准备好的语言包以及核心库本身之后,调用其工厂函数来实例化一个新的 i18n 对象。下面展示了一段典型的代码示例: ```javascript import { createApp } from 'vue'; import { createI18n } from 'vue-i18n'; // 导入语言包 import zh from './locales/zh'; import en from './locales/en'; const app = createApp(App); const i18n = createI18n({ legacy: false, locale: navigator.language || 'zh', // 设置默认语言环境 fallbackLocale: 'zh', messages: { zh, en } }); app.use(i18n); app.mount('#app'); ``` 这里特别注意设置了参数 `legacy:false`, 这是因为从本9开始推荐使用组合式API(composition API)[^4], 并且指定了初始使用的区域设定(`locale`) 和回退方案 (`fallbackLocale`)。 #### 动态切换语言 如果希望允许用户自行更改界面所呈现的具体语种,则还需要额外编写逻辑处理这部分交互行为。比如监听某个按钮点击事件触发改变当前活动状态下的 language code: ```javascript function changeLanguage(langCode){ this.$i18n.locale = langCode; } ``` 以上就是有关于如何利用 Vue-I18N 组件来进行多国语言适配的主要流程概述[^2]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值