Update lang component.

This commit is contained in:
Pierre 2018-02-04 09:25:04 +01:00
parent eb4723d9fc
commit cfd671f7e8
3 changed files with 85 additions and 69 deletions

View File

@ -76,16 +76,13 @@ var ComunicWeb = {
*/ */
getCurrentLanguage: function(){}, getCurrentLanguage: function(){},
/**
* Include and install specified language
*/
installLanguage: function(languageID){},
/** /**
* Initializate languages * Initializate languages
*/ */
initLanguages: function(){}, initLanguages: function(){},
//TODO : implement
/** /**
* Return a string in correct language * Return a string in correct language
*/ */

View File

@ -4,35 +4,59 @@
* @author Pierre HUBERT * @author Pierre HUBERT
*/ */
/** ComunicWeb.common.langs = {
/**
* Local storage lang item name
*/
_lang_storage_field_name: "comunic_v2_lang",
/**
* Currently selected language
*/
__currentLang: "en",
/**
* Default langage (updated on init)
*/
__defaultLang: "en",
/**
* Get current language * Get current language
* *
* @return {String} The id of the current language * @return {String} The id of the current language
*/ */
ComunicWeb.common.langs.getCurrentLanguage = function(){ getCurrentLanguage: function(){
return "fr";
//return ComunicWeb.__config.defaultLanguage;
};
/** //Check if a language has been set in local storage
* Include and install specified language if(localStorage.getItem(this._lang_storage_field_name) != null)
return localStorage.getItem(this._lang_storage_field_name);
//Else return default language
return ComunicWeb.__config.defaultLanguage;
},
/**
* Set language
* *
* @param {String} languageID The languageID to install * @param {String} lang The language to set
*/ */
ComunicWeb.common.langs.installLanguage = function(languageID){ setLang: function(lang){
//Generate filename to include
var fileToInclude = ComunicWeb.__config.languagesPath + languageID + ".inc.js";
//Include filename //Set new language in local storage
ComunicWeb.common.jsFiles.includeFile(fileToInclude); localStorage.setItem(this._lang_storage_field_name, lang);
};
/** //Save name
this.__currentLang = lang;
},
/**
* Language initiator * Language initiator
* *
* @return Boolean False if it fails * @return {Boolean} False if it fails
*/ */
ComunicWeb.common.langs.initLanguages = function(){ initLanguages: function(){
//Debug message //Debug message
ComunicWeb.debug.logMessage("Get and install languages..."); ComunicWeb.debug.logMessage("Get and install languages...");
@ -40,25 +64,18 @@ ComunicWeb.common.langs.initLanguages = function(){
this.__currentLang = this.getCurrentLanguage(); this.__currentLang = this.getCurrentLanguage();
this.__defaultLang = ComunicWeb.__config.defaultLanguage; this.__defaultLang = ComunicWeb.__config.defaultLanguage;
//Install default language (made by default)
//this.installLanguage(this.__defaultLang);
//If selected language is different than default one, install it too
if(this.__currentLang !== this.__defaultLang)
this.installLanguage(this.__currentLang);
//Everything is OK //Everything is OK
return 0; return 0;
} },
/** /**
* Return a string in correct language * Return a string in correct language
* *
* @param {String} stringName The name of the string to show * @param {String} stringName The name of the string to show
* @param {Array} stringParams The optionnal parametres to include with the string * @param {Array} stringParams The optionnal parametres to include with the string
* @return {String} The string ready to show * @return {String} The string ready to show
*/ */
ComunicWeb.common.langs.getTranslatedText = function(stringName, stringParams){ getTranslatedText: function(stringName, stringParams){
//Try to get string //Try to get string
if(this[this.__currentLang][stringName]) if(this[this.__currentLang][stringName])
var string = this[this.__currentLang][stringName]; var string = this[this.__currentLang][stringName];
@ -75,4 +92,5 @@ ComunicWeb.common.langs.getTranslatedText = function(stringName, stringParams){
} }
return string; return string;
},
} }

View File

@ -189,8 +189,9 @@ class Dev {
"js/common/date.js", "js/common/date.js",
"js/common/system.js", "js/common/system.js",
//Default langage //Languages
"js/langs/en.inc.js", "js/langs/en.inc.js",
"js/langs/fr.inc.js",
//Components //Components
//Mail caching //Mail caching