diff --git a/css/style.css b/css/style.css index 25a18d2..ff70888 100644 --- a/css/style.css +++ b/css/style.css @@ -1394,13 +1394,13 @@ input.userMenu-search-field:focus::-ms-input-placeholder { /************************************* **************************** LOGIN PAGE **************************************/ -.login .module, .sounds .module { +.login .module, .sounds .module, .keys .module, .language .module { padding: 20px; width: 500px; margin: 10px auto; border: 5px solid #c7cdda; } -.login .module p, .sounds .module p { +.login .module p, .sounds .module p, .keys .module p, .language .module p { font: 14px "Open Sans", sans-serif; margin-bottom: 5px; @@ -1417,7 +1417,7 @@ input.userMenu-search-field:focus::-ms-input-placeholder { background: #fff; transition: background-color 100ms linear; } -.login .module select.local-usernames, .sndOpt, #keysOpt select{ +.login .module select.local-usernames, .sndOpt, #keysOpt select, #choseLanguage select{ height: 30px; font: 13px/24px "Open sans"; text-align: center; @@ -1889,7 +1889,7 @@ input.userMenu-search-field:focus::-ms-input-placeholder { margin-right: -163px; font: 12px "Open Sans", sans-serif; } -#notifyForm p { +#notifyForm p, #choseLanguage p, #keysOpt p { margin-top: 15px; } /* Following page */ diff --git a/js/calm.js b/js/calm.js index 4cb4716..221fb1c 100644 --- a/js/calm.js +++ b/js/calm.js @@ -181,10 +181,19 @@ function replaceEmoji() { }) } +function setLang() { + + $('#language').val(localStorage['locLang'] || 'auto') + $('#language').on('change', function(){ + localStorage['locLang'] = $(this).val(); + }) +} + function InitOptions () { soundNotifOptions(); volumeControl(); keysSend(); + setLang(); } function homeIntInit () { modalDMIntr (); diff --git a/js/interface_localization.js b/js/interface_localization.js index 139fb45..db64877 100644 --- a/js/interface_localization.js +++ b/js/interface_localization.js @@ -4,23 +4,27 @@ // uses Polyglot.js ( https://github.com/airbnb/polyglot.js ) to translate interface // translators: add your language code here such as "es" for Spanish, "ru" for Russian -var knownLanguages = ["en","nl","it","fr","ru","de","zh"]; +var knownLanguages = ["en","nl","it","fr","ru","de","zh"], preferredLanguage; -// detect language with JavaScript -var preferredLanguage = window.navigator.userLanguage || window.navigator.language || "en"; -if(knownLanguages.indexOf(preferredLanguage) > -1){ - // en for en or similar - preferredLanguage = preferredLanguage; -} -else if(knownLanguages.indexOf(preferredLanguage.split("-")[0]) > -1){ - // en for en-US or similar - preferredLanguage = preferredLanguage.split("-")[0]; -} -else{ - // did not find match - preferredLanguage = "en"; +if(!localStorage['locLang'] || localStorage['locLang'] == 'auto'){ + if(!localStorage['locLang']) localStorage['locLang'] = 'auto'; + // detect language with JavaScript + preferredLanguage = window.navigator.userLanguage || window.navigator.language || "en"; + if(knownLanguages.indexOf(preferredLanguage) > -1){ + // en for en or similar + preferredLanguage = preferredLanguage; + } + else if(knownLanguages.indexOf(preferredLanguage.split("-")[0]) > -1){ + // en for en-US or similar + preferredLanguage = preferredLanguage.split("-")[0]; + } + else{ + // did not find match + preferredLanguage = "en"; + } +}else{ + preferredLanguage = localStorage['locLang']; } - // set up Polyglot polyglot = new Polyglot(); var wordset = {}; diff --git a/options.html b/options.html index e362ee6..e68417e 100644 --- a/options.html +++ b/options.html @@ -48,6 +48,28 @@
+
+ +
+

Language

+
+
+

Use language

+ +
+
+
+
+
@@ -74,24 +96,26 @@ 0 - +
- -
+
-
-

Keys

-
-
-

Send key

- -
+
+
+

Keys

+
+
+

Send key

+ +
+
- - +
+
+