feat(i18n): multi-language proof-of-concept (ru, de, zh-cn, hi)#593
feat(i18n): multi-language proof-of-concept (ru, de, zh-cn, hi)#593Timur Tukaev (tym83) wants to merge 6 commits into
Conversation
Add Hugo languages config and per-language content mounts (base + production override) for German, Russian, Simplified Chinese, Hindi. English stays at root (defaultContentLanguageInSubdir: false). Includes translated getting-started/_index.md for all four as the first PoC page. Verified: Hugo registers all languages and resolves all content mounts; the four language getting-started pages appear in the site model with correct URLs. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Timur Tukaev <timur.tukaev@aenix.io>
…de/zh-cn/hi Cross-vendor validation pass: accepted Codex's accuracy/structure/fluency fixes (DE missing 'on your machine'; ZH/HI merged-line split; HI deployment-term consistency; several fluency edits). Rejected Codex's removal of source_digest/ translation_status/l10n — those are intentional pipeline metadata. Terminology decisions recorded in the glossaries. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Timur Tukaev <timur.tukaev@aenix.io>
…d SEO blocks Transcreated _index.html (hero, taglines, benefits, features, community) for all four languages. Shortcodes, icons, URLs, code, and brand names (AWS, VMware, Kubernetes, FluxCD) preserved. Each carries an Ahrefs-derived seo: block (keyword-localized title/description/keywords — English terms kept where the data favors them) plus pipeline metadata. Terminology follows the seeded glossaries. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Timur Tukaev <timur.tukaev@aenix.io>
…n/hi Completes the PoC-1 page set (landing + getting-started + support + blog) across four writing systems. Code blocks, slugs, taxonomy terms, commands, and URLs preserved; image bundles copied per language. Pipeline metadata + glossary terms applied. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Timur Tukaev <timur.tukaev@aenix.io>
✅ Deploy Preview for cozystack ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request introduces localization support for German, Russian, Simplified Chinese, and Hindi by adding translated homepages, blog posts, getting started guides, and support pages, alongside configuring Hugo mounts and language settings in hugo.yaml and config/production/hugo.yaml. The review feedback correctly identifies that the "Get Started" buttons on the localized homepages still point to the hardcoded English documentation path (/docs/get-started/) instead of their respective localized paths, which should be updated to ensure a consistent user experience.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
|
||
| <div class="hero-gitops"> | ||
| {{% blocks/hero title="Cozystack: Kostenlose Cloud-Plattform auf Basis von Kubernetes" color="primary" | ||
| height="auto" link_title="Erste Schritte" link_url="/docs/get-started/" %}} |
There was a problem hiding this comment.
The link_url for the "Erste Schritte" (Get Started) button is hardcoded to the root English path /docs/get-started/. Since this is the German localized homepage, it should point to the German version of the documentation to ensure a consistent localized user experience.
height="auto" link_title="Erste Schritte" link_url="/de/docs/get-started/" %}}
|
|
||
| <div class="hero-gitops"> | ||
| {{% blocks/hero title="Cozystack: Kubernetes पर आधारित मुफ़्त क्लाउड प्लेटफ़ॉर्म" color="primary" | ||
| height="auto" link_title="शुरुआत करें" link_url="/docs/get-started/" %}} |
There was a problem hiding this comment.
The link_url for the "शुरुआत करें" (Get Started) button is hardcoded to the root English path /docs/get-started/. Since this is the Hindi localized homepage, it should point to the Hindi version of the documentation to ensure a consistent localized user experience.
height="auto" link_title="शुरुआत करें" link_url="/hi/docs/get-started/" %}}
|
|
||
| <div class="hero-gitops"> | ||
| {{% blocks/hero title="Cozystack: бесплатная облачная платформа на базе Kubernetes" color="primary" | ||
| height="auto" link_title="Начать" link_url="/docs/get-started/" %}} |
There was a problem hiding this comment.
The link_url for the "Начать" (Get Started) button is hardcoded to the root English path /docs/get-started/. Since this is the Russian localized homepage, it should point to the Russian version of the documentation to ensure a consistent localized user experience.
height="auto" link_title="Начать" link_url="/ru/docs/get-started/" %}}
|
|
||
| <div class="hero-gitops"> | ||
| {{% blocks/hero title="Cozystack:基于 Kubernetes 的免费云平台" color="primary" | ||
| height="auto" link_title="开始使用" link_url="/docs/get-started/" %}} |
There was a problem hiding this comment.
The link_url for the "开始使用" (Get Started) button is hardcoded to the root English path /docs/get-started/. Since this is the Simplified Chinese localized homepage, it should point to the Simplified Chinese version of the documentation to ensure a consistent localized user experience.
height="auto" link_title="开始使用" link_url="/zh-cn/docs/get-started/" %}}
…l translation)
The translated getting-started/_index.md linked to sibling pages via
{{% ref %}}, but those siblings exist only in English (only _index is
translated in the PoC). Hugo resolves ref within the current language, so the
build failed with REF_NOT_FOUND. Point the links at the canonical English
pages instead — correct behavior for a partially-translated section and the
build passes. Verified with pinned Hugo 0.160.1 (HUGO_ENV=preview): all four
languages and all PoC pages render, navbar language switcher lists all five.
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Timur Tukaev <timur.tukaev@aenix.io>
The landing section headings (Benefits, Features, Screenshots) and the CNCF sandbox line were hardcoded English in the home shortcodes, so they stayed English on translated pages even though the cards (from front matter) were translated. Externalize them to i18n strings (T "home_*") with en/de/ru/zh-cn/hi values. This is the correct Hugo-native way to localize layout strings, and it demonstrates UI-string localization alongside content translation. English output is unchanged; verified on pinned Hugo 0.160.1. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Timur Tukaev <timur.tukaev@aenix.io>
Summary
Proof-of-concept for website localization. Adds Russian, German, Simplified Chinese, and Hindi versions of a representative set of pages so reviewers can see all four writing systems on the real layout (typography, CJK/Devanagari rendering, the navbar language switcher) and evaluate quality.
Machine-translated and cross-checked with a second model; pending native-speaker review. This is a PoC to validate the approach end-to-end before committing to the full pipeline — a design proposal/discussion accompanies it.
Live preview
https://deploy-preview-593--cozystack.netlify.app — use the navbar language dropdown, or jump straight in:
Each language has: landing, Getting Started, Support, and the "Introducing Cozystack Wizard" blog post.
What
languages:config forru/de/zh-cn(zh-Hans) /hi, plus per-language content mounts (base + production override). English stays at the root (defaultContentLanguageInSubdir: false) — no existing URLs change; other languages live under/de/,/ru/,/zh-cn/,/hi/.content/<lang>/:_index.html) — transcreated, with keyword-localized SEO front matterdocs/v1.4/getting-started/_index.md)support.md)Why
Validate localization on the live layout before building the full automated pipeline: confirm the structure (
content/<lang>/siblings, mirroring kubernetes/website), the Docsy language dropdown, and translation/terminology quality across very different writing systems.Notes & open items
v1.4) is in scope for translation; older versions stay English._indexis translated in this PoC) — honest behavior for a partially-translated section.<html lang>/ self-canonical wiring and the automated translation pipeline come as follow-ups (covered in the design proposal).