Radek Musil
About meSkills
Services
My Projects
AI news
Contact me
Zpět na slovník

i18n (lokalizace)

Frontend a UXi18n (localization)

Také známo jako Internationalization, Lokalizace, i18n

Stručně

Připravit aplikaci na více jazyků — a v češtině konkrétně tvary 1 / 2–4 / 5+ a datum jako 2. 11. 2026.

Internacionalizace znamená oddělit texty, formátování a layout od kódu, aby šla aplikace přeložit bez zásahu do něj. Lokalizace je samotný překlad i pravidla kolem něj: jaký jazyk, jaká měna, jaký formát data a v jakých regionech se má web zobrazovat.

Čeština má tři tvary množného čísla

Angličtina potřebuje „1 item / 2 items“, čeština „1 položka / 2 položky / 5 položek“. Pravidlo je 1, potom 2–4 a od pěti dál, a platí pro ceny, počty kusů v košíku, počty dnů v odhadu doručení i pro každý badge na webu. Klasická chyba je napevno zapsané `count + " položek"`, které v košíku, kam se nikdo nepodíval, vyrobí „1 položek“.

Používejte platformu, ne řetězy if-else: `Intl.PluralRules` s lokalizací `cs` vrátí kategorii a ICU formát zpráv (i18next, FormatJS/`react-intl` nebo next-intl) nechá všechny tři tvary na překladateli. Texty patří mimo komponenty do jednoho souboru na jazyk a kontrola v CI odhalí klíče, které existují v `en.json` a chybí v `cs.json`.

Data, čísla a peníze

Formát není překlad. Stejná hodnota z API se zobrazí jako „2. 11. 2026“, „USD 1,299.00“ nebo „1 299,00 USD“ podle lokalizace a česká pravidla jsou pořadí den-měsíc-rok a mezera mezi číslem a jednotkou u měr — u webu jde hlavně o viditelný rozdíl.

Formátujte vždy přes `Intl.DateTimeFormat` a `Intl.NumberFormat` s explicitní lokalizací, nikdy `toLocaleString()` bez argumentů — to se řídí lokalizací serveru nebo prohlížeče a na každém vývojářově stroji to vypadá jinak. A nastavte časovou zónu explicitně: server v UTC a klient v Praze se po dvaadvacáté hodině neshodnou na datu, což je klasická hydratační neshoda.

Přeložené SEO je součást i18n

Když česká verze sedí pod `/cs/` a anglická pod `/en/`, obě potřebují vlastní `<title>`, meta popis, `hreflang` značky ukazující jedna na druhou a kanonickou URL. Web, jehož české stránky sdílejí titulek s anglickými, nerankuje v ani jedné.

Kompromis je všude stejný: každý nový text musí vzniknout ve všech jazycích a projít rodilým mluvčím, každý layout musí držet, když je němčina o 40 % delší než čeština, a každá nová stránka zdvojnásobí QA. Pro produkt, který se nikdy nebude prodávat mimo Česko, je jeden jazyk poctivý — anglická verze, kterou nikdo neudržuje, je horší než žádná.

Zdroje

  • W3C — Language tags in HTML and XML

Související pojmy

SEO

Aby vás Google našel. Tři pilíře — technika, obsah a autorita — a měsíce trpělivosti. Výsledek nikdo garantovat nemůže.

SSR (renderování na serveru)

HTML se staví na serveru při každém požadavku, takže návštěvník vidí obsah dřív, než se načte JavaScript.

Komponenta

Znovupoužitelná část rozhraní, která má jednu úlohu — kartu produktu, cenovku, filtr — a svůj malý stav.

Zpět na slovník
Churn rate (odliv zákazníků)Idempotence
Radek Musil|Product Engineer
·
|Helper·Privacy Policy·Cookies·Terms of Use|

© 2026 Radek Musil. All rights reserved.