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. Os pacotes são compostos por chaves de tradução que são mapeadas para traduções.
No Bundle descrito acima, um nome de controle ou rótulo com o valor “Cliente” 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 pesquisar uma tradução. A chave de tradução é o texto que aparece no Vinyl IDE do seu aplicativo. Quando você importa chaves de tradução para seu aplicativo, o Vinyl obtém 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 lógica "substituta" para diferenciar duas traduções.
Por exemplo, digamos que você tenha dois controles com nomes idênticos em seu aplicativo - "Construção":
- Num caso, Edifício refere-se a uma estrutura física.
- No outro caso, Construir refere-se à ação de construir uma coisa.
Embora estas duas traduções em inglês sejam equivalentes, outras línguas 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". No 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 do Pacote de Aplicativos¶
Os aplicativos estão vinculados a um e apenas um pacote. Quaisquer fontes de dados vinculadas a um aplicativo também serão vinculadas ao pacote configurável do aplicativo. Por exemplo:
Um pacote também pode ser vinculado a vários aplicativos.
Em geral, é mais seguro ter um pacote por aplicativo. Isso se torna particularmente verdadeiro quando você migra seu LP de Dev > QA > Prod. Os pacotes são empacotados com seu aplicativo em um LP e seguindo 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 tratados pelo sistema de Tradução:
- Controlar nomes, rótulos, rótulos curtos
- Mensagens pré, pós-sucesso e pós-falha do evento
- Mensagem de validação
- Modelos
- Colunas marcadas suportam traduções
Determinando o Idioma do Usuário¶
O idioma dos usuários é determinado avaliando o seguinte (em ordem):
- Configuração de idioma do perfil do usuário do Vinyl.
$cultureId
passado por meio da string de consultar do URL. Isso também definirá o cookie da cultura do Vinyl.- Biscoito de cultura de Vinyl.
- O cabeçalho da solicitação Accept-Language do navegador.
Nota
Para o caso #4, o Vinyl escolherá o idioma com melhor classificação. Não há lógica alternativa para tentar escolher o próximo melhor idioma.
Formatos de Substituição¶
Da mesma forma, as traduções 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 ex. "O
{0}
raposa pulou a cerca".
- Por ex. "O
- Guiador: o formato usa colchetes nomeados para substituir parâmetros como o nome da coluna.
- Por ex. "O
{AnimalColour}
raposa pulou a cerca".
- Por ex. "O