mirror of
https://github.com/qlik-oss/nebula.js.git
synced 2025-12-19 17:58:43 -05:00
58 lines
1.3 KiB
JavaScript
Executable File
58 lines
1.3 KiB
JavaScript
Executable File
#! /usr/bin/env node
|
|
/* eslint no-underscore-dangle: 0 */
|
|
import { globbySync } from 'globby';
|
|
import { fileURLToPath } from 'url';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
const LOCALES_DIR = path.resolve(__dirname, '../locales');
|
|
const LOCALES_FILES = globbySync(['*.json'], { cwd: LOCALES_DIR });
|
|
const LOCALE_PKG_DIR = path.resolve(__dirname, '..');
|
|
const ALL = path.resolve(`${LOCALE_PKG_DIR}`, 'all.json');
|
|
|
|
const LOCALES = {
|
|
'en-US': 'en-US',
|
|
en: 'en-US',
|
|
de: 'de-DE',
|
|
fr: 'fr-FR',
|
|
it: 'it-IT',
|
|
ja: 'ja-JP',
|
|
ko: 'ko-KR',
|
|
nl: 'nl-NL',
|
|
pl: 'pl-PL',
|
|
pt: 'pt-BR',
|
|
ru: 'ru-RU',
|
|
sv: 'sv-SE',
|
|
tr: 'tr-TR',
|
|
'zh-CN': 'zh-CN',
|
|
'zh-TW': 'zh-TW',
|
|
es: 'es-ES',
|
|
};
|
|
|
|
const merged = {};
|
|
|
|
for (const fileName of LOCALES_FILES) {
|
|
const file = path.join(LOCALES_DIR, fileName);
|
|
const short = path.parse(file).name;
|
|
const locale = LOCALES[short];
|
|
const content = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
|
|
Object.keys(content).reduce((acc, curr) => {
|
|
const key = curr.replace(/\./g, '_');
|
|
if (!acc[key]) {
|
|
acc[key] = {
|
|
id: curr,
|
|
};
|
|
}
|
|
if (!acc[key].locale) {
|
|
acc[key].locale = {};
|
|
}
|
|
acc[key].locale[locale] = content[curr].value;
|
|
return acc;
|
|
}, merged);
|
|
}
|
|
|
|
fs.writeFileSync(ALL, JSON.stringify(merged, ' ', 2));
|