Skip to content

Publish the website in Russian, Ukrainian, Japanese, Korean and both Chinese editions - #88

Merged
donislawdev merged 6 commits into
feature/site-languages-batch-2from
feature/site-languages-batch-3
Oct 21, 2026
Merged

donislawdev merged 6 commits into
feature/site-languages-batch-2from
feature/site-languages-batch-3

Conversation

@donislawdev

Copy link
Copy Markdown
Owner

What this changes

Publishes the website in six more languages, the first ones that are not written in the Latin script: Russian, Ukrainian, Japanese, Korean, Simplified Chinese and Traditional Chinese.

This PR is stacked on #87 (feature/site-languages-batch-2, itself stacked on #86), so its base is that branch and the diff shows only this batch. When the earlier PRs are merged, GitHub retargets this one to main.

  • For each language: the eleven pages and the 404 page, the interface strings, and the code added to languages in site/site.json.
  • The addresses stay the English ones for all six (/ru/, /ja/..., and so on), because a script that is not Latin cannot be an ASCII address. The generator already refuses a slug entry for such a language, so no page carries one.
  • The program's own window is English only, so its labels stay in English inside the translated sentences. Commands and code samples are verbatim, and only the comments inside the samples are translated. The generator's parity check enforces that, along with the block structure and the {{...}} tokens.
  • Traditional Chinese is written with Taiwanese vocabulary (for example 電腦, 視窗, 處理程序, 計畫) and was not converted mechanically from the Simplified edition.
  • One rule in site/assets/style.css: html:lang(ko) { word-break: keep-all; }. Without it the browser split Korean words in half at the end of a line, which showed on the home page headline. The font stacks and line heights for Japanese, Korean and Chinese were already in the stylesheet from Prepare the website for twenty more languages #85.

Checked

  • Site strict build with --require-fresh at this tip: 228 pages, no problems.
  • Every page of every language was loaded at 375 and 1024 px (twelve addresses per language, including the 404 page), and none scrolls sideways. This was measured again for each language, and after the Korean rule was added.
  • The lang attribute is zh-Hans and zh-Hant for the two Chinese editions, and the CJK font stack is the one that applies on those pages.
  • The prose of the CJK pages has no spaced hyphen, long dash or semicolon (a script scans for them, and the one remaining semicolon is inside a PowerShell code sample).

Not checked

  • The translations were written by an AI assistant and no native speaker has read them. Wording, terminology and tone are unreviewed.
  • The Japanese headlines have no phrase-aware line breaking (word-break: auto-phrase is not used), so a long one can wrap in the middle of a word.
  • The English heading "The same three tasks, in both" sits above a table of seven rows, and the translations repeat the number.
  • Bws.Site.Tests and the mutation entries were not re-run for this PR. CI runs them.

🤖 Generated with Claude Code

donislawdev and others added 6 commits October 21, 2026 15:24
Twelve pages and the chrome file for Russkij, with the English
addresses (the registry marks Cyrillic languages as english-slug). The
strict build with --require-fresh passes, and no page overflows
horizontally at 375 or 1024 px.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Twelve pages and the language file for uk, listed after Turkish and before
Vietnamese. The pages live at the English slugs under /uk/, since Cyrillic
cannot be an ASCII address without transliteration. The strict build with
--require-fresh reports no problems, and none of the eleven pages or the 404
overflows horizontally at 375 or 1024 px.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Twelve pages and the language file for ja, listed after Italian and before
Dutch. The pages live at the English slugs under /ja/. The strict build with
--require-fresh reports no problems, none of the eleven pages or the 404
overflows horizontally at 375 or 1024 px, and the Japanese font stack and line
height already in style.css apply (checked on the rendered home page).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Twelve pages and the language file for ko, listed after Japanese and before
Dutch. The pages live at the English slugs under /ko/. The strict build with
--require-fresh reports no problems and none of the eleven pages or the 404
overflows horizontally at 375 or 1024 px.

