Web mluví jazykem stránky
Někdo přeloží své příspěvky, otevře českou polovinu webu – a menu pořád říká Writing, patička Links a na každé pilulce stojí anglický štítek. Příspěvky byly vždycky jen polovina toho, co čtenář čte. Zbytek je to, co web říká sám o sobě, a v 1.9 to má jazyk taky.
Jeden soubor na jazyk
Co web říká česky, leží v config/site.cs.yml vedle konfigurace. Začni ze souboru config/site.lang.yml.example – zkopíruj ho a jeho komentáře řeknou zbytek. Bere tytéž klíče, které má config/site.yml pro slova, jen napsané v druhém jazyce, a co vynechá, zůstává tak, jak to říká site.yml. Soubor tohoto webu, zkrácený:
# config/site.cs.yml
site:
description: "Minimalistický blogovací engine, který ovládáš z terminálu …"
nav:
- { label: "Vše", url: "/" }
- { label: "Začni tady", url: "/posts/2026/blog-sh/" }
- { label: "Proč", tag: "philosophy" }
about:
heading: "O projektu"
footer:
note_heading: "Licence"
copyright: "Texty a obrázky © 2026 Daniel Šnor."
tags:
philosophy: "filozofie"
authoring: "psaní"
Titulek, popis, heslo banneru a jeho alternativní text, karta „o mně“, patička a menu: to jsou slova a ta se překládají. Obrázek v banneru, autor, adresa, barvy nebo účty widgetů jsou fakta o webu, stejná v každém jazyce, a klíč tu pro ně není – přeložený fakt by znamenal druhý web.
Některé nadpisy se přeloží samy
„O mně“ nad kartou, „Odkazy“ a „Kde mě najdeš“ nad sloupci patičky a nadpis každého widgetu jsou vlastní slova enginu, když je site.yml nepíše – a pak je každý jazyk říká po svém a není co překládat. Do site.yml nadpis napiš, jen když má říkat něco jiného, a přelož pak ten. Průvodci slova enginu do site.yml nezapisují ze stejného důvodu: zamrzlá v konfiguraci by zůstala v jednom jazyce.
Štítek je identifikátor se slovem pro každý jazyk
Štítky příspěvku jsou metadata, napsaná jednou, stejně jako jeho datum. Štítek proto má v každém jazyce jeden identifikátor – jednu stránku pro každý jazyk na téže adrese, /cs/tag/philosophy/ – a mění se jen to, co čtenář vidí: slovo na pilulce, nad stránkou štítku, v jeho feedu, v přehledu štítků i v tom, co najde vyhledávání. tags: dá každému štítku jeho slovo, podle toho, jak ho píšou příspěvky. Štítek bez slova se ukáže tak, jak je napsaný, a slovo pro štítek, který nemá žádný publikovaný příspěvek, se neukáže nikde; check to řekne a sestavení běží dál.
Menu vede na stejná místa
Menu i odkazy v patičce se píšou celé, tak jak je má site.yml – ale každá položka vede tam, kam stejná položka v site.yml, ve stejném pořadí. Mění se jen popisek. Menu, které se mezi jazyky rozejde, je druhý web, a čtenář, který přepne jazyk, by ztratil položku, na kterou zrovna mířil. Sestavení proto takové menu odmítne a řekne, kde se rozchází:
❌ site.cs.yml: nav musí vést na stejná místa ve stejném pořadí jako v config/site.yml — mění se jen slova. Položka 2: v config/site.yml vede na tag:philosophy, v site.cs.yml na tag:authoring.
Adresa v položce je pořád ta, kterou píše vlastní jazyk webu. url: /posts/2026/blog-sh/ výše vede v českém menu na českou kopii toho příspěvku, ať má jakýkoli český slug – položka jde za příspěvkem, ne za tím, jak se píše. Položka tag: vede na český výpis štítku a úvodní stránka, vyhledávání i archiv na své české kopie.
Co zůstává v jednom jazyce
Psací aplikace je pro celý web jedna a mluví vlastním jazykem webu, protože v něm píše jeho autor. A pravidla se vynucují, nespoléhá se na ně: klíč, který engine nečte, se odmítne, stejně jako překlad něčeho, co site.yml nemá – text „o mně“, který by ukázal jen jeden jazyk – a jazykový soubor, který není platný YAML, zastaví sestavení a check i doctor pojmenují řádek.
To je celé: příspěvky mluví vlastními slovy a jeden soubor na jazyk mluví za web.

Komentáře