Skip to content

Translations

Internals, for contributors and reviewers.

The README and the Cloudflare guide exist in twenty languages besides English, under docs/<code>/ with the same file names as the English pages: docs/<code>/README.md mirrors the root README.md, and docs/<code>/cloudflare.md mirrors docs/cloudflare.md. The language line at the top of the README links to every one of them.

The English text is canonical. Translations follow it and are refreshed when it changes; a translation that is behind is a translation to refresh, not a second source of truth. Every translated file says so on its first line and links back to the English page.

What stays identical in every language: every fenced command block, every command, flag, URL and placeholder inside one, and the image files. Prose, headings, table text and image alternative text are translated. Obsidian's own menu and button names are written as Obsidian localises them where that could be checked against Obsidian's published translations; where it could not, the English name stays in quotes.

scripts/ci/test_translation_contract.py holds the shape: each translation carries the canonical line, its fenced blocks equal the English ones byte for byte and in the same order, every relative link and image it carries resolves, and the README's language line names exactly the directories that exist.

Code Language
ar العربية
de Deutsch
es Español
fa فارسی
fr Français
id Bahasa Indonesia
it Italiano
nl Nederlands
pl Polski
pt Português
pt-br Português (Brasil)
ru Русский
th ไทย
tr Türkçe
uk Українська
vi Tiếng Việt
ja 日本語
ko 한국어
zh-cn 中文简体
zh-tw 中文繁體

Requirement 11 applies in every language: placeholder hosts only, no address, identifier, code or token, in prose or in a picture.