forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			40 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import * as fs from "fs"; | ||
|  | import {Utils} from "../Utils"; | ||
|  | 
 | ||
|  | function isTranslation(tr: any): boolean { | ||
|  |     for (const key in tr) { | ||
|  |         if (typeof tr[key] !== "string") { | ||
|  |             return false; | ||
|  |         } | ||
|  |     } | ||
|  |     return true; | ||
|  | } | ||
|  | 
 | ||
|  | function transformTranslation(obj: any, depth = 1) { | ||
|  | 
 | ||
|  |     if (isTranslation(obj)) { | ||
|  |         return `new Translation( ${JSON.stringify(obj)} )` | ||
|  |     } | ||
|  | 
 | ||
|  |     let values = "" | ||
|  |     for (const key in obj) { | ||
|  |         values += (Utils.Times((_) => "  ", depth)) + key + ": " + transformTranslation(obj[key], depth + 1) + ",\n" | ||
|  |     } | ||
|  |     return `{${values}}`; | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | function genTranslations() { | ||
|  |     const translations = JSON.parse(fs.readFileSync("./assets/translations.json", "utf-8")) | ||
|  |     const transformed = transformTranslation(translations); | ||
|  | 
 | ||
|  |     let module = `import {Translation} from "./UI/i18n/Translation"\n\nexport default class AllTranslationAssets {\n\n`; | ||
|  |     module += " public static t = " + transformed; | ||
|  |     module += "}" | ||
|  | 
 | ||
|  |     fs.writeFileSync("AllTranslationAssets.ts", module); | ||
|  | 
 | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | genTranslations() |