mailtrain/shared/langs.js
Eric Seigne 62a4b1ded1 add french language
(cherry picked from commit 7414815b06)
2020-04-30 14:32:44 +02:00

81 lines
2.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'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, {});
}
// The langugage labels below are intentionally not localized so that they are always native in the langugae of their speaker (regardless of the currently selected language)
const langCodes = {
'en-US': {
getShortLabel: t => 'EN',
getLabel: t => 'English',
longCode: 'en-US'
},
'es-ES': {
getShortLabel: t => 'ES',
getLabel: t => 'Español',
longCode: 'es-ES'
},
'pt-BR': {
getShortLabel: t => 'BR',
getLabel: t => 'Português',
longCode: 'pt-BR'
},
'de-DE': {
getShortLabel: t => 'DE',
getLabel: t => 'Deutsch',
longCode: 'de-DE'
},
'fr-FR': {
getShortLabel: t => 'FR',
getLabel: t => 'Francais',
longCode: 'fr-FR'
},
'fk-FK': {
getShortLabel: t => 'FK',
getLabel: t => 'Fake',
longCode: 'fk-FK'
}
}
function getLang(lng) {
return langCodes[lng];
}
module.exports.convertToFake = convertToFake;
module.exports.getLang = getLang;