Druhý jazyk, o vydání později
1.9 přineslo druhý jazyk: jeden příspěvek, text v každém jazyce, strom /en/ vedle kořene. První web, který to nasadil naostro, byl ten, na kterém engine vyrostl, a za měsíc provozu se ukázalo, co žádný test neukáže. V changelogu 1.10 je k druhému jazyku přes třicet položek. Tohle není jejich seznam. Je to o tom, co druhý jazyk potřebuje a první ne.
Jméno, které se skloňuje
site.author stojí ve větách: „na osobním webu Daniela Šnora". Čeština jméno skloňuje, takže v konfiguraci je druhý pád, a stránky v angličtině ho převzaly i s pádem. 1.10 přidává site.author_name: jméno tak, jak stojí samo – pod titulkem úvodníku, jako osoba ve strukturovaných datech, na stránkách jiného jazyka než vlastního. Bez něj se dál všude bere author, jako dřív. Jazyk, který neskloňuje, to nikdy nepotřeboval, a proto to nikdo nenapsal.
Série má jméno v každém jazyce
Série se jmenuje tak, jak ji píší příspěvky, a to je jedno jméno. Nad přeloženými příspěvky stálo nepřeložené: „Nový Sean.cz" nad anglickým výpisem. series: v config/site.<lang>.yml dává sérii jméno, které ten jazyk ukáže – nad výpisem, ve větě, která díl umisťuje, v titulku stránky – klíčované jako tags: jménem, kterým ji píší příspěvky, nebo jejím slugem. Série sama zůstává jedna věc: jedna adresa, jedna sada dílů. A /series/, rejstřík sérií, dostane každý jazyk vlastní, se jmény, která mu dal:
The new Sean.cz 23 2026
Zprávobot.news 19 2026
Mastodon 2 2022–2026
Stará adresa patří překladu
Tohle je případ, který si žádný návrh nevymyslí. Web měl léta některé příspěvky dvakrát: česky a anglicky, dva příspěvky, dvě adresy. S druhým jazykem se z nich stal jeden příspěvek s překladem, a adresa toho druhého zůstala viset: former_slugs příspěvku uměly poslat jen na příspěvek ve vlastním jazyce webu, takže anglický čtenář s anglickým odkazem přistál na české stránce. Překlad teď smí nést vlastní former_slugs; přesměrování stojí v kořeni webu i ve stromu toho jazyka, check se ho ptá na totéž co každé staré adresy, a další uložení překladu ho zachová. Na webu, kde se to měřilo, to je 68 příspěvků.
A druhá půlka téže věci: překlad, kterému se změní slug:, dřív přestěhoval svou stránku a nezapsal nic, zatímco příspěvek přejmenovaný vlastním slugem si přesměrování držel vždycky. Teď jde stará adresa do former_slugs toho jazyka týmž uložením.
Výjimka, nebo pravidlo
Web o několika jazycích byl u každého příspěvku tázán, jestli smí ven bez textu ve všech: publish a schedule odmítaly, dokud se neřeklo --allow-partial, průvodce se ptal, příspěvek z telefonu s publish: yes zůstal konceptem. Správně u webu, který chce vydat všechno ve všech jazycích. Otázka s jedinou odpovědí u webu, kde je překlad výjimka – a na tom, kde se to měřilo, je to 142 anglických textů na 6 912 příspěvků. publishing.allow_partial: true v config/site.yml tu odpověď dá jednou. Jen true; doctor pojmenuje hodnotu, která není ani true, ani false, a program se to dozví z props --json. Vynechané nemění nic.
Co se check a doctor doučili
Zbytek jsou věci, které si druhý jazyk přinesl a první je neznal. doctor říkal „0 problémů" o konfiguraci jazyků, na které žádný jazyk nestaví: jazyk v site.locales bez souboru, překlad widgetu, který web nemá, prázdný popisek štítku. Rada, co dělat bez souboru jazyka, posílala ui_language tam, kde se odmítá. Jazyk s vypůjčeným rozhraním – třeba slovenština, pro kterou engine vlastní texty nemá – se v přepínači jmenoval svým kódem, „SK" vedle „English"; language_name: v jeho souboru ho pojmenuje. Řetěz fallback: [cs, en] běžel za vlastní jazyk webu a německému čtenáři ukázal angličtinu. Tři stránky druhého jazyka – hledání, tahák, 404 – uváděly jako svou kanonickou adresu stránku toho prvního. Na webu o třech jazycích přepínač neuměl z jednoho textu příspěvku na druhý, když prostřední jazyk text neměl. A export odjel bez překladů: zdokumentovaná cesta, jak přestěhovat instalaci, odvezla web o dvou jazycích jako web o jednom.
Každá z těch věcí má v changelogu svůj řádek. Společné mají to, že se neukázaly při psaní, ale při provozu: na webu, kde je druhý jazyk výjimka a ne pravidlo, kde se spojovaly staré dvojice příspěvků a kde se instalace stěhovala.
Tabulka bez výčitek
./blog.sh check --languages dnes na tom webu říká: 6 912 příspěvků, česky napsaných 6 912, anglicky 142, bez angličtiny 6 770. Je to popis stavu, ne hodnocení, a --json ho předá programu, který se dřív s --languages odmítal. Druhý jazyk není vlastnost, kterou se zapne řádek v konfiguraci. Je to druhý web nad týmž archivem, se vším, co web má – jmény, sériemi, starými adresami, pravidly, kdy smí příspěvek ven. 1.9 ho postavilo. 1.10 ho nechalo měsíc stát v dešti.
Díl z 1.9 je tady: Two languages, one site.

Komentáře