catbee-i18n-handlebars
v0.0.2
Published
catbee i18n service handlebars helpers
Downloads
17
Maintainers
Readme
catbee-i18n-handlebars
Handlebars i18n helpers
const i18nHelpers = require('catbee-i18n-handlebars');
i18nHelpers.register(serviceLocator); // expect handlebars in serviceLocator
Four helpers for usage in .hbs .handlebars templates
{{ _t "Your name" }}
- Simple translate{{ _pt "Translate context" "Your name" }}
- Simple translate with context{{ _nt "Apple" "Apples" count }}
- Translate with plural form{{ _npt "Translate context" "Apple" "Apples" count }}
- Translate with plural form and context
Example
Helpers get translates from @root.l10n
and variables (${name}
) for replace in string from current this
context
template
{{#each names}}
<div class="Text">{{ _t "Your name ${name}" }}</div>
{{/each}}
with context
// template context
const ctx = {
l10n: {
"": {
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)"
},
"Your name ${var}": [ null, "Vaše jméno ${name}"],
},
names: [
{ name: 'Jack' }
{ name: 'Ion' }
{ name: 'Bit' }
]
};
have output:
Vaše jméno Jack
Vaše jméno Ion
Vaše jméno Bit
config
Service get config
from serviceLocator and use config.i18n
property.
config = { // default config
i18n: {
// po2json default glue symbol to concat context and str
glue: '\u0004',
// plural form for your application default language
plural: 'nplurals=1; plural=0;',
// name of property with po2json object in ctx object
context: 'l10n'
}
};
Errors
All errors in i18n helpers will be emitted to catbee eventBus:
eventBus.emit('error', error);