script/gettext-extract.js (26 lines of code) (raw):
const { GettextExtractor, JsExtractors } = require('gettext-extractor');
const fs = require('fs');
const dir = './translations';
if (!fs.existsSync(dir)){
fs.mkdirSync(dir);
}
const extractor = new GettextExtractor();
extractor
.createJsParser([
JsExtractors.callExpression('i18n', {
arguments: {
text: 0,
context: 1,
},
}),
JsExtractors.callExpression('i18nPlural', {
arguments: {
text: 1,
textPlural: 2,
context: 3,
},
}),
])
.parseFilesGlob('./src/**/!(*.spec).@(ts|js|tsx|jsx)');
extractor.savePotFile('./translations/default.pot');
extractor.printStats();