Extracted strings and fixes on localization support

Language chooser in the UI
This commit is contained in:
Tomas Bures 2018-11-18 21:31:22 +01:00
parent 9f449c0a2f
commit dc7789c17b
126 changed files with 2919 additions and 2028 deletions

66
shared/langs.js Normal file
View file

@ -0,0 +1,66 @@
'use strict';
function convertToFake(dict) {
function convertValueToFakeLang(str) {
let from = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_=+\\|`~[{]};:'\",<.>/?";
let to = "ɐqɔpǝɟƃɥıɾʞʅɯuodbɹsʇnʌʍxʎz∀ԐↃᗡƎℲ⅁HIſӼ⅂WNOԀÒᴚS⊥∩ɅX⅄Z0123456789¡@#$%ᵥ⅋⁎()-_=+\\|,~[{]};:,„´<.>/¿";
return str.replace(/(\{\{[^\}]+\}\}|%s)/g, '\x00\x04$1\x00').split('\x00').map(c => {
if (c.charAt(0) === '\x04') {
return c;
}
let r = '';
for (let i = 0, len = c.length; i < len; i++) {
let pos = from.indexOf(c.charAt(i));
if (pos < 0) {
r += c.charAt(i);
} else {
r += to.charAt(pos);
}
}
return r;
}).join('\x00').replace(/[\x00\x04]/g, '');
}
function _convertToFake(dict, fakeDict) {
for (const key in dict) {
const val = dict[key];
if (typeof val === 'string') {
fakeDict[key] = convertValueToFakeLang(val);
} else {
fakeDict[key] = _convertToFake(val, {});
}
}
return fakeDict;
}
return _convertToFake(dict, {});
}
const langCodes = {
en_US: {
getShortLabel: t => t('EN'),
getLabel: t => t('English'),
shortCode: 'en',
longCode: 'en_US'
},
es: {
getShortLabel: t => t('ES'),
getLabel: t => t('Spanish'),
shortCode: 'es',
longCode: 'es'
},
fake: {
getShortLabel: t => t('FAKE'),
getLabel: t => t('Fake'),
shortCode: 'fake',
longCode: 'fake'
}
}
langCodes.en = langCodes.en_US;
module.exports.convertToFake = convertToFake;
module.exports.langCodes = langCodes;