Histórico da Página
...
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
{{ 'label-to-translate' | i18n }} |
Quando necessário utilizar o filtro programaticamente, é recomendado que este seja linkado ao $rootScope do AngularJS para que seja acessível de qualquer ponto do aplicativo. Utilizando a implementação da aplicação de referencia, basta no index.js ao fazer o bootstrap da aplicação, após já ter realizado o registro do filtro de internacionalização, adicionar a referencia ao $rootScopt conforme exemplo:
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
app.run(['$rootScope', '$filter', function ($rootScope, $filter) {
// Adiciona o filtro de i18n, caso exista, ao $rootScope para facilitar o acesso
// ao mesmo programaticamente.
if ($filter('i18n')) {
$rootScope.i18n = $filter('i18n');
}
}]); |
Tendo adicionado o link do filtro ao $rootScope atraves do alias 'i18n', basta injetar o $rootScope ao AngularJS Controller ou AngularJS Service e acessar a função da seguinte maneira:
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
sampleService.$inject = ['$rootScope'];
function sampleService($rootScope) {
this.label = $rootScope.i18n('label-to-translate');
} |
- Link para o demo ?!
...
- ??
Definição
Cada produto é livre para definir a forma como irá gerenciar suas traduções. No entanto, o TOTVS | HTML Framework confia que o AngularJS Filter seja registrado com o alias de i18n e que receba como parâmetro a palavra ou código a ser traduzido.