options:
detection: [folder, suffix, frontmatter] # Standard
defaultLanguage: deGeprüft wird in dieser Reihenfolge, und der erste Treffer gewinnt. Eine Datei
de/guide.en.md gehört also zu de, wenn folder vor suffix steht — der Ordner war zuerst da.
Wer das umdreht, dreht auch das Ergebnis um:
options:
detection: [suffix, folder, frontmatter]Eine leere Liste (detection: []) ordnet alles der Standardsprache zu. Das ist kein Unfall,
sondern der Weg, die Erkennung abzuschalten und alles über translations von Hand zu verknüpfen.
Wenn nichts zutrifft
Dann gilt defaultLanguage. Ohne Angabe ist das die erste Sprache in languages — eine
Reihenfolge, die man leicht übersieht, wenn man später eine Sprache voranstellt.
Der Basispfad
Bei jeder Erkennung fällt nicht nur die Sprache an, sondern auch der Basispfad: der Slug ohne den Sprachanteil.
| Datei | Sprache | Basispfad |
|---|---|---|
de/notizen/kaffee.md | de | notizen/kaffee |
en/notizen/kaffee.md | en | notizen/kaffee |
guide.de.md | de | guide |
guide.md | en (Standard) | guide |
Er ist das eigentlich Wichtige, denn auf ihm beruhen drei Dinge: die stillschweigende Verknüpfung über gleiche Pfade (Kapitel 3), die Fallback-Weiterleitungen und die Link-Korrektur.
Gleiche Basispfade sparen jede Konfiguration
Wer seine Dateien in beiden Sprachen gleich benennt —
de/notizen/kaffeeunden/notizen/kaffee—, braucht keintranslationKeyund keintranslations. Die Verknüpfung ergibt sich. Erst wer übersetzte Dateinamen will (en/notes/coffee), muss es sagen.
Was jede Seite danach mitbringt
fileData.multilanguage = {
lang, baseSlug, source, translationKey, translations
}
source sagt, welcher der drei Wege gegriffen hat — nützlich, wenn eine Seite unerwartet in der
falschen Sprache landet. Zusätzlich wird frontmatter.lang gesetzt, falls es fehlt; daraus macht
Quartz das <html lang>.