225 lines
8 KiB
JavaScript
225 lines
8 KiB
JavaScript
/**
|
||
* Thin wrapper around localStorage.getItem(). Parses JSON and returns undefined if the value
|
||
* is not set yet.
|
||
*/
|
||
export function getLocal(key, fallback = undefined) {
|
||
const itemRaw = localStorage.getItem(key);
|
||
return itemRaw === null ? fallback : JSON.parse(itemRaw);
|
||
}
|
||
|
||
/**
|
||
* Thin wrapper around localStorage.setItem(). Converts value to JSON.
|
||
*/
|
||
export function setLocal(key, value) {
|
||
localStorage.setItem(key, JSON.stringify(value));
|
||
}
|
||
|
||
/**
|
||
* Thin wrapper around localStorage.getItem(). Parses JSON and returns undefined if the value
|
||
* is not set yet.
|
||
*/
|
||
export function getSession(key, fallback = undefined) {
|
||
const itemRaw = sessionStorage.getItem(key);
|
||
return itemRaw === null ? fallback : JSON.parse(itemRaw);
|
||
}
|
||
|
||
/**
|
||
* Thin wrapper around localStorage.setItem(). Converts value to JSON.
|
||
*/
|
||
export function setSession(key, value) {
|
||
sessionStorage.setItem(key, JSON.stringify(value));
|
||
}
|
||
|
||
/**
|
||
* This file contains the function to resolve a 2-letter country code
|
||
* to the language name in both english and the local language.
|
||
*/
|
||
export function resLang(uLang) {
|
||
this.langs = {
|
||
aa: ["Afar", "Afar"],
|
||
ab: ["Abkhazian", "Аҧсуа"],
|
||
af: ["Afrikaans", "Afrikaans"],
|
||
ak: ["Akan", "Akana"],
|
||
am: ["Amharic", "አማርኛ"],
|
||
an: ["Aragonese", "Aragonés"],
|
||
ar: ["Arabic", "العربية"],
|
||
as: ["Assamese", "অসমীয়া"],
|
||
av: ["Avar", "Авар"],
|
||
ay: ["Aymara", "Aymar"],
|
||
az: ["Azerbaijani", "Azərbaycanca / آذربايجان"],
|
||
ba: ["Bashkir", "Башҡорт"],
|
||
be: ["Belarusian", "Беларуская"],
|
||
bg: ["Bulgarian", "Български"],
|
||
bh: ["Bihari", "भोजपुरी"],
|
||
bi: ["Bislama", "Bislama"],
|
||
bm: ["Bambara", "Bamanankan"],
|
||
bn: ["Bengali", "বাংলা"],
|
||
bo: ["Tibetan", "བོད་ཡིག / Bod skad"],
|
||
br: ["Breton", "Brezhoneg"],
|
||
bs: ["Bosnian", "Bosanski"],
|
||
ca: ["Catalan", "Català"],
|
||
ce: ["Chechen", "Нохчийн"],
|
||
ch: ["Chamorro", "Chamoru"],
|
||
co: ["Corsican", "Corsu"],
|
||
cr: ["Cree", "Nehiyaw"],
|
||
cs: ["Czech", "Česky"],
|
||
cu: ["Old Church Slavonic / Old Bulgarian", "словѣньскъ / slověnĭskŭ"],
|
||
cv: ["Chuvash", "Чăваш"],
|
||
cy: ["Welsh", "Cymraeg"],
|
||
da: ["Danish", "Dansk"],
|
||
de: ["German", "Deutsch"],
|
||
dv: ["Divehi", "ދިވެހިބަސް"],
|
||
dz: ["Dzongkha", "ཇོང་ཁ"],
|
||
ee: ["Ewe", "Ɛʋɛ"],
|
||
el: ["Greek", "Ελληνικά"],
|
||
en: ["English", "English"],
|
||
eo: ["Esperanto", "Esperanto"],
|
||
es: ["Spanish", "Español"],
|
||
et: ["Estonian", "Eesti"],
|
||
eu: ["Basque", "Euskara"],
|
||
fa: ["Persian", "فارسی"],
|
||
ff: ["Peul", "Fulfulde"],
|
||
fi: ["Finnish", "Suomi"],
|
||
fj: ["Fijian", "Na Vosa Vakaviti"],
|
||
fo: ["Faroese", "Føroyskt"],
|
||
fr: ["French", "Français"],
|
||
fy: ["West Frisian", "Frysk"],
|
||
ga: ["Irish", "Gaeilge"],
|
||
gd: ["Scottish Gaelic", "Gàidhlig"],
|
||
gl: ["Galician", "Galego"],
|
||
gn: ["Guarani", "Avañe'ẽ"],
|
||
gu: ["Gujarati", "ગુજરાતી"],
|
||
gv: ["Manx", "Gaelg"],
|
||
ha: ["Hausa", "هَوُسَ"],
|
||
he: ["Hebrew", "עברית"],
|
||
hi: ["Hindi", "हिन्दी"],
|
||
ho: ["Hiri Motu", "Hiri Motu"],
|
||
hr: ["Croatian", "Hrvatski"],
|
||
ht: ["Haitian", "Krèyol ayisyen"],
|
||
hu: ["Hungarian", "Magyar"],
|
||
hy: ["Armenian", "Հայերեն"],
|
||
hz: ["Herero", "Otsiherero"],
|
||
ia: ["Interlingua", "Interlingua"],
|
||
id: ["Indonesian", "Bahasa Indonesia"],
|
||
ie: ["Interlingue", "Interlingue"],
|
||
ig: ["Igbo", "Igbo"],
|
||
ii: ["Sichuan Yi", "ꆇꉙ / 四川彝语"],
|
||
ik: ["Inupiak", "Iñupiak"],
|
||
io: ["Ido", "Ido"],
|
||
is: ["Icelandic", "Íslenska"],
|
||
it: ["Italian", "Italiano"],
|
||
iu: ["Inuktitut", "ᐃᓄᒃᑎᑐᑦ"],
|
||
ja: ["Japanese", "日本語"],
|
||
jv: ["Javanese", "Basa Jawa"],
|
||
ka: ["Georgian", "ქართული"],
|
||
kg: ["Kongo", "KiKongo"],
|
||
ki: ["Kikuyu", "Gĩkũyũ"],
|
||
kj: ["Kuanyama", "Kuanyama"],
|
||
kk: ["Kazakh", "Қазақша"],
|
||
kl: ["Greenlandic", "Kalaallisut"],
|
||
km: ["Cambodian", "ភាសាខ្មែរ"],
|
||
kn: ["Kannada", "ಕನ್ನಡ"],
|
||
ko: ["Korean", "한국어"],
|
||
kr: ["Kanuri", "Kanuri"],
|
||
ks: ["Kashmiri", "कश्मीरी / كشميري"],
|
||
ku: ["Kurdish", "Kurdî / كوردی"],
|
||
kv: ["Komi", "Коми"],
|
||
kw: ["Cornish", "Kernewek"],
|
||
ky: ["Kirghiz", "Kırgızca / Кыргызча"],
|
||
la: ["Latin", "Latina"],
|
||
lb: ["Luxembourgish", "Lëtzebuergesch"],
|
||
lg: ["Ganda", "Luganda"],
|
||
li: ["Limburgian", "Limburgs"],
|
||
ln: ["Lingala", "Lingála"],
|
||
lo: ["Laotian", "ລາວ / Pha xa lao"],
|
||
lt: ["Lithuanian", "Lietuvių"],
|
||
lv: ["Latvian", "Latviešu"],
|
||
mg: ["Malagasy", "Malagasy"],
|
||
mh: ["Marshallese", "Kajin Majel / Ebon"],
|
||
mi: ["Maori", "Māori"],
|
||
mk: ["Macedonian", "Македонски"],
|
||
ml: ["Malayalam", "മലയാളം"],
|
||
mn: ["Mongolian", "Монгол"],
|
||
mo: ["Moldovan", "Moldovenească"],
|
||
mr: ["Marathi", "मराठी"],
|
||
ms: ["Malay", "Bahasa Melayu"],
|
||
mt: ["Maltese", "bil-Malti"],
|
||
my: ["Burmese", "Myanmasa"],
|
||
na: ["Nauruan", "Dorerin Naoero"],
|
||
nd: ["North Ndebele", "Sindebele"],
|
||
ne: ["Nepali", "नेपाली"],
|
||
ng: ["Ndonga", "Oshiwambo"],
|
||
nl: ["Dutch", "Nederlands"],
|
||
nn: ["Norwegian Nynorsk", "Norsk (nynorsk)"],
|
||
no: ["Norwegian", "Norsk (bokmål / riksmål)"],
|
||
nr: ["South Ndebele", "isiNdebele"],
|
||
nv: ["Navajo", "Diné bizaad"],
|
||
ny: ["Chichewa", "Chi-Chewa"],
|
||
oc: ["Occitan", "Occitan"],
|
||
oj: ["Ojibwa", "ᐊᓂᔑᓈᐯᒧᐎᓐ / Anishinaabemowin"],
|
||
om: ["Oromo", "Oromoo"],
|
||
or: ["Oriya", "ଓଡ଼ିଆ"],
|
||
os: ["Ossetian / Ossetic", "Иронау"],
|
||
pa: ["Panjabi / Punjabi", "ਪੰਜਾਬੀ / पंजाबी / پنجابي"],
|
||
pi: ["Pali", "Pāli / पाऴि"],
|
||
pl: ["Polish", "Polski"],
|
||
ps: ["Pashto", "پښتو"],
|
||
pt: ["Portuguese", "Português"],
|
||
qu: ["Quechua", "Runa Simi"],
|
||
rm: ["Raeto Romance", "Rumantsch"],
|
||
rn: ["Kirundi", "Kirundi"],
|
||
ro: ["Romanian", "Română"],
|
||
ru: ["Russian", "Русский"],
|
||
rw: ["Rwandi", "Kinyarwandi"],
|
||
sa: ["Sanskrit", "संस्कृतम्"],
|
||
sc: ["Sardinian", "Sardu"],
|
||
sd: ["Sindhi", "सिनधि"],
|
||
se: ["Northern Sami", "Sámegiella"],
|
||
sg: ["Sango", "Sängö"],
|
||
sh: ["Serbo-Croatian", "Srpskohrvatski / Српскохрватски"],
|
||
si: ["Sinhalese", "සිංහල"],
|
||
sk: ["Slovak", "Slovenčina"],
|
||
sl: ["Slovenian", "Slovenščina"],
|
||
sm: ["Samoan", "Gagana Samoa"],
|
||
sn: ["Shona", "chiShona"],
|
||
so: ["Somalia", "Soomaaliga"],
|
||
sq: ["Albanian", "Shqip"],
|
||
sr: ["Serbian", "Српски"],
|
||
ss: ["Swati", "SiSwati"],
|
||
st: ["Southern Sotho", "Sesotho"],
|
||
su: ["Sundanese", "Basa Sunda"],
|
||
sv: ["Swedish", "Svenska"],
|
||
sw: ["Swahili", "Kiswahili"],
|
||
ta: ["Tamil", "தமிழ்"],
|
||
te: ["Telugu", "తెలుగు"],
|
||
tg: ["Tajik", "Тоҷикӣ"],
|
||
th: ["Thai", "ไทย / Phasa Thai"],
|
||
ti: ["Tigrinya", "ትግርኛ"],
|
||
tk: ["Turkmen", "Туркмен / تركمن"],
|
||
tl: ["Tagalog / Filipino", "Tagalog"],
|
||
tn: ["Tswana", "Setswana"],
|
||
to: ["Tonga", "Lea Faka-Tonga"],
|
||
tr: ["Turkish", "Türkçe"],
|
||
ts: ["Tsonga", "Xitsonga"],
|
||
tt: ["Tatar", "Tatarça"],
|
||
tw: ["Twi", "Twi"],
|
||
ty: ["Tahitian", "Reo Mā`ohi"],
|
||
ug: ["Uyghur", "Uyƣurqə / ئۇيغۇرچە"],
|
||
uk: ["Ukrainian", "Українська"],
|
||
ur: ["Urdu", "اردو"],
|
||
uz: ["Uzbek", "Ўзбек"],
|
||
ve: ["Venda", "Tshivenḓa"],
|
||
vi: ["Vietnamese", "Tiếng Việt"],
|
||
vo: ["Volapük", "Volapük"],
|
||
wa: ["Walloon", "Walon"],
|
||
wo: ["Wolof", "Wollof"],
|
||
xh: ["Xhosa", "isiXhosa"],
|
||
yi: ["Yiddish", "ייִדיש"],
|
||
yo: ["Yoruba", "Yorùbá"],
|
||
za: ["Zhuang", "Cuengh / Tôô / 壮语"],
|
||
zh: ["Chinese", "中文"],
|
||
zu: ["Zulu", "isiZulu"],
|
||
};
|
||
this.lang = uLang.substring(0, 2);
|
||
return `${this.langs[this.lang][0]} (${this.langs[this.lang][1]})`;
|
||
}
|