Cada termo do glossário, texto de voz da marca, regra e configuração de modelo é armazenado em um idioma. Quando o engine processa uma solicitação de tradução, ele determina quais entradas salvas se aplicam ao idioma solicitado — fazendo correspondência com 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 vale para as quatro superfícies de configuração.
Como funciona#
Os idiomas são normalizados para uma forma canônica no momento da entrada e, depois, armazenados e retornados nesse formato. Maiúsculas, minúsculas e delimitadores são ajustados; os subtags são preservados.
| Você informa | Armazenado como |
|---|---|
EN | en |
en_US | en-US |
sr_Latn-RS | sr-Latn-RS |
zh-cn | zh-CN |
A correspondência é bidirecional na fronteira da subtag: um idioma armazenado se aplica a uma solicitação quando há correspondência exata ou quando o idioma armazenado é ancestral da solicitação. Duas grafias do mesmo idioma também correspondem quando nenhuma é ancestral da outra, mas a região define a escrita: as formas apenas com região e as qualificadas por escrita 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ãs) |
zh-CN | zh-CN, zh-Hans-CN, zh | zh-TW, zh-Hant-TW (escrita diferente) |
Herança reversa
Um de-DE armazenado atendendo a uma solicitação genérica de de é o padrão mais comum no mundo real: a maioria dos engines é configurada com códigos regionais completos, mas recebe solicitações com código-base. As duas direções são compatíveis.
Como resolver várias correspondências#
Quando mais de uma entrada armazenada se aplica, o engine faz um ranqueamento e usa a melhor:
- Correspondência exata ou padrão do idioma primeiro. Para uma solicitação
de,de-DE(a região padrão do CLDR para o alemão) tem prioridade, seguido dodegenérico. - A mais específica vem em seguida, como critério de desempate.
- Qualquer outra região correspondente continua valendo como fallback — um cliente cuja única entrada é
de-CHainda a recebe para uma solicitaçãodequando nada melhor corresponde, para que nenhuma configuração fique órfã.
| Solicitação | Preferido | Também se aplica (fallback) | Excluído |
|---|---|---|---|
de | de-DE, seguido de de | de-CH, de-AT | - |
de-DE | de-DE, seguido de de | - | de-AT, de-CH |
de-AT | de-AT, seguido de de | - | de-DE, de-CH |
Classificação x seleção#
A classificação acima define a ordem nas superfícies que combinam entradas e escolhe a vencedora nas superfícies que selecionam apenas uma:
| Superfície | O que a classificação faz |
|---|---|
| Glossário | Todo termo correspondente pode ser recuperado; a relevância semântica decide o que entra no prompt |
| Regras | Toda regra correspondente é incluída, com o idioma de melhor correspondência primeiro |
| Voz da marca | O texto com a melhor correspondência vence — um único texto de voz da marca se aplica por solicitação |
| Configurações de modelo | A melhor correspondência se torna o modelo principal; as demais formam a cadeia de fallback |
Segurança de escrita#
Uma regra extra se aplica apenas a itens de glossário custom_translation, cujo texto fica vinculado a uma ortografia específica. Um idioma base com escrita ambígua — sr (cirílica ou latina), zh (simplificada ou tradicional) — precisa definir uma escrita no momento da gravação, seja com uma escrita explícita (zh-Hans, sr-Cyrl) ou com uma região que a determine (zh-CN → simplificada, sr-RS → cirílica, segundo o CLDR). Apenas um código realmente genérico, sem escrita e sem região, é rejeitado. Na leitura, essas formas com escrita definida são equivalentes — um termo armazenado como zh-Hans-CN se aplica a uma solicitação zh-CN e vice-versa — mas uma solicitação genérica zh, cuja escrita é desconhecida, não recupera uma entrada com escrita definida. Envie uma escrita ou região explícita para ter resultados previsíveis. Idiomas com uma única escrita, como de, não precisam de escrita e resolvem de para de-DE normalmente. Itens non_translatable passam independentemente da escrita.
Exemplo#
Um engine configurado com códigos regionais (en-US para fr-FR, de-DE, nb-NO) recebendo solicitações com código-base (fr, de, no):
- Um destino
frherda os termos do glossário, o texto de voz da marca e as regras defr-FR— classificados como padrão defr, não como último recurso — porquefr-FRé a região padrão do CLDR para o francês. - Uma origem
encorresponde a entradasen-US— a correspondência é bidirecional. - Um destino
nonão herdanb-NO.noenbsão subtags de idioma diferentes, não um par regional; usenbcomo destino.
Usando a resolução de idioma com a API#
A resolução acontece automaticamente quando você chama o endpoint localize. O engine relaciona o sourceLocale e o targetLocale da solicitação aos termos do glossário, textos de voz da marca, regras e configurações de modelo aplicáveis — sem precisar de parâmetros adicionais.
