From 1b9b84bd8aab763dadfcf0b895b9f90c9e9ddb67 Mon Sep 17 00:00:00 2001 From: onovy Date: Sun, 19 Jan 2014 22:00:13 +0100 Subject: [PATCH] Try to auto-detect user language and translate web. --- bitaddress.org.html | 16 ++++++++++++++++ src/ninja.onload.js | 2 ++ src/ninja.translator.js | 14 ++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/bitaddress.org.html b/bitaddress.org.html index 2de6df5b..aa58b91c 100644 --- a/bitaddress.org.html +++ b/bitaddress.org.html @@ -6895,6 +6895,17 @@ ninja.translator = { currentCulture: "en", + autodetectTranslation: function() { + // window.navigator.language for Firefox / Chrome / Opera Safari + // window.navigator.userLanguage for IE + var language = window.navigator.language || window.navigator.userLanguage; + if (!ninja.translator.translate(language)) { + // Try to remove part after dash, for example cs-CZ -> cs + language = language.substr(0, language.indexOf('-')); + ninja.translator.translate(language); + } + }, + translate: function (culture) { var dict = ninja.translator.translations[culture]; if (dict) { @@ -6914,6 +6925,9 @@ document.getElementById(id).innerHTML = dict[id]; } } + return true; + } else { + return false; } }, @@ -9084,6 +9098,8 @@ // change language if (ninja.getQueryString()["culture"] != undefined) { ninja.translator.translate(ninja.getQueryString()["culture"]); +} else { + ninja.translator.autodetectTranslation(); } // testnet, check if testnet edition should be activated if (ninja.getQueryString()["testnet"] == "true" || ninja.getQueryString()["testnet"] == "1") { diff --git a/src/ninja.onload.js b/src/ninja.onload.js index 2372b8ea..07b53f21 100644 --- a/src/ninja.onload.js +++ b/src/ninja.onload.js @@ -10,6 +10,8 @@ if (ninja.getQueryString()["asyncunittests"] == "true" || ninja.getQueryString() // change language if (ninja.getQueryString()["culture"] != undefined) { ninja.translator.translate(ninja.getQueryString()["culture"]); +} else { + ninja.translator.autodetectTranslation(); } // testnet, check if testnet edition should be activated if (ninja.getQueryString()["testnet"] == "true" || ninja.getQueryString()["testnet"] == "1") { diff --git a/src/ninja.translator.js b/src/ninja.translator.js index 46c255a4..3760950a 100644 --- a/src/ninja.translator.js +++ b/src/ninja.translator.js @@ -1,6 +1,17 @@ ninja.translator = { currentCulture: "en", + autodetectTranslation: function() { + // window.navigator.language for Firefox / Chrome / Opera Safari + // window.navigator.userLanguage for IE + var language = window.navigator.language || window.navigator.userLanguage; + if (!ninja.translator.translate(language)) { + // Try to remove part after dash, for example cs-CZ -> cs + language = language.substr(0, language.indexOf('-')); + ninja.translator.translate(language); + } + }, + translate: function (culture) { var dict = ninja.translator.translations[culture]; if (dict) { @@ -20,6 +31,9 @@ ninja.translator = { document.getElementById(id).innerHTML = dict[id]; } } + return true; + } else { + return false; } },