Internacionalização

Os serviços de internacionalização estão disponíveis para ajudá-lo a construir aplicações e publicá-las em qualquer idioma ou localização.

Você pode traduzir mensagens em seus serviços, formulários, páginas ou scripts. Além disso, diversas formatações estão disponíveis para campos de data e números.

Labels (Legendas)

O suporte a internacionalização é baseado em Labels(ou legendas), cada label tem uma chave e traduções para essa mesma chave. Exemplo:

message.session.expired=Sua sessão expirou, por favor, efetue o login novamente.

Tradução (back-end)

Para traduzir a sua Label pelos Scripts. Utilize a biblioteca inpaas.core.l10n.

var text = require("inpaas.core.l10n").translate("message.session.expired");

Também é possível utilizar um idioma específico para a tradução, usando a sintaxe withLanguage().

var text = require("inpaas.core.l10n").withLanguage("pt").translate("message.session.expired");

Coringas

Você pode criar traduções customizáveis com argumentos!

var name = "João";
var text = require("inpaas.core.l10n").translate("label.sayhello", name);

Ao criar uma label com a chave label.sayhello e o seguinte valor:

Olá, {0}

A mensagem será traduzida para

Olá, João

O coringa pode ser dinâmico, inclusive usando estilos de formatação:
{ ArgumentIndex }
{ ArgumentIndex, FormatType }
{ ArgumentIndex, FormatType, FormatStyle }

O argumento FormatType é padrão(number, date, time). A sintaxe de FormatStyle irá variar, dependendo do tipo.

Exemplos:

  • Olá, {0}!
  • O preço é $ {0,number,#.##}
  • Hoje é {0,date,dd/MM/yyyy}

Formatação (formatter)

O módulo de formatação também está disponível na biblioteca padrão. Todos os formatos já estão localizados baseados em idioma.

Você pode alterar os formatos, mas isso é tópico de outra discussão.

Para usar a formação, use a biblioteca inpaas.core.l10n. Veja os exemplos:

require("inpaas.core.l10n").getFormatter("fieldformat.datetime").format(new java.util.Date())

Isso irá retornar a data no formato local: 31/10/2016 15:53

Veja a tabela de formatos abaixo:

Formatos

fieldformat.date

Data

To format your date into a readable format(mm/dd/yyyy).

fieldformat.datetime

Data e Hora com Minutos

To format a date and time into a readable format with minute precision(mm/dd/yyyy hh:mm);

fieldformat.fulldatetime

Data e Hora com Segundos

To format a date and time into a complete format with second precision(mm/dd/yyyy hh:mm:ss);

fieldformat.time

Hora e Minutos

To format a date into a time format only (hh:mm)

fieldformat.currency

Moeda

To format a decimal number into a currency format and grouping(millenar) separator, without the currency sign.

fieldformat.decimal

Decimal

To format a decimal number into a decimal format without grouping(millenar) separation.

fieldformat.integer

Inteiro

To format a number into an integer format (wipe decimal and no grouping separation).

Modelos

Você pode traduzir as labels nos seus modelos usando a sintaxe abaixo:

<body>
    <h1>{{translate 'label.pagetitle'}}</h1>
 
    <div class="content">
        {{& translate 'label.pagecontent'}}
    </div>
</body>

AngularJS - Módulo 'Localization'

Para usar o módulo Localization você deve injetá-lo usando o conceito de dependências.

angular.module("my-app", [ "ngRoute", "ui.bootstrap", "Localization" ]);

Filter

Os filtros estão disponíveis para serem usados direto do HTML:

<body>
    <h1>{{'label.pagetitle' | translate}}</h1>
 
    <div class="content">
        ...
    </div>
</body>

❗️

Modelos > Filtros

Usar a tradução em seu modelo HTML é recomendado ao invés de usar os filtros.

Service

Um serviço está disponível e pode ser usado através de um Controller, por exemplo:

angular
    .module("my-app", [ "Localization" ])
    .controller("NavController", [ '$scope', '$rootScope', '$l10n',
        function($scope, $rootScope, $l10n) {
                // Controller code ...
            var text = $l10n.translate("label.my-label");
     
        }
    ]);

Essa biblioteca está disponível em /static/resources/l10n.js.

Updated 4 years ago

Internacionalização


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.