deemixer/src/plugins/i18n.js

45 lines
911 B
JavaScript
Raw Normal View History

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import { locales } from '@/lang/index'
Vue.use(VueI18n)
const storedLocale = localStorage.getItem('locale')
const DEFAULT_LANG = storedLocale || 'en'
document.querySelector('html').setAttribute('lang', DEFAULT_LANG)
const i18n = new VueI18n({
locale: DEFAULT_LANG,
fallbackLocale: 'en',
2020-07-29 14:29:25 +00:00
messages: locales,
pluralizationRules: {
/**
* @param {number} choice A choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`
* @param {number} choicesLength An overall amount of available choices
* @returns A final choice index to select plural word by
*/
ru(choice, choicesLength) {
const n = Math.abs(choice) % 100
const n1 = n % 10
if (n > 10 && n < 20) {
2020-07-29 20:11:47 +00:00
return 2
}
if (n1 > 1 && n1 < 5) {
2020-07-29 20:11:47 +00:00
return 1
}
if (n1 == 1) {
2020-07-29 20:11:47 +00:00
return 0
}
2020-07-29 20:11:47 +00:00
return 2
}
}
})
export default i18n