|
Packit Service |
eebd6f |
// Extract the title from cockpit's manifest.json and append it to a .pot file
|
|
Packit Service |
eebd6f |
// This assumes the .pot file already exists.
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
const fs = require("fs");
|
|
Packit Service |
eebd6f |
const jsel = require("jsel");
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
if (process.argv.length !== 4) {
|
|
Packit Service |
eebd6f |
console.error("Usage: add-title <manifest.json> <POT-file>");
|
|
Packit Service |
eebd6f |
process.exit(1);
|
|
Packit Service |
eebd6f |
}
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
const manifestJsonName = process.argv[2];
|
|
Packit Service |
eebd6f |
const outputPOTName = process.argv[3];
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
const manifest = JSON.parse(fs.readFileSync(manifestJsonName, "utf8"));
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
// Anything in a "label" property is translatable
|
|
Packit Service |
eebd6f |
// For each, output the string itself as the msgid, and an
|
|
Packit Service |
eebd6f |
// empty msgstr (because it's a .pot)
|
|
Packit Service |
eebd6f |
const dom = jsel(manifest);
|
|
Packit Service |
eebd6f |
const potData = dom.selectAll("//@label").map((label) => {
|
|
Packit Service |
eebd6f |
return `
|
|
Packit Service |
eebd6f |
#: ${manifestJsonName}
|
|
Packit Service |
eebd6f |
msgid "${label}"
|
|
Packit Service |
eebd6f |
msgstr ""
|
|
Packit Service |
eebd6f |
`;
|
|
Packit Service |
eebd6f |
});
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
fs.appendFileSync(outputPOTName, potData.join(""), "utf8");
|