@lingui/cli
Version:
Lingui CLI to extract messages, compile catalogs, and manage translation workflows
51 lines (50 loc) • 1.52 kB
JavaScript
import { mergeExtractedMessage } from "../api/catalog/extractFromFiles.js";
import { writeCatalogs, writeTemplate } from "./writeCatalogs.js";
import extract from "../api/extractors/index.js";
async function extractFromBundle(filename, linguiConfig) {
const messages = {};
let success;
try {
await extract(filename, (msg) => {
mergeExtractedMessage(msg, messages, linguiConfig);
}, linguiConfig);
success = true;
}
catch (e) {
console.error(`Cannot process file ${filename} ${e.message}`);
console.error(e.stack);
success = false;
}
return { success, messages };
}
export async function extractFromBundleAndWrite(params) {
const { linguiConfig, entryPoint, format, outputPattern, locales, overwrite, clean, template, } = params;
const { messages, success } = await extractFromBundle(params.bundleFile, params.linguiConfig);
if (!success) {
return { success: false };
}
let stat;
if (template) {
stat = (await writeTemplate({
linguiConfig,
clean,
format,
messages,
entryPoint,
outputPattern,
})).statMessage;
}
else {
stat = (await writeCatalogs({
locales,
linguiConfig,
clean,
format,
messages,
entryPoint,
overwrite,
outputPattern,
})).statMessage;
}
return { success: true, stat };
}