mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-11-04 03:54:44 +00:00 
			
		
		
		
	* 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>
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			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;
 | 
						|
}
 | 
						|
 |