/*** |''Name:''|LanguageSelectorPlugin| |''Version:''|0.5| |''Author:''|FND| |''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]| |''~CoreVersion:''|2.1.3| !Usage * define CSS classes for each language by putting the following in the [[StyleSheet]] tiddler: {{{.lang_}}}//{{{[language code]}}}//{{{ { display: none; } }}} * add {{{<>}}} to create a button for the desired language !ToDo * dynamic language support (i.e. not having to manually define CSS classes and macros/buttons !Code ***/ /*{{{*/ /* macros */ config.macros.lang_en={label: "EN", prompt: "English"} config.macros.lang_de={label: "DE", prompt: "Deutsch"} /* buttons */ config.macros.lang_en.handler = function(place) { createTiddlyButton(place,this.label,this.prompt,function () {langSelect("en"); return false;},null,null,this.accessKey); } config.macros.lang_de.handler = function(place) { createTiddlyButton(place,this.label,this.prompt,function () {langSelect("de"); return false;},null,null,this.accessKey); } /* functions */ // select language langSelect = function(lang) { getStyleClass("lang_" + lang).style.display = "block"; } // getStyleClass by Nick Z., Martin Honnen (http://www.faqts.com/knowledge_base/view.phtml/aid/2147) function getStyleClass (className) { for (var s = 0; s < document.styleSheets.length; s++) { if(document.styleSheets[s].rules) { for (var r = 0; r < document.styleSheets[s].rules.length; r++) { if (document.styleSheets[s].rules[r].selectorText == '.' + className) { return document.styleSheets[s].rules[r]; } } } else if(document.styleSheets[s].cssRules) { for (var r = 0; r < document.styleSheets[s].cssRules.length; r++) { if (document.styleSheets[s].cssRules[r].selectorText == '.' + className) return document.styleSheets[s].cssRules[r]; } } } return null; } /*}}}*/