Každá položka glosáře, hlas značky, instrukce i konfigurace modelu je uložená pro konkrétní jazyk. Když engine zpracovává požadavek na překlad, určí, které uložené položky se na jazyk požadavku vztahují – porovná přesné kódy, dědí napříč regionálními variantami a sáhne po fallbacku, když přesná položka neexistuje. Stejné rozhodování platí pro všechny čtyři konfigurační vrstvy.
Jak to funguje#
Jazyky se při vstupu normalizují do kanonické podoby a v té se pak ukládají i vracejí. Opraví se velikost písmen i oddělovače, podznačky ale zůstávají zachované.
| Zadáte | Uloží se jako |
|---|---|
EN | en |
en_US | en-US |
sr_Latn-RS | sr-Latn-RS |
zh-cn | zh-CN |
Shoda funguje obousměrně přes hranici podznaček – uložený jazyk se na požadavek použije tehdy, když jde o přesnou shodu nebo když je jeden nadřazený druhému.
| Uloženo | Použije se pro | Nepoužije se pro |
|---|---|---|
de | de, de-DE, de-AT, de-CH | - |
de-DE | de-DE, de | de-AT, de-CH (sourozenecké regiony) |
Obrácené dědění
Uložené de-DE, které odpovídá na obecný požadavek de, je v praxi nejčastější scénář: většina enginů je nakonfigurovaná s plnými regionálními kódy, ale přijímá požadavky se základními kódy. Podporované jsou oba směry.
Jak se rozhoduje mezi více shodami#
Když se použije víc než jedna uložená položka, engine je seřadí a vezme tu nejlepší:
- Nejdřív přesná nebo výchozí jazyková varianta. Pro požadavek
dese upřednostníde-DE(výchozí region podle CLDR pro němčinu), potom obecnéde. - Pak ta nejkonkrétnější jako rozhodující kritérium při rovnosti.
- Jakýkoli jiný odpovídající region zůstává jako fallback – zákazník, jehož jediná položka je
de-CH, ji pořád dostane i pro požadavekde, když se nic lepšího neshoduje, takže konfigurace nikdy nezůstane bez využití.
| Požadavek | Preferováno | Také se použije (fallback) | Vyloučeno |
|---|---|---|---|
de | de-DE, potom de | de-CH, de-AT | - |
de-DE | de-DE, potom de | - | de-AT, de-CH |
de-AT | de-AT, potom de | - | de-DE, de-CH |
Bezpečnost skriptu#
Jedno další pravidlo platí jen pro položky glosáře custom_translation, jejichž text je vázaný na konkrétní pravopisný systém. Základní jazyk s nejednoznačným písmem – sr (cyrilice nebo latinka), zh (zjednodušená nebo tradiční čínština) – musí při zápisu určit i skript (sr-Cyrl, sr-Latn, zh-Hans, zh-Hant). Jazyky s jediným písmem, jako de, skript nepotřebují a běžně vyhodnocují de na de-DE. Položky non_translatable procházejí bez ohledu na skript.
Příklad#
Engine nakonfigurovaný pomocí regionálních kódů (en-US až fr-FR, de-DE, nb-NO) přijímá požadavky se základními kódy (fr, de, no):
- Cíl
frpřevezme glosář, hlas značky a instrukce zfr-FR– jsou vyhodnocené jako výchozí profr, ne jako poslední možnost, protožefr-FRje výchozí region podle CLDR pro francouzštinu. - Zdroj
enodpovídá položkámen-US– shoda je obousměrná. - Cíl
nonepřevezmenb-NO.noanbjsou různé jazykové podznačky, ne dvojice regionů; jako cíl použijtenb.
Použití rozhodování jazyků s API#
K vyhodnocení dochází automaticky při volání endpointu localize endpoint. Engine porovnává sourceLocale a targetLocale v požadavku s uloženými glosáři, hlasy značky, instrukcemi a konfiguracemi modelů – nejsou potřeba žádné další parametry.
