MCPcopy Index your code
hub / github.com/darkreader/darkreader / translateEnMessage

Function translateEnMessage

tasks/translate.js:21–61  ·  view source on GitHub ↗

* Translates `en` locale message for all locales * @param {string} messageId Message ID

(messageId)

Source from the content-addressed store, hash-verified

19 * @param {string} messageId Message ID
20 */
21async function translateEnMessage(messageId) {
22 log(`Translating message ${messageId}`);
23
24 const supportedLocales = await getSupportedLocales();
25 const enFiles = await getLocaleFiles('en');
26
27 let found = false;
28
29 for (const enFile of enFiles) {
30 const enContent = await readFile(enFile);
31 const enMessages = parseLocale(enContent);
32 if (enMessages.has(messageId)) {
33 found = true;
34 const enMessage = /** @type {string} */(enMessages.get(messageId));
35 for (const locale of supportedLocales) {
36 if (locale === 'en') {
37 continue;
38 }
39
40 await timeout(1000);
41
42 const locFile = `${enFile.slice(0, enFile.lastIndexOf('en.config'))}${locale}.config`;
43 const locContent = await readFile(locFile);
44 const locMessages = parseLocale(locContent);
45
46 const translated = await translate(enMessage, locale);
47 locMessages.set(messageId, translated);
48
49 const output = stringifyLocale(locMessages);
50 await writeFile(locFile, output);
51 log(`${locale}: ${translated}`);
52 }
53 }
54 }
55
56 if (!found) {
57 throw new Error(`Could not find message ${messageId}.`);
58 }
59
60 log.ok('Translation done');
61}
62
63/**
64 * Translates new `en` locale lines for all locales

Callers 1

translate.jsFile · 0.85

Calls 11

readFileFunction · 0.90
timeoutFunction · 0.90
writeFileFunction · 0.90
getSupportedLocalesFunction · 0.85
getLocaleFilesFunction · 0.85
parseLocaleFunction · 0.85
translateFunction · 0.85
stringifyLocaleFunction · 0.85
hasMethod · 0.65
getMethod · 0.65
setMethod · 0.65

Tested by

no test coverage detected