From 284d7e26d1e2d00fdaac7d1caa68787daabaf17d Mon Sep 17 00:00:00 2001 From: Allen Boone Date: Mon, 1 Jun 2015 13:59:25 -0400 Subject: [PATCH] Initialize list of supported languages from directories in the locale folder. --- red/i18n.js | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) 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