This commit is contained in:
a-ill
2023-07-03 12:55:46 +03:00
parent 1479f68e31
commit 8e1ea7517e
11 changed files with 95 additions and 90 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -66,40 +66,38 @@ function onlyUnique(value, index, array) {
return array.indexOf(value) === index;
}
export let locales = {
en: "English",
ru: "Русский"
}
export function loadLocaleContent(content,componentName,loaded,callback) {
let locale
let langs
let localesAvailable
let locale = localStorage.getItem("locale")
if (locale==null) {
langs = navigator.languages.map(x => x.split("-")[0]).filter(onlyUnique)
let localesAvailable = Object.keys(locales)
let localeUrl = location.href.split("/").filter(x => localesAvailable.includes(x))
if (localeUrl.length>0) {
locale = localeUrl
}
getData("/locales/available.json",function(response) {
if (locale!=null) {
getData("/locales/" + locale + "/" + componentName + ".json" ,function(response) {
let parsed = JSON.parse(response)
content.set(parsed)
if (callback!=undefined) {
callback(locale)
}
loaded = 1
})
}
else {
localesAvailable = JSON.parse(response)
for (let lang of langs) {
if (localesAvailable.includes(lang)) {
getData("/locales/" + lang + "/" + componentName + ".json" ,function(response) {
let parsed = JSON.parse(response)
content.set(parsed)
if (callback!=undefined) {
callback(locale)
}
loaded = 1
})
}
break
else {
langs = navigator.languages.map(x => x.split("-")[0]).filter(onlyUnique)
for (let lang of langs) {
if (localesAvailable.includes(lang)) {
locale = lang
}
break
}
if (locale==undefined) {
locale = "en"
}
}
getData("/locales/" + locale + "/" + componentName + ".json" ,function(response) {
let parsed = JSON.parse(response)
content.set(parsed)
if (callback!=undefined) {
callback(locale)
}
loaded = 1
})
}