Improve ftl localization scripts
This commit is contained in:
parent
3c6625f3cf
commit
b9f0d26cee
3 changed files with 17 additions and 13 deletions
|
@ -49,21 +49,25 @@ async function getFTL() {
|
|||
catch (e) {
|
||||
// no local .ftl file
|
||||
}
|
||||
let baseFTL;
|
||||
let jsonFromEnUSFTL = {};
|
||||
|
||||
try {
|
||||
const enUSFtlPath = join(getLocaleDir('en-US'), sourceFileBaseName + '.ftl');
|
||||
const ftl = await fs.readFile(enUSFtlPath, 'utf8');
|
||||
jsonFromEnUSFTL = ftlToJSON(ftl);
|
||||
baseFTL = await fs.readFile(enUSFtlPath, 'utf8');
|
||||
jsonFromEnUSFTL = ftlToJSON(baseFTL);
|
||||
}
|
||||
catch (e) {
|
||||
console.warn(`No en-US .ftl file for ${sourceFileBaseName}.`);
|
||||
throw new Error(`No en-US .ftl file for ${sourceFileBaseName}.ftl`);
|
||||
}
|
||||
|
||||
const mergedSourceJSON = { ...jsonFromEnUSFTL, ...jsonFromLocalFTL };
|
||||
const sourceKeys = Object.keys(mergedSourceJSON);
|
||||
const translated = new Map();
|
||||
|
||||
for (let key of sourceKeys) {
|
||||
if (key in jsonFromTransifex) {
|
||||
// ignore empty messages from transifex
|
||||
if (key in jsonFromTransifex && jsonFromTransifex[key]?.string) {
|
||||
translated.set(key, jsonFromTransifex[key]);
|
||||
}
|
||||
else {
|
||||
|
@ -71,7 +75,7 @@ async function getFTL() {
|
|||
}
|
||||
}
|
||||
|
||||
const ftl = JSONToFtl(Object.fromEntries(translated));
|
||||
const ftl = JSONToFtl(Object.fromEntries(translated), baseFTL);
|
||||
const outFtlPath = join(getLocaleDir(locale), sourceFileBaseName + '.ftl');
|
||||
await fs.outputFile(outFtlPath, ftl);
|
||||
onProgress(`${locale}/${sourceFileBaseName}.ftl`, null, 'localize');
|
||||
|
|
14
package-lock.json
generated
14
package-lock.json
generated
|
@ -40,7 +40,7 @@
|
|||
"eslint-plugin-react": "^7.28.0",
|
||||
"eslint-plugin-react-hooks": "^4.0.4",
|
||||
"fs-extra": "^3.0.1",
|
||||
"ftl-tx": "^0.10.0",
|
||||
"ftl-tx": "^0.11.0",
|
||||
"globby": "^6.1.0",
|
||||
"jspath": "^0.4.0",
|
||||
"mocha": "^10.4.0",
|
||||
|
@ -3667,9 +3667,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/ftl-tx": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/ftl-tx/-/ftl-tx-0.10.0.tgz",
|
||||
"integrity": "sha512-MtUChEGb2vQzVtQvEkNnEPCLbYDWdGkt0ytcXL71wN/4HIBHAeaRO5Y1+MnnkFKxfm0aVHBbwONHyRmS9ewJ9g==",
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/ftl-tx/-/ftl-tx-0.11.0.tgz",
|
||||
"integrity": "sha512-tkE5Im6Pr2FzHQT/ZLYfK4Rt48Zok/4WY2ZXc/xvmjbpQ+Wvslgvy9KjrgTJbv8295NmZbp8NMTQeijBpejabQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@fluent/syntax": "^0.19.0"
|
||||
|
@ -10588,9 +10588,9 @@
|
|||
}
|
||||
},
|
||||
"ftl-tx": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/ftl-tx/-/ftl-tx-0.10.0.tgz",
|
||||
"integrity": "sha512-MtUChEGb2vQzVtQvEkNnEPCLbYDWdGkt0ytcXL71wN/4HIBHAeaRO5Y1+MnnkFKxfm0aVHBbwONHyRmS9ewJ9g==",
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/ftl-tx/-/ftl-tx-0.11.0.tgz",
|
||||
"integrity": "sha512-tkE5Im6Pr2FzHQT/ZLYfK4Rt48Zok/4WY2ZXc/xvmjbpQ+Wvslgvy9KjrgTJbv8295NmZbp8NMTQeijBpejabQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@fluent/syntax": "^0.19.0"
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
"eslint-plugin-react": "^7.28.0",
|
||||
"eslint-plugin-react-hooks": "^4.0.4",
|
||||
"fs-extra": "^3.0.1",
|
||||
"ftl-tx": "^0.10.0",
|
||||
"ftl-tx": "^0.11.0",
|
||||
"globby": "^6.1.0",
|
||||
"jspath": "^0.4.0",
|
||||
"mocha": "^10.4.0",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue