AppFlowy/frontend/appflowy_tauri/scripts/i18n/index.cjs
Kilu.He a070ed2441
feat: support all fields type and filters in grid of tauri
* feat: support the single select field actions in grid of tauri

* feat: support multiselect

* feat: support number field and number filter

* feat: support url field

* fix: eslint error

* feat: support checkbox filter

* feat: support checklist field

* fix: adjusting keydown event

* fix: edit record ui

* feat: support date field

* fix: url field bugs

* fix: the bug of the type option wasn't update

* chore: make plural tokens compatible with tauri

* fix: plural key

* fix: optimize get cell performance

* fix: update ts error

* fix: update select option bugs

* fix: grid calculate css

* fix: add DidUpdateFieldSettings

---------

Co-authored-by: Richard Shiue <71320345+richardshiue@users.noreply.github.com>
2023-12-04 10:33:31 +08:00

64 lines
1.5 KiB
JavaScript

const languages = [
'ar-SA',
'ca-ES',
'de-DE',
'en',
'es-VE',
'eu-ES',
'fr-FR',
'hu-HU',
'id-ID',
'it-IT',
'ja-JP',
'ko-KR',
'pl-PL',
'pt-BR',
'pt-PT',
'ru-RU',
'sv-SE',
'th-TH',
'tr-TR',
'zh-CN',
'zh-TW',
];
const fs = require('fs');
languages.forEach(language => {
const json = require(`../../../resources/translations/${language}.json`);
const outputJSON = flattenJSON(json);
const output = JSON.stringify(outputJSON);
const isExistDir = fs.existsSync('./src/appflowy_app/i18n/translations');
if (!isExistDir) {
fs.mkdirSync('./src/appflowy_app/i18n/translations');
}
fs.writeFile(`./src/appflowy_app/i18n/translations/${language}.json`, new Uint8Array(Buffer.from(output)), (res) => {
if (res) {
console.error(res);
}
})
});
function flattenJSON(obj, prefix = '') {
let result = {};
const pluralsKey = ["one", "other", "few", "many", "two", "zero"];
for (let key in obj) {
if (typeof obj[key] === 'object' && obj[key] !== null) {
const nestedKeys = flattenJSON(obj[key], `${prefix}${key}.`);
result = { ...result, ...nestedKeys };
} else {
let newKey = `${prefix}${key}`;
let replaceChar = '{'
if (pluralsKey.includes(key)) {
newKey = `${prefix.slice(0, -1)}_${key}`;
}
result[newKey] = obj[key].replaceAll('{', '{{').replaceAll('}', '}}');
}
}
return result;
}