diff options
Diffstat (limited to 'src/www/minibar/minibar_translations.js')
| -rw-r--r-- | src/www/minibar/minibar_translations.js | 37 |
1 files changed, 11 insertions, 26 deletions
diff --git a/src/www/minibar/minibar_translations.js b/src/www/minibar/minibar_translations.js index ffb21972f..ead0f592d 100644 --- a/src/www/minibar/minibar_translations.js +++ b/src/www/minibar/minibar_translations.js @@ -28,6 +28,11 @@ function Translations(server,opts) { var tom=this.to_menu=node("select",{id:"to_menu",multiple:"",size:5},[]); appendChildren(this.menus,[text(" To: "), this.to_menu]) tom.onchange=bind(this.change_language,this); + var o=this.options + if(o.initial_grammar && o.initial_toLangs) { + var local=mt_local(o.initial_grammar); + local.put("toLangs",o.initial_toLangs) + } /* // This seems triggers weird scrolling behavior in Firefox and Chrome: tom.onmouseover=function() { var n=tom.options.length; tom.size=n<12 ? n : 12; } @@ -39,8 +44,9 @@ function Translations(server,opts) { Translations.prototype.change_grammar=function(grammar) { var t=this t.grammar=grammar; - + t.local=mt_local(t.server.current_grammar_url) + update_language_menu(t.to_menu,grammar); insertFirst(t.to_menu,option("All","All")); t.to_menu.value="All"; @@ -263,6 +269,10 @@ Translations.prototype.parsetree_button=function(abs,lang) { /* --- Auxiliary functions -------------------------------------------------- */ +function mt_local(grammar_url) { + return appLocalStorage("gf.minibar_translations."+grammar_url+".") +} + function tree_button(img_url,opt) { var imgs=[tree_icon,img_url+(opt||"&nofun=true"),img_url] var current=0; @@ -283,31 +293,6 @@ function draw_brackets(b) { b.children.map(draw_brackets)) } - -// Access to localStorage, if available -function mt_local(grammar_url) { - function dummy() { - return { - get: function(name,def) { return def }, - put: function(name,value) { } - } - } - function real() { - var prefix="gf.minibar_translations."+grammar_url+"." - return { - get: function (name,def) { - var id=prefix+name - return localStorage[id] ? JSON.parse(localStorage[id]) : def; - }, - put: function (name,value) { - var id=prefix+name; - localStorage[id]=JSON.stringify(value); - } - } - } - return window.localStorage ? real() : dummy() -} - // Convert an array of strings to a set (for quick & easy membership tests) function toSet(a) { var set={} |
