* Translates new `en` locale lines for all locales
()
| 64 | * Translates new `en` locale lines for all locales |
| 65 | */ |
| 66 | async function translateNewEnMessages() { |
| 67 | log('Translating new lines'); |
| 68 | |
| 69 | const supportedLocales = await getSupportedLocales(); |
| 70 | const enFiles = await getLocaleFiles('en'); |
| 71 | |
| 72 | for (const enFile of enFiles) { |
| 73 | const enContent = await readFile(enFile); |
| 74 | const enMessages = parseLocale(enContent); |
| 75 | |
| 76 | for (const locale of supportedLocales) { |
| 77 | if (locale === 'en') { |
| 78 | continue; |
| 79 | } |
| 80 | |
| 81 | /** @type {Map<string, string>} */ |
| 82 | let locMessages = new Map(); |
| 83 | const locFile = `${enFile.slice(0, enFile.lastIndexOf('en.config'))}${locale}.config`; |
| 84 | if (await fileExists(locFile)) { |
| 85 | const locContent = await readFile(locFile); |
| 86 | locMessages = parseLocale(locContent); |
| 87 | } |
| 88 | |
| 89 | for (const messageId of enMessages.keys()) { |
| 90 | const enMessage = /** @type {string} */(enMessages.get(messageId)); |
| 91 | const translated = await translate(enMessage, locale); |
| 92 | locMessages.set(messageId, translated); |
| 93 | log(`${locale}: ${translated}`); |
| 94 | } |
| 95 | |
| 96 | const output = stringifyLocale(locMessages); |
| 97 | await writeFile(locFile, output); |
| 98 | } |
| 99 | } |
| 100 | |
| 101 | log.ok('Translation done'); |
| 102 | } |
| 103 | |
| 104 | /** |
| 105 | * @param {string} content |
no test coverage detected