mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-10-30 17:38:40 +00:00 
			
		
		
		
	 a070ed2441
			
		
	
	
		a070ed2441
		
			
		
	
	
	
	
		
			
			* 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;
 | |
| }
 | |
| 
 |