gettext-extractor-vue
Extend gettext-extractor with the possibility to parse Vue single file components
954,287
| Install | |
|---|---|
npm install gettext-extractor-vue |
|
| Latest Version: | 5.2.0 |
| License: | MIT |
| Last Updated: | Aug 18, 2025 |
| Links: | GitLab · npm |
Maintainer: rob.hunt-gitlab
gettext-extractor-vue
Extend gettext-extractor with the possibility to parse
.vuesingle file components.
Usage: Adding Vue SFC Support with decorateJSParserWithVueSupport
Support for Vue single file components (SFC) is provided by a decorating the JSExtractor of gettext-extractor.
The Single File Components will be transformed to JavaScript and fed into JSExtractor.
Both vue@2 (via vue-template-compiler) and vue@3 (via @vue/compiler-sfc) are supported.
Below you can see an example, derived from gettext-extractor's README.
const { GettextExtractor, JsExtractors } = require('gettext-extractor');
const { decorateJSParserWithVueSupport } = require('gettext-extractor-vue');
const extractor = new GettextExtractor();
const jsParser = extractor.createJsParser([
JsExtractors.callExpression('getText', {
arguments: {
text: 0,
context: 1,
},
}),
JsExtractors.callExpression('getPlural', {
arguments: {
text: 1,
textPlural: 2,
context: 3,
},
}),
]);
let vueParser;
// For vue@2 support please provide vue-template-compiler via `vue2TemplateCompiler`
vueParser = decorateJSParserWithVueSupport(jsParser, {
vue2TemplateCompiler: require('vue-template-compiler'),
});
// For vue@3 support please provide @vue/compiler-sfc via `vue3TemplateCompiler`
vueParser = decorateJSParserWithVueSupport(jsParser, {
vue3TemplateCompiler: require('@vue/compiler-sfc'),
});
vueParser.parseFilesGlob('./src/**/*.@(js|vue)');
extractor.savePotFile('./messages.pot');
extractor.printStats();
Usage: Transforming messages with decorateExtractorWithHelpers
decorateExtractorWithHelpers enables to you to add message transform functions to the extractor.
For example:
const { GettextExtractor, JSExtractor } = require('gettext-extractor');
const { decorateExtractorWithHelpers } = require('gettext-extractor-vue');
const extractor = decorateExtractorWithHelpers(new GettextExtractor());
// Ensure that every message has leading and trailing spaces removed
extractor.addMessageTransformFunction((message) => message.trim());
Version History
| Version | Released | License |
|---|---|---|
| 5.2.0 | MIT | |
| 5.1.0 | MIT | |
| 5.0.0 | MIT | |
| 4.0.2 | MIT | |
| 4.0.1 | MIT | |
| 4.0.0 | MIT | |
| 3.0.1 | MIT | |
| 3.0.0 | MIT | |
| 2.0.1 | MIT | |
| 2.0.0 | MIT | |
| 1.0.0 | MIT |