mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-11-04 03:54:44 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			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/@types/translations');
 | 
						|
    if (!isExistDir) {
 | 
						|
        fs.mkdirSync('./src/@types/translations');
 | 
						|
    }
 | 
						|
    fs.writeFile(`./src/@types/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;
 | 
						|
}
 | 
						|
 |