Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eldarc/gettext-nunjucks
Extract translatable strings from Nunjucks template strings.
https://github.com/eldarc/gettext-nunjucks
extracts-translatable-strings gettext gettext-nunjucks nodejs nunjucks nunjucks-expression parse
Last synced: 2 months ago
JSON representation
Extract translatable strings from Nunjucks template strings.
- Host: GitHub
- URL: https://github.com/eldarc/gettext-nunjucks
- Owner: eldarc
- License: mit
- Created: 2016-12-13T11:39:59.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2020-03-19T08:36:35.000Z (almost 5 years ago)
- Last Synced: 2024-10-17T00:28:47.975Z (3 months ago)
- Topics: extracts-translatable-strings, gettext, gettext-nunjucks, nodejs, nunjucks, nunjucks-expression, parse
- Language: JavaScript
- Homepage:
- Size: 12.7 KB
- Stars: 4
- Watchers: 6
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gettext-nunjucks [![build status](https://secure.travis-ci.org/ministryofprogramming/gettext-nunjucks.png)](http://travis-ci.org/ministryofprogramming/gettext-nunjucks)
Extract translatable strings from [Nunjucks](https://github.com/mozilla/nunjucks) template strings.
It can be used stand-alone or through [xgettext-template](https://github.com/gmarty/xgettext).
### API
#### 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
},
npgettext: {
msgctxt: 0,
msgid: 1,
msgid_plural: 2
},
dpgettext: {
msgctxt: 1,
msgid: 2
}
}
```
Each keyword (key) requires an object with argument positions. The `msgid` position is required. `msgid_plural` and `msgctxt` are optional.
For example `gettext: {msgid: 0}` indicates that the Nunjucks expression looks like `{{ gettext("string") }}`.#### .parse(template)
Parses the `template` string for Nunjucks 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]
}
}
```### Development
#### Install
```shell
git clone [email protected]:ministryofprogramming/gettext-nunjucks.git
npm i
```#### Test
```shell
npm run lint
npm test
```