style.css gains one rule, word-break: keep-all for Korean. Without it the
browser splits Korean words in half at the end of every line (seen on the home
page headline), and with it the lines break at the spaces. All twelve pages
were measured again after the rule was added.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Twelve pages and the language file for zh-hans, listed after Vietnamese. The
pages live at the English slugs under /zh-hans/. The strict build with
--require-fresh reports no problems, none of the eleven pages or the 404
overflows horizontally at 375 or 1024 px, and the Simplified Chinese font
stack from style.css applies.

Three meta descriptions were lengthened to reach the 50 character minimum,
which counts characters and so is easier to miss in Chinese than elsewhere.
The heading of the sc.exe page puts a space and a conjunction between its two
code spans, because the ideographic comma between two non-wrapping spans left
no place to break and pushed that page 13 px wider than a phone at 375 px.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Twelve pages and the interface strings in Traditional Chinese, written with
Taiwanese vocabulary rather than converted from the Simplified edition, and
enabled in site.json. The addresses stay the English ones, because the script
cannot be an ASCII address.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters: 80
  • site/assets/style.css is excluded by !**/*.css, !**/site/**
  • site/i18n/ja.json is excluded by !**/site/**
  • site/i18n/ko.json is excluded by !**/site/**
  • site/i18n/ru.json is excluded by !**/site/**
  • site/i18n/uk.json is excluded by !**/site/**
  • site/i18n/zh-hans.json is excluded by !**/site/**
  • site/i18n/zh-hant.json is excluded by !**/site/**
  • site/pages/404/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/404/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/404/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/404/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/404/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/404/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/pages/audit-windows-services/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/audit-windows-services/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/audit-windows-services/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/audit-windows-services/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/audit-windows-services/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/audit-windows-services/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/pages/cli-reference/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/cli-reference/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/cli-reference/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/cli-reference/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/cli-reference/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/cli-reference/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/pages/download/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/download/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/download/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/download/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/download/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/download/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/pages/faq/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/faq/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/faq/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/faq/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/faq/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/faq/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/pages/home/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/home/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/home/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/home/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/home/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/home/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/pages/query-language/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/query-language/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/query-language/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/query-language/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/query-language/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/query-language/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/pages/sc-exe-and-powershell/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/sc-exe-and-powershell/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/sc-exe-and-powershell/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/sc-exe-and-powershell/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/sc-exe-and-powershell/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/sc-exe-and-powershell/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/pages/services-msc-alternative/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/services-msc-alternative/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/services-msc-alternative/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/services-msc-alternative/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/services-msc-alternative/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/services-msc-alternative/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/pages/snapshots-and-drift/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/snapshots-and-drift/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/snapshots-and-drift/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/snapshots-and-drift/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/snapshots-and-drift/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/snapshots-and-drift/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/pages/stop-a-service-that-will-not-stop/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/stop-a-service-that-will-not-stop/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/stop-a-service-that-will-not-stop/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/stop-a-service-that-will-not-stop/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/stop-a-service-that-will-not-stop/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/stop-a-service-that-will-not-stop/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/pages/what-should-be-running/ja.html is excluded by !**/*.html, !**/site/**
  • site/pages/what-should-be-running/ko.html is excluded by !**/*.html, !**/site/**
  • site/pages/what-should-be-running/ru.html is excluded by !**/*.html, !**/site/**
  • site/pages/what-should-be-running/uk.html is excluded by !**/*.html, !**/site/**
  • site/pages/what-should-be-running/zh-hans.html is excluded by !**/*.html, !**/site/**
  • site/pages/what-should-be-running/zh-hant.html is excluded by !**/*.html, !**/site/**
  • site/site.json is excluded by !**/site/**

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration
  • Configuration used: Repository UI (base), Organization UI (inherited)
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 2303d336-23e7-42c6-a79a-ef1420bb1ca2

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@donislawdev
donislawdev merged commit 361fc3e into feature/site-languages-batch-2 Oct 21, 2026
6 checks passed
@donislawdev
donislawdev deleted the feature/site-languages-batch-3 branch October 21, 2026 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant