/* * https://github.com/morethanwords/tweb * Copyright (C) 2019-2021 Eduard Kuzmenko * https://github.com/morethanwords/tweb/blob/master/LICENSE */ const fs = require('fs'); const f = (key, value, plural) => { value = value .replace(/\n/g, '\\n') .replace(/"/g, '\\"'); return `"${key}${plural ? '_' + plural.replace('_value', '') : ''}" = "${value}";\n`; }; let out = ''; ['lang', 'langSign'].forEach(part => { const path = `../${part}.ts`; let str = fs.readFileSync(path).toString() .replace(/\s.+\/\/.+/g, '') // .replace(/\\'/g, '') .replace(/"/g, `\\"`) // .replace(/'/g, '"') .replace(/([^\\])'/g, '$1"') .replace(/\\'/g, '\'') // .replace(/"(.+?)(?:")(.*?)"/g, '"$1\"$2"'); { const pattern = '= {'; str = str.slice(str.indexOf(pattern) + pattern.length - 1); } { const pattern = '};'; str = str.slice(0, str.indexOf(pattern) + pattern.length - 1); } // console.log(`'${str}'`); // var idx = 21865; // idx -= 1; // console.log(str.slice(idx, idx + 100)); const json = JSON.parse(str); // console.log(json); for(const key in json) { const value = json[key]; if(typeof(value) === 'string') { out += f(key, value); } else { for(const plural in value) { out += f(key, value[plural], plural); } } } }); fs.writeFileSync('./out/langPack.strings', out);