summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/www/js/langcode.js2
-rw-r--r--src/www/minibar/minibar_support.js13
2 files changed, 13 insertions, 2 deletions
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)