53
Translation
• $.i18n.lang current language or undefined if default language is used
• $.i18n.add(ns, dictionary) adds translations to current dictionary, ns must be a unique
application name
• $.i18n.translate(key, default, vars) or $.tr(key, default, vars) translates a given key or
uses default value if translation is not found for current language. Additional vars object
can be passed to replace variables inside of translation text
Example 1
// register translation for application “myapp”
$.i18n.add('myapp', {
// translation for mylang
mylang: {
hello: 'Hello %{username}, current temperature is %{temperature}',
goodbye: 'Goodbye %{username}'
}
});
var text = $.tr('myapp.hello', 'No translation', { username: 'John', temperature: 21 });
// alerts “Hello John, current temperature is 21” if current language is “mylang”
// otherwise alerts “No translation”
alert(text);
Example 2
You can apply translation to jQuery selectors by using tr function: all HTML elements that have
tr class and data-tr-key attribute will have contents replaced with translated version
HTML:
<div id="myapp-container">
<span class="tr" data-tr-key="myapp.hello">Hello!</span>
</div>
JavaScript:
// register french translation
$.i18n.add('myapp', {
fr: {
hello: 'Bonjour!'
}
});
// apply translation to all elements inside of myapp-container
$('#myapp-container').tr();