gettext-extractor-vue

5.1.0 • Public • Published

gettext-extractor-vue

Extend gettext-extractor with the possibility to parse .vue single 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());

/gettext-extractor-vue/

    Package Sidebar

    Install

    npm i gettext-extractor-vue

    Weekly Downloads

    57,053

    Version

    5.1.0

    License

    MIT

    Unpacked Size

    10.4 kB

    Total Files

    11

    Last publish

    Collaborators

    • apanchal-gitlab
    • rob.hunt-gitlab
    • gitlab-administration
    • tzallmann
    • gitlab-bot
    • leipert