summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2016-06-05 12:21:56 +0000
committerhallgren <hallgren@chalmers.se>2016-06-05 12:21:56 +0000
commitbd8c6cc4e46ec211176bd8088318d97d6ba676bc (patch)
tree0425460418ff727cc6309245d0c48087a6193cc2 /src
parente682f0972d4e6ca4c2b7ba52125512565ed2020b (diff)
Minibar: detect the language for show speech synthesis buttons in more cases
This was done to obtain speech synthesis for more languages in the Numerals grammar, which uses neither language flags nor the standard naming for concrete syntax.
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)