This tag lib allows you to access the i18next t()
function from your request
object (if for example you're using i18next Express middleware) in your
templates if streaming to a response using the template.render()
function:
template.render({}, res);
npm install marko-i18next
Example locales file (namespace.json
):
{
"message": "Hi guys",
"interpolatedMessage": "Hi {{name}}",
"submit": "Submit form",
"nameSubmit": "Submit form for {{name}}"
}
In a Marko template:
<p>
<i18n-message key="namespace:message"/>
</p>
With interpolated strings:
<p>
<i18n-message key="namespace:interpolatedMessage" name="Hammond Eggs"/>
</p>
You can also add the translation function to your template by including
<i18n-var/>
at the top of the file. This is useful for assigning i18n
messages to attributes:
<i18n-var/>
<form>
...
<input type="submit" value=i18n('namespace:submit')/>
</form>
With interpolated strings:
<i18n-var/>
<form>
...
<input type="submit" value=i18n('namespace:nameSubmit', {name: 'George'})/>
</form>
Do a pull request, I'll have a look!