Регулярное выражение для динамичных имен локалей

Структура:

  • /core/components/название_компонента/lang/en.js
  • /core/components/название_компонента/lang/ru.js
  • /modules/название_компонента/lang/en.js
  • /modules/название_компонента/lang/ru.js

/vue-lang/index.js:

import { loadLocales } from 'Functions/loadLocales';

const locales = [];

const locales_components = require.context('Components', true, /lang\/[a-z]\.js$/i);
const locales_modules = require.context('Modules', true, /lang\/[a-z]\.js$/i);

loadLocales(locales_components, locales);
loadLocales(locales_modules, locales);

console.log(locales);

Функция loadLocales:

export function loadLocales(path, locales) {
    path.keys()
    .map(path)
    .map(m => m.default)
    .forEach(key => {
        locales.push(key[0]); 
    });
}

Структура ru.js:

const locales = [
    {
        'title': 'Какой-то заголовок'
    }
];

export default locales;

Сейчас не находит, но если изменить регулярку на:

/lang\/ru.js$/i

То отлично подгружает все ru.js из всех директорий, но как сюда подключить и другие возможные языки, типа en.js, fr.js и т.д.?


Ответы (1 шт):

Автор решения: Дмитрий Гончаров

Решил вопрос следующей регуляркой:

/lang\/[a-z]+\.js$/i
→ Ссылка