Introduction
Source can be loaded via npm, bower or downloaded from this repo.
NEWS: localization as a service - locize.com
Needing a translation management? Want to edit your translations with an InContext Editor? Use the orginal provided to you by the maintainers of i18next!
With using locize you directly support the future of i18next and react-i18next.
If you don't use a module loader it will be added to window.jqueryI18next
# npm package
$ npm install jquery-i18next
# bower
$ bower install jquery-i18next
Simplifies i18next usage in projects built based on jquery, like:
page source:
<ul class="nav">
<li><a href="#" data-i18n="nav.home"></a></li>
<li><a href="#" data-i18n="nav.page1"></a></li>
<li><a href="#" data-i18n="nav.page2"></a></li>
</ul>
loaded resource file (locales/en/translation.json):
{
"nav": {
"home": "Home",
"page1": "Page One",
"page2": "Page Two"
}
}
javascript code:
$(".nav").localize();
Initialize the plugin
jqueryI18next.init(i18nextInstance, $, {
tName: 't',
i18nName: 'i18n',
handleName: 'localize',
selectorAttr: 'data-i18n',
targetAttr: 'i18n-target',
optionsAttr: 'i18n-options',
useOptionsAttr: false,
parseDefaultValueFromContent: true
});
using options in translation function
<a id="btn1" href="#" data-i18n="myKey"></a>
$("#btn1").localize(options);
or
<a id="btn1" href="#" data-i18n="myKey" data-i18n-options='{ "a": "b" }'></a>
$("#btn1").localize();
data-i18n-options
attribute must be a valid JSON object.
usage of selector function
translate an element
<a id="btn1" href="#" data-i18n="myKey"></a>
$("#btn1").localize(options);
myKey: same key as used in i18next (optionally with namespaces)
options: same options as supported in i18next.t
translate children of an element
<ul class="nav">
<li><a href="#" data-i18n="nav.home"></a></li>
<li><a href="#" data-i18n="nav.page1"></a></li>
<li><a href="#" data-i18n="nav.page2"></a></li>
</ul>
$(".nav").localize();
translate some inner element
<div class="outer" data-i18n="ns:key" data-i18n-target=".inner">
<input class="inner" type="text"></input>
</div>
$(".outer").localize();
set different attribute
<a id="btn1" href="#" data-i18n="[title]key.for.title"></a>
$("#btn1").localize();
set multiple attributes
<a id="btn1" href="#" data-i18n="[title]key.for.title;myNamespace:key.for.text"></a>
$("#btn1").localize();
set innerHtml attributes
<a id="btn1" href="#" data-i18n="[html]key.for.title"></a>
$("#btn1").localize();
prepend content
<a id="btn1" href="#" data-i18n="[prepend]key.for.title">insert before me, please!</a>
$("#btn1").localize();
append content
<a id="btn1" href="#" data-i18n="[append]key.for.title">append after me, please!</a>
$("#btn1").localize();
set data
<a id="btn1" href="#" data-i18n="[data-someDataAttribute]key.for.content"></a>
$("#btn1").localize();