Browse Source

www: smarter handling of inline translations

Do inline translation allowing some amount of matching; fall back to
the last translation in the container.
H. Peter Anvin 2 năm trước cách đây
mục cha
commit
ba02092134
5 tập tin đã thay đổi với 8 bổ sung9 xóa
  1. BIN
      esp32/output/max80.ino.bin
  2. 0 1
      esp32/www/head.html
  3. 8 8
      esp32/www/max80.js
  4. BIN
      fpga/output/v1.fw
  5. BIN
      fpga/output/v2.fw

BIN
esp32/output/max80.ino.bin


+ 0 - 1
esp32/www/head.html

@@ -1,4 +1,3 @@
-<style id="LANG">[lang]:not([lang='en']){ display:none; }</style>
 <div class="title">
   <svg class="logo" width="315" height="100" viewBox="0 0 315 100">
     <mask id="mask">

+ 8 - 8
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(lang)  {
-    if (lang) {
-	if (lang_styleobj.sheet.rules.length)
-	    lang_styleobj.sheet.deleteRule(0);
-	lang_styleobj.sheet.insertRule('[lang]:not([lang="'+lang+'"]) { display: none; }');
-    }
-}
-setlang('en');
+function setlang(l) {
+    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);
+}
+setlang(null);
 
 fetchconfig('/sys/lang')
     .then((map) => {

BIN
fpga/output/v1.fw


BIN
fpga/output/v2.fw