Internacionalização com RealizeJS
A implementação do i18n é mais uma das diversas funcionalidades do RealizeJS. Abaixo será apresentado suas propriedades e funções. Caso queira ver diretamento do código-fonte, acesse o arquivo i18n.js.
Propriedades
locales Object
currentLocale String
Onde define a atual localização do sistema.
default: 'en'
Funções
registerLocale Function
Adiciona ou sobrescreve o objeto de propriedades uma determinada localização da propriedade locales. Recebe um objeto de propriedades de localização e seu local (ex.: 'en-US').
registerLocale: function(newLocaleObj, locale) {
if(!$.isPlainObject(newLocaleObj)) {
throw 'Invalid Locale Object.'
}
if(!locale) {
throw 'Invalid Locale Name.';
}
var currentLocaleObj = this.locales[locale] || {};
this.locales[locale] = $.extend(true, {}, currentLocaleObj, newLocaleObj);
}
setLocale Function
Recebe o novo local da aplicação e altera a currentLocale.
setLocale: function(locale) {
this.currentLocale = locale;
}
translate Function
Recebe a chave do recurso e um booleano para sinalizar se é ou não para lançar exceção. Busca na propriedade locales (na localização atual) o recurso através da chave recebida como parâmetro.
translate: function(key, throwsException) {
if(throwsException === undefined) {
throwsException = false;
}
if(typeof key !== "string") {
if(throwsException) {
throw 'Key is not a string';
}
return '';
}
var currentLocale = this.currentLocale;
var localeObj = this.locales[currentLocale];
var translation = utils.getProp(key, localeObj);
if(!translation) {
if(throwsException) {
throw 'Key not found in locale object';
}
translation = key;
}
return translation;
}
t Function
Foi disponibilizado essa função com o proposito de facilitar no desenvolvimento. Retorna uma chamada a função translate e assim como ela, recebe a chave do recurso e um booleano .
t: function(key, throwsException) {
return this.translate(key, throwsException);
}