mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-04-22 07:46:15 -04:00
feat(i18n): added missing locale files in tools (#863)
This commit is contained in:
parent
1334bff30a
commit
7f5fa00147
312 changed files with 61 additions and 0 deletions
61
scripts/build-locales-files.mjs
Normal file
61
scripts/build-locales-files.mjs
Normal file
|
@ -0,0 +1,61 @@
|
|||
import { existsSync, writeFileSync } from 'node:fs';
|
||||
import { Glob } from 'bun';
|
||||
import _ from 'lodash';
|
||||
|
||||
async function getPathsFromGlobs({ patterns, onlyFiles = true }) {
|
||||
const filePaths = [];
|
||||
|
||||
for (const pattern of patterns) {
|
||||
const glob = new Glob(pattern);
|
||||
|
||||
for await (const filePath of glob.scan({ onlyFiles, cwd: '.' })) {
|
||||
filePaths.push(filePath);
|
||||
}
|
||||
}
|
||||
|
||||
return { filePaths };
|
||||
}
|
||||
|
||||
function getLocaleKey({ filePath }) {
|
||||
const fileName = filePath.split('/').pop();
|
||||
return fileName.replace(/\.yml$/, '');
|
||||
}
|
||||
|
||||
async function createMissingLocaleFile({ localeKey }) {
|
||||
const fileName = `${localeKey}.yml`;
|
||||
|
||||
const { filePaths: localesDirs } = await getPathsFromGlobs({
|
||||
patterns: [
|
||||
'locales',
|
||||
'src/tools/*/locales',
|
||||
],
|
||||
onlyFiles: false,
|
||||
});
|
||||
|
||||
for (const localesDir of localesDirs) {
|
||||
const filePath = `${localesDir}/${fileName}`;
|
||||
|
||||
if (existsSync(filePath)) {
|
||||
console.log(`Locale file already exists: ${filePath}`);
|
||||
continue;
|
||||
}
|
||||
|
||||
console.log(`Creating missing locale file: ${filePath}`);
|
||||
writeFileSync(filePath, '', 'utf8');
|
||||
}
|
||||
}
|
||||
|
||||
const { filePaths } = await getPathsFromGlobs({
|
||||
patterns: [
|
||||
'locales/*.yml',
|
||||
'src/tools/*/locales/*.yml',
|
||||
],
|
||||
});
|
||||
|
||||
await Promise.all(
|
||||
_.chain(filePaths)
|
||||
.map(filePath => getLocaleKey({ filePath }))
|
||||
.uniq()
|
||||
.map(localeKey => createMissingLocaleFile({ localeKey }))
|
||||
.value(),
|
||||
);
|
Loading…
Add table
Add a link
Reference in a new issue