# vue-multilanguage: control of languages in vuejs
> We will help you to control the languages in your app for yours components
## Installation
```bash
# yarn
yarn add vue-multilanguage
# npm
npm install vue-multilanguage --save
```
## Get Started
Create the `ml.js` file to define your multilanguage settings and languages:
```javascript
import Vue from 'vue'
import { MLInstaller, MLCreate, MLanguage } from 'vue-multilanguage'
Vue.use(MLInstaller)
export default new MLCreate({
initial: 'english',
save: process.env.NODE_ENV === 'production',
languages: [
new MLanguage('english').create({
title: 'Hello {0}!',
msg: 'You have {f} friends and {l} likes'
}),
new MLanguage('portuguese').create({
title: 'Oi {0}!',
msg: 'Você tem {f} amigos e {l} curtidas'
})
]
})
```
More details:
- **MLInstaller**: plugin class for install in Vue with Vue.use
- **MLCreate**: class to define acl settings
- **initial**: first language, for startup with your app
- **save**: save current language in localStorage
- **languages**: array with your languages supported
- **MLanguage**: class with language generator, create your language with it
- **create**: method for create language based in object param
You can define a middleware for execute before all `get` call. Use this for custom structure app, e.g:
```javascript
export default new MLCreate({
...
middleware: (component, path) => {
const newPath = `${component.$options.name}.${path}`
// you should return newPath
return newPath
}
})
```
PS: in example, all `$ml.get` call go concate path with component name.
For finish, in your `main.js` import the `ml`:
```javascript
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import './ml'
Vue.config.productionTip = false
new Vue({
router,
render: h => h(App)
}).$mount('#app')
```
## Use in components
You can define messages inside your component, use computed propertis with prefix `ml`
```html
<template>
<div id="app">
<p v-text="$ml.get('myMessage')" />
</div>
</template>
<script>
import { MLBuilder } from 'vue-multilanguage'
export default {
name: 'app',
data () {
return { friends: 5 }
},
computed: {
mlmyMessage () {
return new MLBuilder('msg').with('f', this.friends).with('l', 406)
}
}
}
</script>
```
You can also get message direct in template:
```html
<h1 v-text="$ml.with('VueJS').get('title')" />
```
E.g: display 'Hello VueJS'.
You can get list language in any component using `list` property:
```html
<button
v-for="lang in $ml.list"
:key="lang"
v-text="lang"
/>
```
Finish, you can change current language in any component using `change` method:
```html
<button
v-for="lang in $ml.list"
:key="lang"
@click="$ml.change(lang)"
v-text="lang"
/>
```
vue-multilanguage, 多语言 VueJS 2.0插件.zip
需积分: 13 172 浏览量
2019-10-09
18:01:37
上传
评论
收藏 90KB ZIP 举报
weixin_38743506
- 粉丝: 349
- 资源: 2万+
最新资源
- Jurassic Pack Vol. II Dinosaurs 侏罗纪包卷恐龙二号Unity游戏模型资源unitypackage
- Jurassic Pack Vol. III Dinosaurs 侏罗纪包卷恐龙三号Unity游戏模型资源unitypackag
- Ultimate Seating Controller 终极座椅控制器Unity游戏开发插件资源unitypackage
- 什么是人工智能-关于人工智能的相关介绍说明
- Figma Converter for Unity适用Unity的Figma转换器Unity游戏开发插件unitypackage
- Creepy Animatronic Anims 令人毛骨悚然的电子动画Unity游戏动画插件资源unitypackage
- Rankings & Leaderboards 排名和排行榜Unity游戏开发插件资源unitypackage
- Semantic Color Palette 语义调色板Unity游戏开发插件资源unitypackage
- Low Poly Nature:Lush and Diverse Environments低聚自然郁郁Unity低多边形模型资源
- voc数据集是什么-我们如何使用voc数据集
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