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>