Dvojjazyčný web bez bolesti
Česká a anglická verze párované přes translationKey, přepínač jazyků, který prostě funguje, a žádné duplicitní šablony.
Vícejazyčnost bývá ve většině systémů zdroj utrpení — duplicitní šablony, rozjeté překlady, rozbité odkazy mezi jazyky. Hugo to řeší překvapivě elegantně a HugoPress jen dotahuje pár detailů.
Jeden layout, dva jazyky
Data sekce žijí ve front matteru stránky, layout je sdílený. Stejná šablona
layouts/blog/list.html čte .Params.* a vykreslí cs i en variantu — žádná
duplikace logiky.
Párování přes translationKey
Stačí dát oběma verzím stejný translationKey:
# content/cs/blog/_index.md
translationKey: blog
# content/en/blog/_index.md
translationKey: blog
Hugo z toho automaticky vyrobí dvojici a přepínač jazyků v hlavičce odkáže na správný protějšek. Když překlad chybí, přepínač elegantně degraduje na domovskou stránku druhého jazyka.
Texty přes i18n
Štítky v šabloně (datum, „číst dál“, „související články“) nikdy nepíšeme natvrdo
— jdou přes {{ i18n "klíč" }} a doplní se do i18n/cs.toml i i18n/en.toml.
Obsah článků je naopak autorovaný zvlášť pro každý jazyk, aby zněl přirozeně, ne
strojově přeloženě.
Pravidlo palce: štítky přes i18n, obsah ručně per jazyk.
Výsledek? Přidání nového jazyka je otázka nové složky content/<lang>/ a jednoho
sloupce do překladových souborů.