Goal
Provide a Chinese (zh) version of the Apache Sedona documentation site at https://sedona.apache.org so that Chinese-speaking users can read installation, tutorial, and API reference content in their native language.
Approach
The site is built with mkdocs-material. We use the mkdocs-static-i18n plugin in suffix mode: a Chinese page lives next to its English source as file.zh.md. Pages without a .zh.md translation automatically fall back to the English content, so the site stays usable while translation lands incrementally.
The default locale remains English. The Chinese build is served at /zh/. A language switcher is rendered in the header by mkdocs-material once both locales are configured.
Rollout plan
Translation lands as a series of small PRs, one per documentation section, so reviewers can verify accuracy without each PR becoming overwhelming. Top-level navigation labels are translated centrally via nav_translations in mkdocs.yml.
Sub-tasks
Notes
- Untranslated pages keep showing English content thanks to
fallback_to_default: true.
- Auto-generated content (R
pkgdown site under api/rdocs, Python Sphinx site under api/pydocs, JavaDoc, ScalaDoc) stays English-only — these are produced from source comments, not from Markdown files.
- The homepage hero strings live in
docs-overrides/main.html, not in index.md. They will be made locale-aware in Phase 2.
Goal
Provide a Chinese (
zh) version of the Apache Sedona documentation site at https://sedona.apache.org so that Chinese-speaking users can read installation, tutorial, and API reference content in their native language.Approach
The site is built with
mkdocs-material. We use themkdocs-static-i18nplugin in suffix mode: a Chinese page lives next to its English source asfile.zh.md. Pages without a.zh.mdtranslation automatically fall back to the English content, so the site stays usable while translation lands incrementally.The default locale remains English. The Chinese build is served at
/zh/. A language switcher is rendered in the header bymkdocs-materialonce both locales are configured.Rollout plan
Translation lands as a series of small PRs, one per documentation section, so reviewers can verify accuracy without each PR becoming overwhelming. Top-level navigation labels are translated centrally via
nav_translationsinmkdocs.yml.Sub-tasks
mkdocs-static-i18n, addzhlocale, translate top-level nav labels, seedindex.zh.md— [GH-2867] Wire mkdocs-static-i18n for Chinese documentation #2920 ✅Notes
fallback_to_default: true.pkgdownsite underapi/rdocs, Python Sphinx site underapi/pydocs, JavaDoc, ScalaDoc) stays English-only — these are produced from source comments, not from Markdown files.docs-overrides/main.html, not inindex.md. They will be made locale-aware in Phase 2.