Jak testovat vícejazyčný web: jazyky, měny, data, URL a náhradní obsah
Vícejazyčný web není jen stejná stránka s jinými slovy. Změna jazyka může ovlivnit nabídku plateb, formát data, měnu, adresu stránky i prostor potřebný pro text. Následující postup ukazuje, jak tyto rozdíly ověřit společnými automatizovanými scénáři, aniž by pro každý jazyk vznikla samostatná kopie celé sady.
Proč samostatné kopie testů přestávají fungovat
Představte si nákupní scénář v češtině, slovenštině a angličtině. Pokud tým vytvoří tři soubory se stejnými kroky, musí každou změnu nákupního procesu provést třikrát. Jedna verze brzy používá nový způsob dopravy, druhá zůstane na staré obrazovce a třetí se sice spustí, ale ověřuje jiný výsledek.
Další chyba vzniká při záměně jazyka za region. Angličtina pro Spojené království může mít jinou měnu, časové pásmo a formát data než angličtina pro Spojené státy. Locale proto znamená dohodnutou kombinaci jazykových a regionálních pravidel, ne pouze nápis v přepínači.
Jeden scénář, několik řízených konfigurací
Oddělte obchodní logiku od lokalizovaných dat
Kroky objednávky a očekávaný obchodní výsledek udržujte na jednom místě. Jazyk, region, měnu, očekávanou URL a nezbytné textové hodnoty předejte scénáři jako konfiguraci. Stejný test tak pracuje s různými vstupy, ale jeho význam zůstává společný.
Ovládací prvky vyhledávejte podle stabilního významu nebo dohodnutého testovacího identifikátoru. Selektor závislý na českém textu „Pokračovat“ po přepnutí jazyka selže, přestože aplikace funguje. Další podmínky stabilního scénáře shrnuje článek o tom, jak připravit web na automatizované testy.
Co ověřit pro každé locale
- Volbu a zachování jazyka: přepínač nastaví správnou variantu a volba se podle pravidel produktu zachová po obnovení stránky, přihlášení nebo přechodu do dalšího kroku.
- Čísla, měny a data: test použije pevnou vstupní hodnotu a očekávání odvodí z pravidel daného locale. Unicode CLDR popisuje regionální konvence pro data, časy, čísla a symboly měn; konkrétní aplikace však stále potřebuje vlastní produktová pravidla.
- URL a navigaci: jazykový segment, doména nebo parametr musí odpovídat zvolené variantě také po interním odkazu, přesměrování a návratu zpět. Předem určete i chování neexistující lokalizované adresy.
- Unicode a rozložení: použijte jména s diakritikou, delší texty a pro podporované trhy také jiná písma či směr zápisu. Ověřte, že obsah nepřekryje tlačítko, tabulka se nerozbije a uložená hodnota se vrátí beze změny.
- Náhradní obsah (fallback): pokud překlad nebo celé locale chybí, aplikace má použít určený náhradní jazyk nebo zobrazit řízenou chybu. Interní klíč překladu ani prázdný nadpis nejsou přijatelným výsledkem.
Playwright umí emulovat locale a časové pásmo v kontextu prohlížeče. Samotná emulace ale nemusí přepnout aplikaci, pokud jazyk určuje URL, uživatelský účet, cookie nebo serverová hlavička. Test proto nastaví stejné vstupy jako skutečný produkt a až potom ověří výsledek.
Matici sestavte podle rizika
V primárním locale může při změnách běžet širší sada. V dalších jazycích pravidelně ověřujte kritické cesty a cílené rozdíly, například adresní formulář, měnu nebo rozložení zprava doleva. Stejně jako při volbě prohlížečů má rozsah vycházet z používání, podporovaných trhů a dopadu chyby.
Krátký základní vícejazyčný test lze zařadit do vhodné fáze CI/CD. Širší matice může běžet v noci nebo před releasem, aby neprodlužovala každou drobnou změnu.
Kde automatizace končí
Funkční test odhalí chybějící text, nesprávnou měnu, rozbitou URL nebo text přetékající z ovládacího prvku. Neposoudí přirozenost překladu, vhodnost tónu ani kulturní význam formulace. Jazyková korektura a SEO audit lokalizovaných stránek včetně kontroly atributu hreflang a indexace jsou samostatné činnosti.
Co tím získáte
- Jeden udržovaný scénář místo několika rozcházejících se kopií.
- Kontrolu obchodního výsledku i regionálních rozdílů.
- Přiměřenou matici založenou na používání a riziku.
- Jasnou hranici mezi funkčním testem, jazykovou kontrolou a SEO.
Další krok
Sepište podporované kombinace jazyka a regionu. U každé doplňte kritickou cestu, měnu, formát data, podobu URL a očekávaný fallback. Z těchto údajů pak vytvořte první společný scénář a spusťte jej nad malou maticí zvolenou podle rizika.