[PR #2268] [CLOSED] docs: add Central Kurdish (Sorani) README translation #5130

Closed
opened 2026-10-31 01:04:12 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/2268
Author: @muhammedburhanx
Created: 10/12/2026
Status: ❌ Closed

Base: main ← Head: docs/add-kurdish-readme


📝 Commits (10+)

  • bb4b350 docs: add Central Kurdish (Sorani) README translation
  • 84ad516 chore(docs): preserve Kurdish translation through README relocation
  • a869214 docs(readme): add Kurdish language navigation
  • 782a21a fix(ci): isolate Linux Hopper process fixture inventory
  • 707f038 fix(android): make DEX descriptor pattern portable
  • e05784a fix(comparison): recheck historical calls-only changes (#2223)
  • 984e127 test(reconstruction): declare complete fixture facets
  • b1a8eca Merge commit '8fef2aa64e' into codex/maintenance-pr-2268
  • 7b7ac50 Merge branch 'main' into docs/add-kurdish-readme
  • 9bb91a0 Merge branch 'main' into docs/add-kurdish-readme

📊 Changes

64 files changed (+55806 additions, -41627 deletions)

View changed files

📝 README.md (+1 -1)
📝 docs/readme/README_ar.md (+1 -1)
📝 docs/readme/README_de.md (+1 -1)
📝 docs/readme/README_el.md (+1 -1)
📝 docs/readme/README_es.md (+1 -1)
📝 docs/readme/README_fa.md (+1 -1)
📝 docs/readme/README_fr.md (+1 -1)
📝 docs/readme/README_id.md (+1 -1)
📝 docs/readme/README_it.md (+1 -1)
📝 docs/readme/README_ja.md (+1 -1)
📝 docs/readme/README_ko.md (+1 -1)
➕ docs/readme/README_ku.md (+335 -0)
📝 docs/readme/README_ml.md (+1 -1)
📝 docs/readme/README_pl.md (+1 -1)
📝 docs/readme/README_pt-BR.md (+1 -1)
📝 docs/readme/README_ru.md (+1 -1)
📝 docs/readme/README_th.md (+1 -1)
📝 docs/readme/README_tr.md (+1 -1)
📝 docs/readme/README_uk.md (+1 -1)
📝 docs/readme/README_vi.md (+1 -1)

...and 44 more files

📄 Description

Summary

Adds a Central Kurdish (Sorani) README edition so Kurdish-speaking developers can read REA's onboarding in their language. Fixes #2267.

Problem and expected behavior

REA ships README editions in 19 languages but none in Kurdish. With this change, README_ku.md provides a full Sorani translation, every README links to it from the language navigation, and the website inventory lists the edition so README editions and website languages stay aligned.

Change and scope

  • README_ku.md: full translation of the current English README in Sorani (Arabic script, right-to-left, laid out like README_fa.md). Commands, code blocks, product names and link targets are unchanged; in-page anchors use the translated headings and were checked against GitHub's heading slugs.
  • [کوردی](README_ku.md) appended at the end of the language navigation in all 19 existing READMEs.
  • tests/conformance/readmeConsistency.test.ts: README_ku.md added so its commands are checked against English.
  • website/locales/languages.json: { "code": "ku", "name": "کوردی", "readme": "README_ku.md", "dir": "rtl" }. The inventory accepts only two-letter codes, so ku is used for the Sorani text.
  • Generated website files, produced only by the repository tools: website.py sync added Kurdish to the language picker and hreflang list in website/public, and translations extract created an empty website/locales/ku/messages.po and shifted source line references in the other catalogs. I compared every existing catalog before and after: no translation, flag or comment changed. translations extract was run a second time so the new catalog is wrapped like the existing ones and a further run leaves the tree unchanged.

As in most other editions, the "project's position" sentence in the disclaimer and the license notices stay in English; the rest of the disclaimer is translated.

Not included: translating the website catalog. Kurdish website routes use the labeled, noindex English fallback until that is done; I can follow up with it. I'll also keep README_ku.md in sync with future English changes.

Contract and boundary impact

  • Semantic owner and earliest changed stage: documentation (README editions and website language inventory)
  • Contribution scope fit and linked maintainer decision: documentation within existing boundaries; no separate scope decision needed (CONTRIBUTING → Fail-closed integration). Issue: #2267
  • CLI and MCP/tool-catalog contract: none
  • Provider, bridge, target-format, or platform compatibility: none
  • Evidence, artifact, provenance, or reconstruction contract: none
  • Target selection, authority, upstream behavior, and cleanup details (if applicable): not applicable
  • Generated metadata (docs/public/product-catalog.json), package, or installation impact: none; no build outputs committed

Expected effects (check known effects; use documentation-only on its own).

  • Read existing files or captured data.
  • Launch or attach to a process.
  • Inject instrumentation or run scripts/code.
  • Change process memory, registers, files, or configuration.
  • Contact network services.
  • Recover protected code or work around protections.
  • Documentation or usability only; no target interaction.
  • Not sure yet; investigation or maintainer guidance needed.

Evidence and regression coverage

  • Tests added or updated: README_ku.md added to readmeConsistency.test.ts
  • Base reproduction or other evidence: not applicable (documentation addition)
  • User-visible CLI/MCP output (if applicable): not applicable
  • Remaining proof gaps: local checks ran on Node 22.22.0 / npm 10.9.4 and on Node 24.15.0 / npm 11.12.1 rather than the pinned Node 24.18 / npm 11.16; CI covers the pinned toolchain. On the final commit, python scripts/website.py check prepared the pages and checked shared HTML but could not build the sharing image on Windows because native Cairo is not installed there. No browser check of the Kurdish website routes (all English fallback).

Validation performed

Before the catalog re-wrap (Node 22.22.0 / npm 10.9.4):

  • npx vitest run tests/conformance/readmeConsistency.test.ts — passed (2 tests)
  • npm run check — passed (typecheck, lint with 0 errors, format, knip, metadata, architecture guards)
  • npm run docs:check — passed, including README link parity in check-doc-facts
  • npm run verify:test-discovery — passed (946 test files)
  • python3 scripts/website.py check — passed (12 tests)
  • python3 scripts/website.py translations check --language ku — passed (0/1477 translated, English fallback)

On the final commit, applied to current main (Windows, Node 24.15.0 / npm 11.12.1, Python 3.13):

  • npx vitest run tests/conformance/readmeConsistency.test.ts — passed (2 tests)
  • npm run docs:check — passed
  • python scripts/website.py translations check --language ku — passed (0/1477 translated, English fallback)
  • python scripts/website.py translations extract — no files changed
  • python scripts/website.py check — "Prepared 340 reading pages in 20 languages", "Checked shared HTML (0 pages changed)", then stopped at the sharing image (native Cairo missing locally)

Compatibility, safety, and release

  • Breaking changes or migration steps: none
  • Real Hopper/Ghidra, browser, or OS coverage: not applicable (documentation only)
  • Package or release metadata impact: none
  • Security, privacy, process, or containment review: none; documentation only

Before merge

  • This PR addresses a concrete problem or an agreed enhancement.
  • Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff.
  • The PR has one focused outcome and the title follows type(scope): outcome.
  • Related issue is linked, or the reason for not linking one is stated above.
  • Tests cover changed observable behavior and meaningful failure paths.
  • Owning docs, contracts, and generated metadata are updated where needed.
  • User-visible CLI/MCP changes include representative output. (none)
  • I checked the final diff for secrets, unrelated cleanup, and unsupported claims.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/2268 **Author:** [@muhammedburhanx](https://github.com/muhammedburhanx) **Created:** 10/12/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `docs/add-kurdish-readme` --- ### 📝 Commits (10+) - [`bb4b350`](https://github.com/morluto/rea/commit/bb4b350d426620b45548eed02bd9aa8c96a3fbb3) docs: add Central Kurdish (Sorani) README translation - [`84ad516`](https://github.com/morluto/rea/commit/84ad5161250544fd4f2ee4d0d75217ddb19b5bea) chore(docs): preserve Kurdish translation through README relocation - [`a869214`](https://github.com/morluto/rea/commit/a8692143b7452e8895186e6e2cb7f12b291bce12) docs(readme): add Kurdish language navigation - [`782a21a`](https://github.com/morluto/rea/commit/782a21a99f09ae9bfb9a46ce124b477434b89be7) fix(ci): isolate Linux Hopper process fixture inventory - [`707f038`](https://github.com/morluto/rea/commit/707f0381f64e1516f1aab74651f6055ef094b24f) fix(android): make DEX descriptor pattern portable - [`e05784a`](https://github.com/morluto/rea/commit/e05784a63c51495bddc7afd411e2ababe8f3358b) fix(comparison): recheck historical calls-only changes (#2223) - [`984e127`](https://github.com/morluto/rea/commit/984e12775d70bc3adf2672a727fc33904a2aaee7) test(reconstruction): declare complete fixture facets - [`b1a8eca`](https://github.com/morluto/rea/commit/b1a8ecaa742765e8f2f07c7b2c96195553e69aaf) Merge commit '8fef2aa64ec1ee742e8b70b825938d30a0ea7319' into codex/maintenance-pr-2268 - [`7b7ac50`](https://github.com/morluto/rea/commit/7b7ac501e3ddf0cccc4d02d2371a351af6865095) Merge branch 'main' into docs/add-kurdish-readme - [`9bb91a0`](https://github.com/morluto/rea/commit/9bb91a086fb4da361925dbb8f3794de0c7300d0f) Merge branch 'main' into docs/add-kurdish-readme ### 📊 Changes **64 files changed** (+55806 additions, -41627 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+1 -1) 📝 `docs/readme/README_ar.md` (+1 -1) 📝 `docs/readme/README_de.md` (+1 -1) 📝 `docs/readme/README_el.md` (+1 -1) 📝 `docs/readme/README_es.md` (+1 -1) 📝 `docs/readme/README_fa.md` (+1 -1) 📝 `docs/readme/README_fr.md` (+1 -1) 📝 `docs/readme/README_id.md` (+1 -1) 📝 `docs/readme/README_it.md` (+1 -1) 📝 `docs/readme/README_ja.md` (+1 -1) 📝 `docs/readme/README_ko.md` (+1 -1) ➕ `docs/readme/README_ku.md` (+335 -0) 📝 `docs/readme/README_ml.md` (+1 -1) 📝 `docs/readme/README_pl.md` (+1 -1) 📝 `docs/readme/README_pt-BR.md` (+1 -1) 📝 `docs/readme/README_ru.md` (+1 -1) 📝 `docs/readme/README_th.md` (+1 -1) 📝 `docs/readme/README_tr.md` (+1 -1) 📝 `docs/readme/README_uk.md` (+1 -1) 📝 `docs/readme/README_vi.md` (+1 -1) _...and 44 more files_ </details> ### 📄 Description ## Summary Adds a Central Kurdish (Sorani) README edition so Kurdish-speaking developers can read REA's onboarding in their language. Fixes #2267. ## Problem and expected behavior REA ships README editions in 19 languages but none in Kurdish. With this change, `README_ku.md` provides a full Sorani translation, every README links to it from the language navigation, and the website inventory lists the edition so README editions and website languages stay aligned. ## Change and scope - `README_ku.md`: full translation of the current English README in Sorani (Arabic script, right-to-left, laid out like `README_fa.md`). Commands, code blocks, product names and link targets are unchanged; in-page anchors use the translated headings and were checked against GitHub's heading slugs. - `[کوردی](README_ku.md)` appended at the end of the language navigation in all 19 existing READMEs. - `tests/conformance/readmeConsistency.test.ts`: `README_ku.md` added so its commands are checked against English. - `website/locales/languages.json`: `{ "code": "ku", "name": "کوردی", "readme": "README_ku.md", "dir": "rtl" }`. The inventory accepts only two-letter codes, so `ku` is used for the Sorani text. - Generated website files, produced only by the repository tools: `website.py sync` added Kurdish to the language picker and hreflang list in `website/public`, and `translations extract` created an empty `website/locales/ku/messages.po` and shifted source line references in the other catalogs. I compared every existing catalog before and after: no translation, flag or comment changed. `translations extract` was run a second time so the new catalog is wrapped like the existing ones and a further run leaves the tree unchanged. As in most other editions, the "project's position" sentence in the disclaimer and the license notices stay in English; the rest of the disclaimer is translated. Not included: translating the website catalog. Kurdish website routes use the labeled, noindex English fallback until that is done; I can follow up with it. I'll also keep `README_ku.md` in sync with future English changes. ## Contract and boundary impact - Semantic owner and earliest changed stage: documentation (README editions and website language inventory) - Contribution scope fit and linked maintainer decision: documentation within existing boundaries; no separate scope decision needed (CONTRIBUTING → Fail-closed integration). Issue: #2267 - CLI and MCP/tool-catalog contract: none - Provider, bridge, target-format, or platform compatibility: none - Evidence, artifact, provenance, or reconstruction contract: none - Target selection, authority, upstream behavior, and cleanup details (if applicable): not applicable - Generated metadata (`docs/public/product-catalog.json`), package, or installation impact: none; no build outputs committed Expected effects (check known effects; use documentation-only on its own). - [ ] Read existing files or captured data. - [ ] Launch or attach to a process. - [ ] Inject instrumentation or run scripts/code. - [ ] Change process memory, registers, files, or configuration. - [ ] Contact network services. - [ ] Recover protected code or work around protections. - [x] Documentation or usability only; no target interaction. - [ ] Not sure yet; investigation or maintainer guidance needed. ## Evidence and regression coverage - Tests added or updated: `README_ku.md` added to `readmeConsistency.test.ts` - Base reproduction or other evidence: not applicable (documentation addition) - User-visible CLI/MCP output (if applicable): not applicable - Remaining proof gaps: local checks ran on Node 22.22.0 / npm 10.9.4 and on Node 24.15.0 / npm 11.12.1 rather than the pinned Node 24.18 / npm 11.16; CI covers the pinned toolchain. On the final commit, `python scripts/website.py check` prepared the pages and checked shared HTML but could not build the sharing image on Windows because native Cairo is not installed there. No browser check of the Kurdish website routes (all English fallback). ## Validation performed Before the catalog re-wrap (Node 22.22.0 / npm 10.9.4): - `npx vitest run tests/conformance/readmeConsistency.test.ts` — passed (2 tests) - `npm run check` — passed (typecheck, lint with 0 errors, format, knip, metadata, architecture guards) - `npm run docs:check` — passed, including README link parity in `check-doc-facts` - `npm run verify:test-discovery` — passed (946 test files) - `python3 scripts/website.py check` — passed (12 tests) - `python3 scripts/website.py translations check --language ku` — passed (0/1477 translated, English fallback) On the final commit, applied to current `main` (Windows, Node 24.15.0 / npm 11.12.1, Python 3.13): - `npx vitest run tests/conformance/readmeConsistency.test.ts` — passed (2 tests) - `npm run docs:check` — passed - `python scripts/website.py translations check --language ku` — passed (0/1477 translated, English fallback) - `python scripts/website.py translations extract` — no files changed - `python scripts/website.py check` — "Prepared 340 reading pages in 20 languages", "Checked shared HTML (0 pages changed)", then stopped at the sharing image (native Cairo missing locally) ## Compatibility, safety, and release - Breaking changes or migration steps: none - Real Hopper/Ghidra, browser, or OS coverage: not applicable (documentation only) - Package or release metadata impact: none - Security, privacy, process, or containment review: none; documentation only ## Before merge - [x] This PR addresses a concrete problem or an agreed enhancement. - [x] Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff. - [x] The PR has one focused outcome and the title follows `type(scope): outcome`. - [x] Related issue is linked, or the reason for not linking one is stated above. - [x] Tests cover changed observable behavior and meaningful failure paths. - [x] Owning docs, contracts, and generated metadata are updated where needed. - [x] User-visible CLI/MCP changes include representative output. (none) - [x] I checked the final diff for secrets, unrelated cleanup, and unsupported claims. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:04:12 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#5130
No description provided.