Add getLanguage(), getFallback(), re-export plural()

master
Vitaliy Filippov 2021-08-28 15:38:24 +03:00
parent 6e09d92e11
commit 4d5b881540
1 changed files with 14 additions and 2 deletions

View File

@ -1,7 +1,9 @@
import plural_ru from './plural_ru.js'; import plural from './plural_ru.js';
const strings = {}; const strings = {};
export plural;
export function setStrings(lang, strHash) export function setStrings(lang, strHash)
{ {
strings[lang] = strHash; strings[lang] = strHash;
@ -19,11 +21,21 @@ export function setLanguage(lang)
language = lang; language = lang;
} }
export function getLanguage()
{
return language;
}
export function setFallback(lang) export function setFallback(lang)
{ {
fallback = lang; fallback = lang;
} }
export function getFallback()
{
return fallback;
}
export function L(s) export function L(s)
{ {
s = strings[language] && strings[language][s] || strings[fallback] && strings[fallback][s] || s; s = strings[language] && strings[language][s] || strings[fallback] && strings[fallback][s] || s;
@ -33,7 +45,7 @@ export function L(s)
s = s.replace(/\{(\d+)\}/g, (m, m1) => (arg[parseInt(m1)]||'')); s = s.replace(/\{(\d+)\}/g, (m, m1) => (arg[parseInt(m1)]||''));
s = s.replace( s = s.replace(
/\{N:(\d+):((?:[^:\\]+|\\.)*):((?:[^:\\]+|\\.)*):((?:[^:\\]+|\\.)*)\}/g, /\{N:(\d+):((?:[^:\\]+|\\.)*):((?:[^:\\]+|\\.)*):((?:[^:\\]+|\\.)*)\}/g,
(m, m1, m2, m3, m4) => plural_ru( (m, m1, m2, m3, m4) => plural(
arg[parseInt(m1)]||'', arg[parseInt(m1)]||'',
m2.replace(/\\(.)/g, '$1'), m2.replace(/\\(.)/g, '$1'),
m3.replace(/\\(.)/g, '$1'), m3.replace(/\\(.)/g, '$1'),