feat(desktop): add i18n infrastructure with react-intl (#8105)

This commit is contained in:
jh-block
2026-03-27 19:39:50 +01:00
committed by GitHub
parent d596113e72
commit a6765fbcd9
172 changed files with 13793 additions and 2054 deletions
+27
View File
@@ -0,0 +1,27 @@
#!/usr/bin/env node
/**
* Cross-platform i18n compile script.
* Compiles all JSON message files in src/i18n/messages/ using formatjs.
*/
const fs = require('fs');
const path = require('path');
const { execFileSync } = require('child_process');
const projectDir = path.join(__dirname, '..');
const formatjs = require.resolve('@formatjs/cli/bin/formatjs');
const messagesDir = path.join(projectDir, 'src', 'i18n', 'messages');
const compiledDir = path.join(projectDir, 'src', 'i18n', 'compiled');
fs.mkdirSync(compiledDir, { recursive: true });
const files = fs.readdirSync(messagesDir).filter((f) => f.endsWith('.json'));
for (const file of files) {
const locale = path.basename(file, '.json');
const inFile = path.join(messagesDir, file);
const outFile = path.join(compiledDir, `${locale}.json`);
execFileSync(process.execPath, [formatjs, 'compile', inFile, '--out-file', outFile], {
stdio: 'inherit',
cwd: projectDir,
});
}