Browse Source

www: even better handling of lang= attributes in HTML for translation

Handle lang= in a way that makes even more sense, including keeping a
lang= attribute up to date at the very top level.
H. Peter Anvin 2 years ago
parent
commit
8979da2059
5 changed files with 7 additions and 6 deletions
  1. BIN
      esp32/output/max80.ino.bin
  2. 1 0
      esp32/www/lang/en
  3. 6 6
      esp32/www/max80.js
  4. BIN
      fpga/output/v1.fw
  5. BIN
      fpga/output/v2.fw

BIN
esp32/output/max80.ino.bin


+ 1 - 0
esp32/www/lang/en

@@ -0,0 +1 @@
+LANG=en

+ 6 - 6
esp32/www/max80.js

@@ -217,14 +217,14 @@ document.addEventListener('load', (e) => translate(), PassiveListener);
 
 var lang_styleobj = document.createElement('style');
 document.head.append(lang_styleobj);
-function setlang(l) {
+function setlang(l = null) {
+    l = l || document.documentElement.lang;
     var sty = lang_styleobj.sheet;
-    if (sty.rules.length)
-	sty.deleteRule(0);
-    l = l || '*';
-    sty.insertRule('[lang]:not([lang|="'+l+'"]):not(:last-child),[lang|="'+l+'"]~[lang] {display: none}', 0);
+    while (sty.rules.length) sty.deleteRule(0);
+    sty.insertRule('[lang]:not(:lang("'+l+'")):not(:last-child),[lang]:lang("'+l+'")~[lang] {display: none}', 0);
+    document.documentElement.lang = l;
 }
-setlang(null);
+setlang();
 
 fetchconfig('/sys/lang')
     .then((map) => {

BIN
fpga/output/v1.fw


BIN
fpga/output/v2.fw