Ir para o conteúdo

Design de Tradução

Visão Geral

Esta página aborda o design do sistema de traduções.

Pacotes

As traduções são armazenadas em pacotes. Pacotes são compostos de chaves de tradução que mapeiam para traduções.

Imagem 2017 3 27 16 29 39

No Bundle descrito acima, um nome de controle ou rótulo com o valor "Customer" será traduzido para inglês (EUA), espanhol ou japonês, de acordo com o perfil do usuário.

Chave de Tradução

A Chave de Tradução é usada para procurar uma tradução. A Chave de Tradução é o texto que aparece dentro da App Builder IDE para seu aplicativo. Quando você importa chaves de tradução para seu aplicativo, App Builder extrai valores de todos os nomes de controle, rótulos, eventos e mensagens de validação.

Na maioria das vezes, a chave de tradução será idêntica à tradução padrão (inglês-EUA). No entanto, há ocasiões em que é benéfico criar uma chave "substituta" lógica para diferenciar duas traduções.

Por exemplo, digamos que você tenha dois controles com nomes idênticos em seu aplicativo - "Building":

  • Em um caso, Building se refere a uma estrutura física.
  • No outro caso, Building se refere à ação de construir uma coisa.

Embora essas duas traduções em inglês sejam equivalentes, outros idiomas podem usar palavras distintas. Por exemplo, em alemão, a palavra para construção (estrutura) é "Gebäude", enquanto a palavra para construção (ação) é "Aufbau". Para resolver esse problema, você pode inserir um nome de controle distinto, como "Building_Structure". Em seu pacote, você personalizaria a tradução em inglês da chave de tradução "Building_Structure" para "Building" e a tradução em alemão para "Gebäude".

Vinculação de Pacote de Aplicativos

Os aplicativos são vinculados a um e somente um Bundle. Quaisquer fontes de dados vinculadas a um aplicativo também se tornam vinculadas ao bundle do aplicativo. Por exemplo:

Imagem 2017 3 27 16 38 21

Um Bundle também pode ser vinculado a partir de vários aplicativos.

Imagem 2017 3 27 16 39 48

Em geral, é mais seguro ter um pacote por aplicativo. Isso se torna particularmente verdadeiro quando você vai migrar seu LP de Dev > QA > Prod. Os pacotes são empacotados com seu aplicativo em um LP e seguir a regra de um aplicativo, um pacote ajuda a evitar colisões ao instalar arquivos LP separados.

Itens Traduzidos

Os seguintes itens são atualmente manipulados pelo sistema de tradução:

  • Nomes de controle, rótulos, rótulos curtos
  • Mensagens de pré-evento, pós-sucesso, pós-falha
  • Mensagem de validação
  • Modelos
  • Colunas marcadas com suporte a traduções

Determinando o Idioma do Usuário

A linguagem dos usuários é determinada avaliando o seguinte (em ordem):

  1. App Builder configuração de idioma do perfil do usuário.
  2. $cultureId passado através da string de consultar de URL. Isso também definirá o App Builder biscoito de cultura.
  3. App Builder biscoito de cultura.
  4. O cabeçalho de solicitação Accept-Language do navegador.

Nota

Para o caso nº 4, App Builder escolherá o idioma com classificação mais alta. Não há lógica de fallback para tentar escolher o próximo melhor idioma.

Formatos de Substituição

As traduções também podem ser marcadas com um formato de substituição.

  • Padrão: O formato tentará ser determinado automaticamente com base no conteúdo da string.
  • Nenhum: Nenhuma substituição necessária
  • DotNet: O formato usa colchetes numerados para substituir parâmetros
    • Por exemplo, "O {0} a raposa pulou a cerca".
  • Handlebar: O formato usa colchetes nomeados para substituir parâmetros como nome da coluna.
    • Por exemplo, "O {AnimalColour} a raposa pulou a cerca".