diff --git a/src/www/js/langcode.js b/src/www/js/langcode.js index eaec25f73..ac48cd740 100644 --- a/src/www/js/langcode.js +++ b/src/www/js/langcode.js @@ -29,10 +29,12 @@ var languages = }() var langname={} +var langcode={} var langcode2={} var langcode3={} for(var i in languages) { langname[languages[i].code]=languages[i].name + langcode[languages[i].name]=languages[i] langcode2[languages[i].code]=languages[i].code2 langcode3[languages[i].code2]=languages[i].code } diff --git a/src/www/minibar/minibar_support.js b/src/www/minibar/minibar_support.js index 1448df8a2..46da3d846 100644 --- a/src/www/minibar/minibar_support.js +++ b/src/www/minibar/minibar_support.js @@ -69,11 +69,20 @@ function supportsSVG() { function speech_buttons(to3,to2,txt) { var voices = window.speechSynthesis && window.speechSynthesis.getVoices() || [] var dvs = voices.filter(function(v){return v.default}) + function pick2dash(v) { return hasPrefix(v.lang,to2dash) } if(to2) var pick=function (v) { return v.lang==to2 } - else { + else if(to3.length==3) { var to2dash=alangcode(to3)+"-" - var pick=function(v) { return hasPrefix(v.lang,to2dash) } + var pick=pick2dash + } + else { + // Maybe the name of the concrete syntax is the name of the language + // like in Numerals.pgf + var lang=to3.substr(0,1).toUpperCase()+to3.substr(1).toLowerCase() + var codes=langcode[lang] + var to2dash=(codes ? codes.code2 : to3)+"-" + var pick=pick2dash } function btn(v) { var u=new SpeechSynthesisUtterance(txt)