Commit 68807cd4 authored by Christopher Rogers's avatar Christopher Rogers

Fixes some leakage in the language selector

Signed-off-by: 's avatarChristopher Rogers <chrissrogers@gmail.com>
parent 53db9d4a
...@@ -13,40 +13,46 @@ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the ...@@ -13,40 +13,46 @@ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations License for the specific language governing permissions and limitations
under the License. under the License.
*/ */
languages = [] (function (global) {
function activateLanguage(language) { var languages = [];
$("#lang-selector a").removeClass('active');
$("#lang-selector a[data-language-name='" + language + "']").addClass('active'); global.setupLanguages = setupLanguages;
for (var i=0; i < languages.length; i++) { global.activateLanguage = activateLanguage;
$(".highlight." + languages[i]).hide();
} function activateLanguage(language) {
$(".highlight." + language).show(); $("#lang-selector a").removeClass('active');
$("#lang-selector a[data-language-name='" + language + "']").addClass('active');
} for (var i=0; i < languages.length; i++) {
$(".highlight." + languages[i]).hide();
function setupLanguages(l) { }
languages = l; $(".highlight." + language).show();
currentLanguage = languages[0];
defaultLanguage = localStorage.getItem("language");
if ((location.search.substr(1) != "") && (jQuery.inArray(location.search.substr(1), languages)) != -1) {
// the language is in the URL, so use that language!
activateLanguage(location.search.substr(1));
// set this language as the default for next time, if the URL has no language
localStorage.setItem("language", location.search.substr(1));
} else if ((defaultLanguage !== null) && (jQuery.inArray(defaultLanguage, languages) != -1)) {
// the language was the last selected one saved in localstorage, so use that language!
activateLanguage(defaultLanguage);
} else {
// no language selected, so use the default
activateLanguage(languages[0]);
} }
// if we click on a language tab, reload the page with that language in the URL function setupLanguages(l) {
$("#lang-selector a").bind("click", function() { var currentLanguage = l[0];
window.location.replace("?" + $(this).data("language-name") + window.location.hash); var defaultLanguage = localStorage.getItem("language");
return false;
}); languages = l;
if ((location.search.substr(1) != "") && (jQuery.inArray(location.search.substr(1), languages)) != -1) {
// the language is in the URL, so use that language!
activateLanguage(location.search.substr(1));
// set this language as the default for next time, if the URL has no language
localStorage.setItem("language", location.search.substr(1));
} else if ((defaultLanguage !== null) && (jQuery.inArray(defaultLanguage, languages) != -1)) {
// the language was the last selected one saved in localstorage, so use that language!
activateLanguage(defaultLanguage);
} else {
// no language selected, so use the default
activateLanguage(languages[0]);
}
// if we click on a language tab, reload the page with that language in the URL
$("#lang-selector a").bind("click", function() {
window.location.replace("?" + $(this).data("language-name") + window.location.hash);
return false;
});
} }
})(window);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment