Extract translatable strings from Swig templates
npm install gettext-swigExtract translatable strings from Swig template strings.
It can be used stand-alone or through gmarty/gettext.
#### new Parser(keywordSpec)
Creates a new parser.
The keywordSpec parameter is optional, with the default being:
``javascript`
{
_: {
msgid: 0
},
gettext: {
msgid: 0
},
dgettext: {
msgid: 1
},
dcgettext: {
msgid: 1
},
ngettext: {
msgid: 0,
msgid_plural: 1
},
dngettext: {
msgid: 1,
msgid_plural: 2
},
pgettext: {
msgctxt: 0,
msgid: 1
},
dpgettext: {
msgctxt: 1,
msgid: 2
}
}msgid
Each keyword (key) requires an object with argument positions. The position is required. msgid_plural and msgctxt are optional.gettext: {msgid: 0}
For example indicates that the Swig expression looks like {{ "string"|gettext }}.
#### .parse(template)
Parses the template string for Handlebars expressions using the keywordspec.`
It returns an object with this structure:javascript`
{
msgid1: {
line: [1, 3]
},
msgid2: {
line: [2],
plural: 'msgid_plural'
},
context\u0004msgid2: {
line: [4]
}
}
#### Install
`shell`
git clone git@github.com:smhg/gettext-swig.git
npm i
#### Test
`shell``
npm run lint
npm test