Emoji Sound

Código fonte

<!DOCTYPE html><html><head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>EmojiSound Multi-Language</title>
  <style>
    body { 
      font-family: "Arial", Sans-Serif;
      font-size: 22pt;
    }
  </style>
</head>
<body><b>How Emojis Sound in</b><BR>
<label name="Language"  for="Language">language: </label>
<select name="Language" id="lang" onchange="gen()">
  <option value="pt">Portuguese</option>
  <option value="es">Spanish</option>
  <option value="fr">French</option>
  <option value="it">Italian</option>
  <option value="ru">Russian</option>
  <option value="en-US">English US</option>
  <option value="en-GB">English UK</option>
  <option value="de-DE">German</option>
  <option value="ja">Japanese</option>
  <option value="zh">Chinese</option>
</select><br>
<input type="checkbox" id="mob" name="mob" checked="true" onchange="m()">
<label for="mob">mobile</label>
<input type="checkbox" id="dm" name="dm" onchange="d()" />
<label for="dm">dark mode</label><br>
<p style='font-family: "Lucida Console", "Courier New", monospace; font-size: 26pt; cursor: crosshair;' id="out"></p>

<script>
  m();gen();
  function m() {
    if (get("mob").checked) {sa="<table><tr>";sb="</td><td ";sc="</tr><tr>";} else {sa="";sb="</b><b ";sc="";}
    gen();
  }
  function d() {
    document.body.style.backgroundColor = get("dm").checked?"black":"white";
    document.body.style.color = get("dm").checked?"white":"black";
  }
  function gen() {
    l=read("lang");
    M=n=>String.fromCodePoint(n);
    for(o=''+sa,i=0;i<1792;o+=(sb+`onclick="speechSynthesis.speak(b=new SpeechSynthesisUtterance('${a=M(z)}'),b.lang='${l}',b)">`+a+(i%8?'':sc)))z=127744+i++; // simple codes 
    o+='</td></tr></table>'+sa;
    for(i=0;i<676;i++) o+=(sb+`onclick="speechSynthesis.speak(b=new SpeechSynthesisUtterance('${a=M(0x1F1E6+~~(i/26)%26)+M(0x1F1E6+i%26) }'),b.lang='${l}',b)">`+a+(i%8?'':sc)); // country flags
    put(o+'</td></tr></table>');
  }
  function get(o) { return document.getElementById(o); }
  function read(o) { return get(o).value; }
  function put(o) { get("out").innerHTML=o; }
</script>
</body></html>