Největší nepřítel lokalizace? UI, které nezvládne jiný jazyk
14 min.
před 3 týdny
Autor: Petr Poláček, Vojtěch Schubert

Přetékající texty, rozpadlé nabídky, nápisy namačkané do tlačítek a text zapečený přímo v obrázcích. Když se lokalizace pokazí, občas není chyba v překladu, ale ve špatně připraveném uživatelském rozhraní.
Nejviditelnější lokalizační problém často nevznikne v překladu, ale ještě předtím. Ve chvíli, kdy tvůrci navrhnou rozhraní, které ve skutečnosti počítá jen s angličtinou. V původní anglické verzi hry všechno sedí. Text v tlačítkách je na šířku i výšku zarovnaný, titulky jakbysmet, všechna možná nastavení působí přehledně. Pak ale přijdou další jazyky. Němčina, francouzština, čeština, arabština, japonština a další. A ukáže se, že rozhraní nebylo připravené na lokalizaci, ale jen na výměnu anglických slov za jiná, stejně dlouhá slova. Takto ale lokalizace ve vztahu k UI nefunguje a jedná se zejména i problém internacionalizace.
A co že je to ta internacionalizace? Jde o proces návrhu produktů, služeb nebo softwaru tak, aby je bylo možné snadno přizpůsobit různým jazykům, regionům a kulturním zvyklostem bez nutnosti pozdějších technických úprav. Slouží jako základní rámec pro lokalizaci – tedy samotný překlad a adaptaci pro konkrétní místní trh.
Angličtina se baví, ostatní brečí v koutě
Angličtina je pro návrh rozhraní zrádně pohodlná. Mnoho běžných herních výrazů je krátkých: Play, Save, Load, Quit, Map, Shop. Když se podle nich navrhne menu přesně „na tělo“, vznikne něco, co působí úhledně jen do chvíle, než se začne překládat.
Máme tu příklad z rozhraní Flickru. Anglické „views“ mělo ve francouzštině a portugalštině zhruba 2,6násobnou délku, v němčině 2,8násobnou a v italštině dokonce trojnásobnou. Právě krátké popisky bývají nejrizikovější, protože je tvůrci často doslova vtěsnají do tlačítek, záložek nebo úzkých sloupců bez jakékoli rezervy.
Překlad pak může být zcela správný, ale zkrátka se nikam nevejde. V praxi se podobná situace někdy řeší „kreativitou“ v překladu. Věta se zkrátí, přesnější výraz se nahradí obecnějším, část významu se potlačí, aby se text vešel do tlačítka nebo panelu. Navenek je vše v pořádku. Nic nepřetéká. Jenže lokalizace už nehledá nejlepší možné řešení, ale nejkratší přijatelné. A to je rozdíl, který hráč nemusí vědomě pojmenovat, ale může ho pocítit v rámci srozumitelnosti celé hry.
Slovo v pase zlomené
Některé jazyky UI neprověří nejen delší větou, ale také dlouhým slovním celkem, který se v úzkém prostoru špatně láme. Typickým příkladem je němčina. Anglické „Input processing features“ se může změnit na „Eingabeverarbeitungsfunktionen“, tedy „funkce zpracování vstupu“. Anglickou frázi lze rozdělit na několik slov. Německá složenina se chová jako jeden dlouhý blok, který snadno přeteče přes tlačítko, záložku nebo úzký informační pruh.
Němčina v tom není sama. Často se zmiňují finština a nizozemština, které rovněž vytvářejí dlouhá složená slova. Finské „asiakaspalautejärjestelmä“ znamená „systém zákaznické zpětné vazby“. Jde o výraz, který by angličtina přirozeně rozložila do několika slov. Pro rozhraní je podstatné, že se podobný celek nemusí dát elegantně rozdělit přesně tam, kde návrh obrazovky potřebuje. Ve hrách se to netýká jen nastavení. Stejně snadno se rozbije název schopnosti, kategorie v inventáři, označení herního režimu nebo text v potvrzovacím okně.
Květnatý jazyk se s UI nekamarádí
Někdy se ale UI nerozpadne vizuálně, protože se zašmodrchá jazyk. Často se tak děje v segmentech, kde hra znovu používá jeden krátký anglický výraz na mnoha místech v řadě různých situací nebo skládá věty s ohledem na konkrétní význam v dané situaci.
Anglické „Enabled“ může fungovat téměř kdekoli. V češtině ale záleží, zda je „povolený“ režim, „zapnutá“ funkce či možnost nebo „povolené“ nastavení. Jeden univerzální překlad najednou ani zdaleka nestačí a znamená to, že vývojáři musejí vytvořit víc než jen jeden string, který by pokryl všechny výskyty a hlavně gramatické varianty, které angličtina prostě nemá.
Podobně problematické je skládání vět z kusů typu „Press {button} to“ + „open“. Angličtina to ještě snese. Čeština, polština nebo jiné slovanské jazyky potřebují pracovat s celou větou, slovosledem a pády.
Řešení přitom existuje dávno předtím, než se texty pošlou na překlad. Buď se na různé jazykové potřeby myslí už při prvním návrhu UI, nebo lze rozhraní včas otestovat pomocí pseudolokalizace. Podle dokumentace Unity dokáže pseudolokalizace odhalit nedostatek místa, řetězce zadané natvrdo i texty sestavené způsobem, který se po překladu špatně skládá.
Začátek na konci
Například arabština a hebrejština znamenají nejen čtení zprava doleva (RTL), ale přinášejí také dvě odlišné výzvy. První z nich představuje obousměrný (bidi) text: text psaný zprava doleva (RTL) se běžně míchá s čísly, názvy v latince a technickými řetězci, které se stále čtou zleva doprava, takže správné zpracování bidi textu je naprostou nutností všude, kde se text objeví, a to bez ohledu na rozvržení.
Druhou výzvou je směr rozvržení. U softwaru a webových stránek vyžadují pokyny k platformám společností Microsoft, Apple a Google zrcadlení rozhraní: nabídky, posuvníky a navigace se převrátí tak, aby odpovídaly směru čtení, zatímco směrově neutrální ikony zůstávají na svém místě. Ve hrách se praxe liší, mnoho nadpisů si zachovává původní rozvržení a text se lokalizuje v rámci něj, a podle zkušeností našeho arabského týmu dává mnoho bilingvních hráčů čtoucích zprava doleva přednost přesně tomuto řešení.
Ať tak či onak, směr každého prvku by měl být záměrným designovým rozhodnutím ověřeným s rodilými hráči nebo experty, nikoli pouhým mechanickým překlopením.
Hej, znaku, mazej na konec řádku!
Japonština a čínština mohou na první pohled působit méně nebezpečně, protože překlad často zabere méně znaků než angličtina. Jenže počet znaků není totéž co správné zalamování. Tyto jazyky neoddělují slova mezerami stejným způsobem jako evropské jazyky a řídí se vlastními pravidly pro to, co smí stát na začátku nebo na konci řádku. V japonštině se těmto omezením říká kinsoku shori.
Výsledek může být zrádný. Text nikde nepřetéká, ale pro rodilého čtenáře se láme neobratně a dobrý dojem z lokalizace (a hráčská imerze) je rázem zkažen. Nejvíc je to vidět v úzkých popisech předmětů, v nápovědě nebo v přehledech úkolů.
Bojíte se výšek? Měli byste…
Rozhraní se často testuje podle toho, zda se text vejde vodorovně. Jenže některé jazyky potřebují více prostoru i směrem nahoru a dolů. Dobrým příkladem je vietnamština. Používá latinku, ale s bohatou a často vrstvenou diakritikou. U některých znaků se tak nad základním písmenem skládá více znamének. Podle doporučení Google Fonts právě tyto kombinace vyžadují pečlivou práci s vertikálním prostorem a podobou diakritiky.
Pro UI to znamená jediné. Nestačí ověřit, že se překlad vejde do šířky. Pokud má tlačítko, popisek nebo řádek příliš utaženou výšku, text může působit namačkaně, narážet do sousedního řádku nebo se jeho horní části začnou ořezávat. Podobný problém pak snadno vznikne i tehdy, když zvolený font s daným jazykem sice formálně počítá, ale není pro něj dobře připravený.
Vypečené obrázky
Samostatnou kapitolou je text v grafice, v lokalizační praxi často označovaný jako text-in-art. Jde o text, který není běžným lokalizovatelným řetězcem, ale je přímo součástí obrázku. Může jít o tutoriálovou obrazovku, banner k in-game události, plakát ve scéně, obrázek s ovládáním nebo stylizovaný nápis v menu.
V anglické verzi s tím není problém, protože daná grafika v angličtině vznikala. Při lokalizaci se ale z jedné grafiky stává sada jazykových variant, které je potřeba vyrobit, nasadit, zkontrolovat a později znovu opravovat při každé změně. Microsoft výslovně připomíná, že lokalizace se netýká jen textů, ale také obrázků a dalších vizuálních prostředků.
To neznamená, že grafika s textem nemá ve hrách místo. Pokud ale má hráč text opravdu přečíst, pochopit a podle něj se zachovat, bývá bezpečnější zobrazit ho jako běžný lokalizovatelný text, než ho zapéct přímo do grafického podkladu. I když to znamená další práci pro skriptéry a programátory.
Za chyby se platí časem i penězi
Špatně připravené UI nekazí jen zážitek z hraní. Znamená i vyšší náklady. Když se těsně před vydáním zjistí, že překlady přetékají nebo se rozhraní různě rozpadá v několika jazycích (viz výše), obvykle nestačí jen nějak upravit text. Do opravy vstupují překladatel, lokalizační tester, designér a osoby odpovědné za implementaci, vytvoření nového buildu apod.
Opět jsme u pseudolokalizace, protože včasné odhalení podobných problémů šetří logicky čas i peníze. Úpravy textu a rozvržení totiž proběhnou ještě před odesláním obsahu na překlad.
Stačí modelový příklad. Deset obrazovek, které po lokalizaci potřebují upravit. Dvě hodiny práce mezi designem a implementací na každou z nich. To je dvacet hodin. Přidejme opakovanou kontrolu ve čtyřech jazycích a z „několika přetékajících textů“ je snadno čtyřicet hodin práce navíc pro řadu osob. Není to univerzální ceník, ale dobře ukazuje, jak rychle se drobný přešlap v návrhu rozhraní změní v reálný výrobní, a tím pádem i finanční zásek.
Konzole jsou jiná liga
U konzolových verzí je celé téma ještě citlivější. Veřejná dokumentace Xboxu, Sony i Nintenda ukazuje, že lokalizovat lze nejen texty ve hře, ale také název titulu, popisy, loga, úvodní obrazovky a další prostředky navázané na jazyk uživatele nastavený v zařízení. Pokud se pozdě ukáže (obvykle během prvních kol testování na straně majitele platformy), že lokalizovaná varianta nesedí, nejde vždy o rychlou úpravu jedné věty, ale o zásah do celé přípravy verze k vydání.
A to pak může být drahé. Může to posunout vydání. A někdy to znamená zcela nekoncepční překopání jednotlivých obrazovek v rámci UI.
Dobré UI proto není jen to, které funguje v angličtině. Dobré UI je připravené na to, že jiný jazyk bude delší, vyšší, bude se jinak lámat, číst opačným směrem nebo bude potřebovat jinou stavbu věty. Lokalizace ve spolupráci s QA a designéry pak nemusí zachraňovat design, který s dalšími jazyky nepočítal. Může dělat to, co má. Pomoci hře působit přirozeně v každém podporovaném jazyce.
Potřebujete pomoct?
Ať už se připravujete na mezinárodní lokalizované vydání vaší další hry, nebo potřebujete poradit ohledně osvědčených postupů při vývoji, ozvěte se nám. Velmi rádi pomůžeme!
Zdroje
Text size in translation
https://www.w3.org/International/articles/article-text-size.en.htmlPseudo-Localization | Unity Localization
https://docs.unity3d.com/Packages/com.unity.localization@1.2/manual/Pseudo-Localization.htmlTest your app with pseudolocales | Android Developers
https://developer.android.com/guide/topics/resources/pseudolocalesMirroring | Microsoft Globalization
https://learn.microsoft.com/en-us/globalization/fonts-layout/mirroringUser Interface Layout | Microsoft Globalization
https://learn.microsoft.com/en-us/globalization/fonts-layout/interface-layoutInline markup and bidirectional text in HTML | W3C
https://www.w3.org/International/articles/inline-bidi-markup/Line breaking rules in East Asian languages
https://en.wikipedia.org/wiki/Line_breaking_rules_in_East_Asian_languagesDiacritic marks | Google Fonts Guide
https://googlefonts.github.io/gf-guide/diacritics.htmlVertical metrics | Google Fonts Guide
https://googlefonts.github.io/gf-guide/metrics.htmlLocalization of packaged resources | Xbox GDK
https://learn.microsoft.com/en-us/xbox/gdk/docs/gdk-dev/game-principles/localization/localization_of_packaged_resourcesMicrosoftGame.config localization | Xbox GDK
https://learn.microsoft.com/en-us/xbox/gdk/docs/features/common/game-config/microsoftgameconfig-localizationLocalize your app | Android Developers
https://developer.android.com/guide/topics/resources/localization