Lieu
![GitHub issues](https://img.shields.io/github/issues/LeadrateMSK/lieu)
JavaScript plugin for adding multilingual website.
Installation
npm install lieu
or download lieu.js from /dist.
ES6
import Lieu from 'lieu';
const lieu = new Lieu({});
CommonJS
const Lieu = require('lieu');
const lieu = new Lieu({});
UMD (+ jsDelivr)
<script src="https://cdn.jsdelivr.net/npm/lieu@1.3.1"></script>
<script>
const lieu_ctx = new lieu({});
</script>
Vue 3
import { createApp } from 'vue';
import App from 'App.vue';
import lieu from 'lieu/vue';
createApp(App)
.use(lieu, {})
.mount('#app');
Usage
Initialization
import Lieu from 'lieu';
const lieu = new Lieu({
isDebug: true,
initialLanguage: 'en',
attributeName: 'data-lieu',
languages: {
en: {
name: 'English',
locales: {
'Hello': 'Hello!',
'Bye': 'Bye!',
'HelloName': 'Hello %{name} %{surname}!',
'Apples': '{1}There is one apple|[2,5]There are some %{name}|{5,*}There are many %{name}',
},
},
tr: {
name: 'Türk',
locales: {
'Hello': 'Merhaba!',
'Bye': 'Hoşçakal!',
'HelloName': 'Merhaba %{name} %{surname}!',
},
},
},
onSetLang(newLang, oldLang){ } ,
onGetLang(){ } ,
});
Usage in JavaScript
import Lieu from 'lieu';
const lieu = new Lieu({});
lieu.trans('Hello');
lieu.setLang('tr');
lieu.getLang('tr');
lieu.getLangs();
Replacing Parameters In Translation Strings
lieu.trans('HelloName', { name: 'John', surname: 'Doe' });
Pluralization
lieu.trans('Apples', 1);
lieu.trans('Apples', 3, { name: 'apples' });
lieu.trans('Apples', { name: 'apples' }, 30);
Usage in HTML
<span data-lieu="Hello"></span>
<span data-lieu="Bye"></span>
Replacing Parameters In Translation Strings
<h1 data-lieu="HelloName" data-lieu-name="John" data-lieu-surname="Doe"></h1>
<h1 data-lieu="HelloName" data-lieu-name="John" data-lieu-surname="Doe">
Hello John, Doe!
</h1>
Pluralization
<span data-lieu="Apples" data-lieu-name="apples" data-lieu-plural="4"></span>
<span data-lieu="Apples" data-lieu-name="apples" data-lieu-plural="4">
There are some apples
</span>
<script src="https://cdn.jsdelivr.net/npm/lieu"></script>
<script>
const lieu = new Lieu({ });
</script>
Usage in Vue 3
<script setup>
import { inject } from 'vue';
// Get Lieu instance
const lieu = inject('lieu');
</script>
<template>
<div>
<button @click="$lieu.setLang('ru')">
RU
</button>
<button @click="lieu.setLang('en')">
EN
</button>
<span v-lieu="'Hello'" />
<span v-lieu="'Hello', {name: 'John'}" />
</div>
</template>
Options
option | type | required | description |
---|
languages | object / json | true | List of languages and string translations |
initialLanguage | string | false | Selected default language. If not specified, it will be determined automatically. If you do not have any language, then the first one in the list of languages will be selected |
isDebug | boolean | false | If true , warns in the console about errors and not found translations in languages |
attributeName | string | false | String localization attribute for HTML usage |
Hooks
hook | arguments | description |
---|
onSetLang | (newLang, oldLang) | executed when using the setLang() method |
onGetLang | () | executed when using the getLang() method |
Contributing
The author will be grateful to all developers for any suggestions to improve the plugin. Fork and submit pull requests. Thank you!