| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 | 
							- /* global $, require, config, interfaceConfig */
 - var i18n = require("i18next-client");
 - var languages = require("../../service/translation/languages");
 - var Settings = require("../settings/Settings");
 - var DEFAULT_LANG = languages.EN;
 - 
 - i18n.addPostProcessor("resolveAppName", function(value, key, options) {
 -     return value.replace("__app__", interfaceConfig.APP_NAME);
 - });
 - 
 - 
 - 
 - var defaultOptions = {
 -     detectLngQS: "lang",
 -     useCookie: false,
 -     fallbackLng: DEFAULT_LANG,
 -     load: "unspecific",
 -     resGetPath: 'lang/__ns__-__lng__.json',
 -     ns: {
 -         namespaces: ['main', 'languages'],
 -         defaultNs: 'main'
 -     },
 -     lngWhitelist : languages.getLanguages(),
 -     fallbackOnNull: true,
 -     fallbackOnEmpty: true,
 -     useDataAttrOptions: true,
 -     app: interfaceConfig.APP_NAME,
 -     getAsync: false,
 -     defaultValueFromContent: false,
 -     customLoad: function(lng, ns, options, done) {
 -         var resPath = "lang/__ns__-__lng__.json";
 -         if(lng === languages.EN)
 -             resPath = "lang/__ns__.json";
 -         var url = i18n.functions.applyReplacement(resPath, { lng: lng, ns: ns });
 -         i18n.functions.ajax({
 -             url: url,
 -             success: function(data, status, xhr) {
 -                 i18n.functions.log('loaded: ' + url);
 -                 done(null, data);
 -             },
 -             error : function(xhr, status, error) {
 -                 if ((status && status == 200) ||
 -                     (xhr && xhr.status && xhr.status == 200)) {
 -                     // file loaded but invalid json, stop waste time !
 -                     i18n.functions.error('There is a typo in: ' + url);
 -                 } else if ((status && status == 404) ||
 -                     (xhr && xhr.status && xhr.status == 404)) {
 -                     i18n.functions.log('Does not exist: ' + url);
 -                 } else {
 -                     var theStatus = status ? status :
 -                         ((xhr && xhr.status) ? xhr.status : null);
 -                     i18n.functions.log(theStatus + ' when loading ' + url);
 -                 }
 - 
 -                 done(error, {});
 -             },
 -             dataType: "json",
 -             async : options.getAsync
 -         });
 -     }
 -     //              options for caching
 - //                useLocalStorage: true,
 - //                localStorageExpirationTime: 86400000 // in ms, default 1 week
 - };
 - 
 - function initCompleted(t) {
 -     $("[data-i18n]").i18n();
 - }
 - 
 - function checkForParameter() {
 -     var query = window.location.search.substring(1);
 -     var vars = query.split("&");
 -     for (var i=0;i<vars.length;i++) {
 -         var pair = vars[i].split("=");
 -         if(pair[0] == "lang")
 -         {
 -             return pair[1];
 -         }
 -     }
 -     return null;
 - }
 - 
 - module.exports = {
 -     init: function (lang) {
 -         var options = defaultOptions;
 - 
 - 
 -         if(!lang)
 -         {
 -             lang = checkForParameter();
 -             if(!lang)
 -             {
 -                 var settings = Settings.getSettings();
 -                 if(settings)
 -                     lang = settings.language;
 - 
 -                 if(!lang && config.defaultLanguage)
 -                 {
 -                     lang = config.defaultLanguage;
 -                 }
 -             }
 -         }
 - 
 -         if(lang) {
 -             options.lng = lang;
 -         }
 - 
 -         i18n.init(options, initCompleted);
 -     },
 -     translateString: function (key, options) {
 -         return i18n.t(key, options);
 -     },
 -     setLanguage: function (lang) {
 -         if(!lang)
 -             lang = DEFAULT_LANG;
 -         i18n.setLng(lang, defaultOptions, initCompleted);
 -     },
 -     getCurrentLanguage: function () {
 -         return i18n.lng();
 -     },
 -     translateElement: function (selector) {
 -         selector.i18n();
 -     },
 -     generateTranslationHTML: function (key, options) {
 -         var str = "<span data-i18n=\"" + key + "\"";
 -         if(options)
 -         {
 -             str += " data-i18n-options=\"" + JSON.stringify(options) + "\"";
 -         }
 -         str += ">";
 -         str += this.translateString(key, options);
 -         str += "</span>";
 -         return str;
 - 
 -     }
 - };
 
 
  |