mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
Refactor i18n language loading
This commit is contained in:
parent
1311fcdada
commit
3cf9d2d597
File diff suppressed because it is too large
Load Diff
@ -51,6 +51,8 @@
|
|||||||
<script src="js/lib/jquery.i18n/jquery.i18n.language.js"></script>
|
<script src="js/lib/jquery.i18n/jquery.i18n.language.js"></script>
|
||||||
<script src="js/lib/jquery.i18n/CLDRPluralRuleParser.js"></script>
|
<script src="js/lib/jquery.i18n/CLDRPluralRuleParser.js"></script>
|
||||||
|
|
||||||
|
<script src="js/languages.js"></script>
|
||||||
|
|
||||||
<!-- Bootstrap Core CSS -->
|
<!-- Bootstrap Core CSS -->
|
||||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
|
||||||
@ -82,7 +84,6 @@
|
|||||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div style="color:red;margin: 40px 0;text-align:center">
|
<div style="color:red;margin: 40px 0;text-align:center">
|
||||||
|
33
assets/webconfig/js/languages.js
Normal file
33
assets/webconfig/js/languages.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
var storedLang;
|
||||||
|
var availLang = ['cs', 'de', 'en', 'es', 'fr', 'it', 'nl', 'nb', 'pl', 'pt', 'ro', 'sv', 'vi', 'ru', 'tr', 'zh-CN'];
|
||||||
|
var availLangText = ['Čeština', 'Deutsch', 'English', 'Español', 'Français', 'Italiano', 'Nederlands', 'Norsk Bokmål', 'Polski', 'Português', 'Română', 'Svenska', 'Tiếng Việt', 'русский', 'Türkçe', '汉语'];
|
||||||
|
|
||||||
|
//$.i18n.debug = true;
|
||||||
|
|
||||||
|
//i18n
|
||||||
|
function initTrans(lc) {
|
||||||
|
$.i18n().load("i18n", lc).done(
|
||||||
|
function () {
|
||||||
|
$.i18n().locale = lc;
|
||||||
|
performTranslation();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
storedLang = getStorage("langcode");
|
||||||
|
if (storedLang == null || storedLang === "undefined") {
|
||||||
|
|
||||||
|
var langLocale = $.i18n().locale.substring(0, 2);
|
||||||
|
//Test, if language is supported by hyperion
|
||||||
|
var langIdx = availLang.indexOf(langLocale);
|
||||||
|
if (langIdx === -1) {
|
||||||
|
// If language is not supported by hyperion, try fallback language
|
||||||
|
langLocale = $.i18n().options.fallbackLocale.substring(0, 2);
|
||||||
|
langIdx = availLang.indexOf(langLocale);
|
||||||
|
if (langIdx === -1) {
|
||||||
|
langLocale = 'en';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
storedLang = langLocale;
|
||||||
|
setStorage("langcode", storedLang);
|
||||||
|
}
|
||||||
|
initTrans(storedLang);
|
@ -1,149 +1,111 @@
|
|||||||
var storedAccess;
|
|
||||||
var storedLang;
|
|
||||||
var availLang = ['cs', 'de', 'en', 'es', 'fr', 'it', 'nl', 'nb', 'pl', 'pt', 'ro', 'sv', 'vi', 'ru', 'tr', 'zh-CN'];
|
|
||||||
var availLangText = ['Čeština', 'Deutsch', 'English', 'Español', 'Français', 'Italiano', 'Nederlands', 'Norsk Bokmål', 'Polski', 'Português', 'Română', 'Svenska', 'Tiếng Việt', 'русский', 'Türkçe', '汉语'];
|
|
||||||
var availAccess = ['default', 'advanced', 'expert'];
|
var availAccess = ['default', 'advanced', 'expert'];
|
||||||
|
var storedAccess;
|
||||||
//$.i18n.debug = true;
|
|
||||||
|
|
||||||
//Change Password
|
//Change Password
|
||||||
function changePassword(){
|
function changePassword(){
|
||||||
showInfoDialog('changePassword', $.i18n('InfoDialog_changePassword_title'));
|
showInfoDialog('changePassword', $.i18n('InfoDialog_changePassword_title'));
|
||||||
|
|
||||||
// fill default pw if default is set
|
// fill default pw if default is set
|
||||||
if(window.defaultPasswordIsSet)
|
if(window.defaultPasswordIsSet)
|
||||||
$('#oldPw').val('hyperion')
|
$('#oldPw').val('hyperion')
|
||||||
|
|
||||||
$('#id_btn_ok').off().on('click',function() {
|
$('#id_btn_ok').off().on('click',function() {
|
||||||
var oldPw = $('#oldPw').val();
|
var oldPw = $('#oldPw').val();
|
||||||
var newPw = $('#newPw').val();
|
var newPw = $('#newPw').val();
|
||||||
|
|
||||||
requestChangePassword(oldPw, newPw)
|
requestChangePassword(oldPw, newPw)
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#newPw, #oldPw').off().on('input',function(e) {
|
$('#newPw, #oldPw').off().on('input',function(e) {
|
||||||
($('#oldPw').val().length >= 8 && $('#newPw').val().length >= 8) && !window.readOnlyMode ? $('#id_btn_ok').attr('disabled', false) : $('#id_btn_ok').attr('disabled', true);
|
($('#oldPw').val().length >= 8 && $('#newPw').val().length >= 8) && !window.readOnlyMode ? $('#id_btn_ok').attr('disabled', false) : $('#id_btn_ok').attr('disabled', true);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready( function() {
|
$(document).ready(function () {
|
||||||
|
|
||||||
//i18n
|
if (!storageComp()) {
|
||||||
function initTrans(lc){
|
showInfoDialog('warning', "Can't store settings", "Your browser doesn't support localStorage. You can't save a specific language setting (fallback to 'auto detection') and access level (fallback to 'default'). Some wizards may be hidden. You could still use the webinterface without further issues");
|
||||||
if (lc == 'auto')
|
$('#language-select').attr("disabled", true);
|
||||||
{
|
$('#btn_setaccess').attr("disabled", true);
|
||||||
$.i18n().load().done(
|
}
|
||||||
function() {
|
|
||||||
performTranslation();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$.i18n().locale = lc;
|
|
||||||
$.i18n().load( "i18n", lc ).done(
|
|
||||||
function() {
|
|
||||||
performTranslation();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (storageComp())
|
initLanguageSelection();
|
||||||
{
|
|
||||||
storedLang = getStorage("langcode");
|
|
||||||
if (storedLang == null)
|
|
||||||
{
|
|
||||||
setStorage("langcode", 'auto');
|
|
||||||
storedLang = 'auto';
|
|
||||||
initTrans(storedLang);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
initTrans(storedLang);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
showInfoDialog('warning', "Can't store settings", "Your browser doesn't support localStorage. You can't save a specific language setting (fallback to 'auto detection') and access level (fallback to 'default'). Some wizards may be hidden. You could still use the webinterface without further issues");
|
|
||||||
initTrans('auto');
|
|
||||||
storedLang = 'auto';
|
|
||||||
storedAccess = "default";
|
|
||||||
$('#btn_setlang').attr("disabled", true);
|
|
||||||
$('#btn_setaccess').attr("disabled", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
initLanguageSelection();
|
//access
|
||||||
|
storedAccess = getStorage("accesslevel");
|
||||||
|
if (storedAccess == null) {
|
||||||
|
storedAccess = "default";
|
||||||
|
setStorage("accesslevel", storedAccess);
|
||||||
|
}
|
||||||
|
|
||||||
//access
|
if (!storageComp()) {
|
||||||
storedAccess = getStorage("accesslevel");
|
showInfoDialog('warning', $.i18n('InfoDialog_nostorage_title'), $.i18n('InfoDialog_nostorage_text'));
|
||||||
if (storedAccess == null)
|
$('#btn_setlang').attr("disabled", true);
|
||||||
{
|
}
|
||||||
setStorage("accesslevel", "default");
|
|
||||||
storedAccess = "default";
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#btn_setaccess').off().on('click',function() {
|
$('#btn_setaccess').off().on('click',function() {
|
||||||
var newAccess;
|
var newAccess;
|
||||||
showInfoDialog('select', $.i18n('InfoDialog_access_title'), $.i18n('InfoDialog_access_text'));
|
showInfoDialog('select', $.i18n('InfoDialog_access_title'), $.i18n('InfoDialog_access_text'));
|
||||||
|
|
||||||
for (var lcx = 0; lcx<availAccess.length; lcx++)
|
for (var lcx = 0; lcx<availAccess.length; lcx++)
|
||||||
{
|
{
|
||||||
$('#id_select').append(createSelOpt(availAccess[lcx], $.i18n('general_access_'+availAccess[lcx])));
|
$('#id_select').append(createSelOpt(availAccess[lcx], $.i18n('general_access_'+availAccess[lcx])));
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#id_select').val(storedAccess);
|
$('#id_select').val(storedAccess);
|
||||||
|
|
||||||
$('#id_select').off().on('change',function() {
|
$('#id_select').off().on('change',function() {
|
||||||
newAccess = $('#id_select').val();
|
newAccess = $('#id_select').val();
|
||||||
if (newAccess == storedAccess)
|
if (newAccess == storedAccess)
|
||||||
$('#id_btn_saveset').attr('disabled', true);
|
$('#id_btn_saveset').attr('disabled', true);
|
||||||
else
|
else
|
||||||
$('#id_btn_saveset').attr('disabled', false);
|
$('#id_btn_saveset').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#id_btn_saveset').off().on('click',function() {
|
$('#id_btn_saveset').off().on('click',function() {
|
||||||
setStorage("accesslevel", newAccess);
|
setStorage("accesslevel", newAccess);
|
||||||
reload();
|
reload();
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#id_select').trigger('change');
|
$('#id_select').trigger('change');
|
||||||
});
|
});
|
||||||
|
|
||||||
// change pw btn
|
// change pw btn
|
||||||
$('#btn_changePassword').off().on('click',function() {
|
$('#btn_changePassword').off().on('click',function() {
|
||||||
changePassword();
|
changePassword();
|
||||||
});
|
});
|
||||||
|
|
||||||
//Lock Ui
|
//Lock Ui
|
||||||
$('#btn_lock_ui').off().on('click',function() {
|
$('#btn_lock_ui').off().on('click',function() {
|
||||||
removeStorage('loginToken', true);
|
removeStorage('loginToken', true);
|
||||||
location.replace('/');
|
location.replace('/');
|
||||||
});
|
});
|
||||||
|
|
||||||
//hide menu elements
|
//hide menu elements
|
||||||
if (storedAccess != 'expert')
|
if (storedAccess != 'expert')
|
||||||
$('#load_webconfig').toggle(false);
|
$('#load_webconfig').toggle(false);
|
||||||
|
|
||||||
|
|
||||||
// instance switcher
|
// instance switcher
|
||||||
$('#btn_instanceswitch').off().on('click',function() {
|
$('#btn_instanceswitch').off().on('click',function() {
|
||||||
var lsys = window.sysInfo.system.hostName+':'+window.serverConfig.webConfig.port;
|
var lsys = window.sysInfo.system.hostName+':'+window.serverConfig.webConfig.port;
|
||||||
showInfoDialog('iswitch', $.i18n('InfoDialog_iswitch_title'), $.i18n('InfoDialog_iswitch_text'));
|
showInfoDialog('iswitch', $.i18n('InfoDialog_iswitch_title'), $.i18n('InfoDialog_iswitch_text'));
|
||||||
|
|
||||||
for (var i = 0; i<window.wSess.length; i++)
|
for (var i = 0; i<window.wSess.length; i++)
|
||||||
{
|
{
|
||||||
if(lsys != window.wSess[i].host+':'+window.wSess[i].port)
|
if(lsys != window.wSess[i].host+':'+window.wSess[i].port)
|
||||||
{
|
{
|
||||||
var hyperionAddress = window.wSess[i].address;
|
var hyperionAddress = window.wSess[i].address;
|
||||||
if(hyperionAddress.indexOf(':') > -1 && hyperionAddress.length == 36) hyperionAddress = '['+hyperionAddress+']';
|
if(hyperionAddress.indexOf(':') > -1 && hyperionAddress.length == 36) hyperionAddress = '['+hyperionAddress+']';
|
||||||
hyperionAddress = 'http://'+hyperionAddress+':'+window.wSess[i].port;
|
hyperionAddress = 'http://'+hyperionAddress+':'+window.wSess[i].port;
|
||||||
$('#id_select').append(createSelOpt(hyperionAddress, window.wSess[i].name));
|
$('#id_select').append(createSelOpt(hyperionAddress, window.wSess[i].name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#id_btn_saveset').off().on('click',function() {
|
$('#id_btn_saveset').off().on('click',function() {
|
||||||
$("#loading_overlay").addClass("overlay");
|
$("#loading_overlay").addClass("overlay");
|
||||||
window.location.href = $('#id_select').val();
|
window.location.href = $('#id_select').val();
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -162,25 +162,22 @@ function initLanguageSelection() {
|
|||||||
|
|
||||||
var langLocale = storedLang;
|
var langLocale = storedLang;
|
||||||
|
|
||||||
// If no language has been set, resolve browser locale
|
|
||||||
if (langLocale === 'auto') {
|
|
||||||
langLocale = $.i18n().locale.substring(0, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resolve text for language code
|
|
||||||
var langText = 'Please Select';
|
|
||||||
|
|
||||||
//Test, if language is supported by hyperion
|
//Test, if language is supported by hyperion
|
||||||
var langIdx = availLang.indexOf(langLocale);
|
var langIdx = availLang.indexOf(langLocale);
|
||||||
if (langIdx > -1) {
|
if (langIdx > -1) {
|
||||||
langText = availLangText[langIdx];
|
langText = availLangText[langIdx];
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// If language is not supported by hyperion, try fallback language
|
// If language is not supported by hyperion, try fallback language
|
||||||
langLocale = $.i18n().options.fallbackLocale.substring(0, 2);
|
langLocale = $.i18n().options.fallbackLocale.substring(0, 2);
|
||||||
langIdx = availLang.indexOf(langLocale);
|
langIdx = availLang.indexOf(langLocale);
|
||||||
if (langIdx > -1) {
|
if (langIdx > -1) {
|
||||||
langText = availLangText[langIdx];
|
langText = availLangText[langIdx];
|
||||||
|
} else {
|
||||||
|
langLocale = 'en';
|
||||||
|
langIdx = availLang.indexOf(langLocale);
|
||||||
|
if (langIdx > -1) {
|
||||||
|
langText = availLangText[langIdx];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user