Cada termo do glossário, texto de voz da marca, regra e configuração de modelo é armazenado para um idioma. Quando o motor processa um pedido de tradução, determina que entradas armazenadas se aplicam ao idioma do pedido — fazendo corresponder códigos exatos, herdando entre variantes regionais e recorrendo a fallback quando não existe uma entrada exata. A mesma lógica de resolução aplica-se às quatro superfícies de configuração.
Como funciona#
Os idiomas são normalizados para uma forma canónica à entrada e depois armazenados e devolvidos nesse formato. As maiúsculas/minúsculas e os delimitadores são corrigidos; os subtags são preservados.
| Introduz | Armazenado como |
|---|---|
EN | en |
en_US | en-US |
sr_Latn-RS | sr-Latn-RS |
zh-cn | zh-CN |
A correspondência é bidirecional entre subtags — um idioma armazenado aplica-se a um pedido quando um é uma correspondência exata ou um ancestral do outro. Duas grafias do mesmo idioma também correspondem quando nenhuma é ancestral da outra, mas a região determina a escrita: as formas apenas com região e as formas com escrita explícita são equivalentes (zh-CN ≡ zh-Hans-CN, zh-TW ≡ zh-Hant-TW).
| Armazenado | Aplica-se a | Não se aplica a |
|---|---|---|
de | de, de-DE, de-AT, de-CH | - |
de-DE | de-DE, de | de-AT, de-CH (irmãos) |
zh-CN | zh-CN, zh-Hans-CN, zh | zh-TW, zh-Hant-TW (escrita diferente) |
Herança inversa
Um de-DE armazenado que responde a um pedido genérico de de é o padrão mais comum no mundo real: a maioria dos motores está configurada com códigos regionais completos, mas recebe pedidos com o código base. Ambos os sentidos são suportados.
Resolução entre várias correspondências#
Quando se aplica mais do que uma entrada armazenada, o motor ordena-as e utiliza a melhor:
- Correspondência exata ou predefinição do idioma em primeiro lugar. Para um pedido
de,de-DE(a região predefinida do CLDR para alemão) é preferido, seguido dedesem região. - A mais específica vem a seguir, como critério de desempate.
- Qualquer outra região correspondente mantém-se como fallback — um cliente cuja única entrada é
de-CHcontinua a recebê-la para um pedidodequando não há correspondência melhor, para que a configuração nunca fique órfã.
| Pedido | Preferido | Também se aplica (fallback) | Excluído |
|---|---|---|---|
de | de-DE, depois de | de-CH, de-AT | - |
de-DE | de-DE, depois de | - | de-AT, de-CH |
de-AT | de-AT, depois de | - | de-DE, de-CH |
Ordenação vs. seleção#
A ordenação acima define a sequência das superfícies que combinam e o vencedor das superfícies que escolhem apenas uma:
| Superfície | O que a ordenação faz |
|---|---|
| Glossário | Todos os termos correspondentes podem ser recuperados; a relevância semântica decide o que entra no prompt |
| Regras | Todas as regras correspondentes são incluídas, com o idioma de melhor correspondência em primeiro lugar |
| Voz da marca | Ganha o único texto com melhor correspondência — aplica-se um texto de voz da marca por pedido |
| Configurações de modelo | A melhor correspondência torna-se o modelo principal; as restantes formam a cadeia de fallback |
Segurança de escrita#
Há uma regra adicional que se aplica apenas aos itens do glossário custom_translation, cujo texto está associado a uma ortografia específica. Um idioma base com escrita ambígua — sr (cirílica ou latina), zh (simplificada ou tradicional) — tem de especificar uma escrita ao gravar, seja como escrita explícita (zh-Hans, sr-Cyrl) ou como uma região que a determine (zh-CN → simplificada, sr-RS → cirílica segundo o CLDR). Só um código verdadeiramente simples, sem escrita e sem região, é rejeitado. Na leitura, estas formas especificadas são equivalentes — um termo armazenado como zh-Hans-CN aplica-se a um pedido zh-CN e vice-versa — mas um pedido simples zh, cuja escrita é desconhecida, não recupera uma linha especificada com escrita, por isso envie uma escrita ou região explícita para obter resultados previsíveis. Idiomas com uma única escrita, como de, não precisam de escrita e resolvem de para de-DE normalmente. Os itens non_translatable passam sempre, independentemente da escrita.
Exemplo#
Um motor configurado com códigos regionais (en-US para fr-FR, de-DE, nb-NO) que recebe pedidos com o código base (fr, de, no):
- Um destino
frrecupera os termos do glossário, o texto de voz da marca e as regras defr-FR— classificados como a predefinição parafr, e não como último recurso, porquefr-FRé a região predefinida do CLDR para francês. - Uma origem de
encorresponde a entradasen-US— a correspondência é bidirecional. - Um destino
nonão herdanb-NO.noenbsão subtags de idioma diferentes, não um par de regiões; usenbcomo destino.
Usar a resolução de idiomas com a API#
A resolução acontece automaticamente quando chama o endpoint localize. O motor faz corresponder o sourceLocale e o targetLocale do pedido aos termos do glossário, textos de voz da marca, regras e configurações de modelo aplicáveis — não são necessários parâmetros adicionais.
