Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/openwrt/firmware-selector-openwrt-org.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Warning <moritzwarning@web.de>2022-07-30 10:40:16 +0300
committerMoritz Warning <moritzwarning@web.de>2022-07-30 10:40:25 +0300
commit8ed5e4dc3b17354dded08581a8bf8d7bfbec95ff (patch)
treea51cc19d0819bba65bb2579a31828313f0776954
parente2b484ed291679187b3f31937858a5e96414dab0 (diff)
i18n: fix additional translation calls
The language data needs to be cached in order to be reapplied. Signed-off-by: Moritz Warning <moritzwarning@web.de>
-rw-r--r--www/index.js28
1 files changed, 16 insertions, 12 deletions
diff --git a/www/index.js b/www/index.js
index 93b51b8..0f300d8 100644
--- a/www/index.js
+++ b/www/index.js
@@ -2,6 +2,7 @@
/* exported init */
let current_device = {};
let current_language = undefined;
+let current_language_json = undefined;
let url_params = undefined;
let ofs_version = "%GIT_VERSION%";
@@ -201,21 +202,24 @@ function setupSelectList(select, items, onselection) {
// Change the translation of the entire document
function translate(lang) {
+ function apply(language, language_json) {
+ current_language = language;
+ current_language_json = language_json;
+ for (const tr in language_json) {
+ $$("." + tr).forEach((e) => {
+ e.innerText = language_json[tr];
+ });
+ }
+ }
+
const new_lang = lang || current_language;
if (current_language === new_lang) {
- return;
+ apply(current_language, current_language_json);
+ } else {
+ fetch("langs/" + new_lang + ".json")
+ .then((obj) => obj.json())
+ .then((mapping) => apply(new_lang, mapping));
}
-
- current_language = new_lang;
- fetch("langs/" + current_language + ".json")
- .then((obj) => obj.json())
- .then((mapping) => {
- for (const tr in mapping) {
- $$("." + tr).forEach((e) => {
- e.innerText = mapping[tr];
- });
- }
- });
}
// return array of matching ranges