Home > Web Front-end > JS Tutorial > body text

Installation and usage tutorial for vue project internationalization vue-i18n

亚连
Release: 2018-05-30 11:57:35
Original
2493 people have browsed it

Recently came into contact with learning Vue.js framework combined with Element-ui component development project. Due to the recent need to implement internationalization functions, the following article mainly introduces the relevant information on the use of vue-i18n for the internationalization of vue projects. The article introduces it in detail through sample code. Friends who need it can refer to it.

Preface

The project needs to support multiple languages. We need to extract the static text used in the project and use language packages to manage it. When switching When setting the language, you can automatically switch the text display of the entire project.

I found that there is a corresponding component vue-i18n in the Vue project, and the code of the project was not modified much, so I used this component to modify the code in the project. Not much to say below, let’s take a look at the detailed introduction.

Installation

// script 引入
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-i18n/dist/vue-i18n.js"></script>

// npm 安装
npm install vue-i18n

// yarn 安装
yarn add vue-i18n
Copy after login

Generally, installation is used in a project It is run as a package, and script is introduced less.

Use

Configure i18n in the project

##

import VueI18n from &#39;vue-i18n&#39;
Vue.use(VueI18n)

const i18n = new VueI18n({
  local: &#39;cn&#39;, // 设置语言 
  messages // 语言包
})

new Vue({
  el: &#39;#app&#39;,
  ...
  i18n
})

// messages 大概的使用格式
{
  cn: {
    name: &#39;名字&#39;
  },
  us: {
    name: &#39;Name&#39;
  }
}
Copy after login

Using i18n


// html 需要使用 {{}} 将 name包装起来
{{$t(&#39;name&#39;)}}

// js
$t(&#39;name&#39;)
Copy after login

There are some other usages, such as:

  • For Different languages ​​display different formats

  • If you pass in custom variables to control the display

  • ... Please refer to the official documentation for details .

To switch languages, you can use built-in variables:

// 通过设置 locale 来切换语言
this.$i18n.locale = cn | us
Copy after login

Generation of language pack & Replace the original static text in the project
## This step is the most critical. Extract all Chinese characters that appear and replace them with $t('xxx') to maintain multiple versions. The language file

The language package is handled like this. Add a new directory languages

--languages
  --lib
    -- cn.js // 中文语言包
    -- us.js // 英文语言包
    -- .. // 其他语言,暂未实践
  -- index.js // 导出语言包
Copy after login

cn.js

under the project.

export default {
  common: {
    message: &#39;消息&#39;
  },
  xxx: {
  }
}
Copy after login

us.js

export default {
  common: {
    message: &#39;Messages&#39;
  },
  xxx: {
  }
}
Copy after login

index.js

import cn from &#39;./lib/cn.js&#39;
export default {
  cn,
  us
}
Copy after login

Replacement text

<template>
  ...
  <p>{{$t(&#39;message&#39;)}}</p>
  ...
</template>
Copy after login

The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.

Related articles:

JS implements the function of moving the left list to the right list


Get using EL expression in JS Methods for context parameter values


jQuery’s method of automatically adding ellipses when the text exceeds 1 line, 2 lines or a specified number of lines


The above is the detailed content of Installation and usage tutorial for vue project internationalization vue-i18n. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template