diff --git a/red/i18n.js b/red/i18n.js index 5f5941f4a..5a101f348 100644 --- a/red/i18n.js +++ b/red/i18n.js @@ -20,6 +20,7 @@ var path = require("path"); var fs = require("fs"); var defaultLang = "en-US"; +var supportedLangs = null; var resourceMap = { "runtime": { @@ -42,6 +43,19 @@ function registerMessageCatalog(namespace,dir,file) { }); } +var initSupportedLangs = function() { + return when.promise(function(resolve,reject) { + fs.readdir(resourceMap.editor.basedir, function(err,files) { + if(err) { + reject(err); + } else { + supportedLangs = files; + resolve(); + } + }); + }); +} + var MessageFileLoader = { fetchOne: function(lng, ns, callback) { if (resourceMap[ns]) { @@ -79,7 +93,9 @@ function init() { }, fallbackLng: ['en-US'] },function() { - resolve(); + initSupportedLangs().then(function() { + resolve(); + }); }); }); } @@ -104,13 +120,12 @@ function getCatalog(namespace,lang) { function determineLangFromHeaders(acceptedLanguages){ var lang = "en-US"; - var supportedLanguages = ['en-US', 'es', 'fr', 'it', 'de', 'pt-BR', 'zh', 'zh-TW', 'ko', 'ja', 'zz-ZZ']; // TODO: pull this value from settings for (var i=0;i