From ffc880c33bb2f3f32973f82c31d382031ec29d51 Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Mon, 12 Feb 2018 15:51:47 -0700 Subject: [PATCH] duplicated code --- services/i18n.js | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/services/i18n.js b/services/i18n.js index 6ac4ccead..863b5aac2 100644 --- a/services/i18n.js +++ b/services/i18n.js @@ -61,29 +61,27 @@ const loadPluginTranslations = () => { loadedPluginTranslations = true; }; -const t = language => (key, ...replacements) => { +const t = lang => (key, ...replacements) => { // Loads the translations into the translations array from plugins. This is // done lazily to ensure that we don't have an import cycle. loadPluginTranslations(); - // Check if the translation exists on the object. - if (has(translations[language], key) || has(translations['en'], key)) { - // Get the translation value. - let translation = get( - translations[language], - key, - // Fallback to english if the desired key does not exist. - get(translations['en'], key) - ); + let translation; + if (has(translations[lang], key)) { + translation = get(translations[lang], key); + } else if (has(translations['en'], key)) { + translation = get(translations['en'], key); + console.warn(`${lang}.${key} language key not set`); + } - // Replace any {n} with the arguments passed to this method. - replacements.forEach((str, n) => { - translation = translation.replace(new RegExp(`\\{${n}\\}`, 'g'), str); + if (translation) { + // replace any {n} with the arguments passed to this method + replacements.forEach((str, i) => { + translation = translation.replace(new RegExp(`\\{${i}\\}`, 'g'), str); }); - return translation; } else { - console.warn(`${key} language key not set`); + console.warn(`${lang}.${key} and en.${key} language key not set`); return key; } };