1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00
node-red/packages/node_modules/@node-red/editor-client/src/js/i18n.js

90 lines
3.0 KiB
JavaScript
Raw Normal View History

2015-05-06 23:14:00 +02:00
/**
* Copyright JS Foundation and other contributors, http://js.foundation
2015-05-06 23:14:00 +02:00
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
2015-05-06 23:14:00 +02:00
RED.i18n = (function() {
var apiRootUrl;
2015-05-06 23:14:00 +02:00
return {
init: function(options, done) {
apiRootUrl = options.apiRootUrl||"";
2015-05-06 23:14:00 +02:00
i18n.init({
resGetPath: apiRootUrl+'locales/__ns__?lng=__lng__',
2015-05-06 23:14:00 +02:00
dynamicLoad: false,
load:'current',
2015-05-06 23:14:00 +02:00
ns: {
2017-01-05 11:07:23 +01:00
namespaces: ["editor","node-red","jsonata","infotips"],
2015-05-06 23:14:00 +02:00
defaultNs: "editor"
},
fallbackLng: ['en-US'],
useCookie: false
2015-05-06 23:14:00 +02:00
},function() {
done();
});
RED["_"] = function() {
return i18n.t.apply(null,arguments);
}
},
loadNodeCatalog: function(namespace,done) {
var languageList = i18n.functions.toLanguages(i18n.detectLanguage());
var toLoad = languageList.length;
languageList.forEach(function(lang) {
$.ajax({
headers: {
"Accept":"application/json"
},
cache: false,
url: apiRootUrl+'nodes/'+namespace+'/messages?lng='+lang,
success: function(data) {
i18n.addResourceBundle(lang,namespace,data);
toLoad--;
if (toLoad === 0) {
done();
}
}
});
})
},
loadNodeCatalogs: function(done) {
var languageList = i18n.functions.toLanguages(i18n.detectLanguage());
var toLoad = languageList.length;
languageList.forEach(function(lang) {
$.ajax({
headers: {
"Accept":"application/json"
},
cache: false,
url: apiRootUrl+'nodes/messages?lng='+lang,
success: function(data) {
var namespaces = Object.keys(data);
namespaces.forEach(function(ns) {
i18n.addResourceBundle(lang,ns,data[ns]);
});
toLoad--;
if (toLoad === 0) {
done();
}
}
});
})
2015-05-06 23:14:00 +02:00
}
}
})();