morningman opened a new pull request, #4408:
URL: https://github.com/apache/doris-website/pull/4408
Korean visitors to `/ko/use-cases/customer-facing-analytics/` currently get
the English page as a fallback (English canonical, `noindex`). This PR adds the
Korean version. It is the first of the seven product pages that #4333
translated into Japanese; the other six follow in separate PRs.
- `i18n/ko/code.json`: 131 messages covering the page copy, metadata, the
three case studies, requirement rows, capability lists, the CTA, and every
label of the architecture figure. It also adds the messages this page shares
with the other use-case pages (Scenario/Outcome/Powered by, the figure's
`APACHE DORIS`, `ONE SQL LAYER` and source cards) and the page-language control
label, so the later use-case PRs only add their own keys.
- `config/i18n.js`: registers `/use-cases/customer-facing-analytics` in the
Korean `translatedPages`. Korean stays docs-first (`ordinaryPages: false`); the
other six pages keep their English fallback until their own PRs land.
- `UseCasePage.scss`: a Korean-only rule. `word-break: keep-all` makes lines
break between words instead of between syllables (the page broke 달라집/니다, 데이/터,
사항/과). The four display-title styles get 1.12 leading; their 0.92–1.05 leading
is tuned for uppercase Latin and made Hangul lines touch. Other languages are
unaffected.
- Tests: `marketing-pages.test.cjs` now checks each registered page of every
locale against that locale's dictionary (all `marketing.*` messages reachable
from the route, placeholders preserved). It also checks reciprocal alternates
and page-language links for the registered pages from each of their locales,
and extends the global-navigation check to Korean. `locale-registry.test.cjs`
no longer pins the absence of Korean translated pages.
Translation notes: English is the source; the Japanese page was used only to
confirm the scope. Names that the Korean docs keep in English stay in English
(Apache Doris, JD.com, Xanh SM, ZTO Express, Group Commit, Query Cache, and so
on). Feature links use the titles of the Korean key-features docs they open.
"Customer-facing analytics" is rendered as 고객 대면 분석, which cannot be read as
"analysis of customers". Quotes from the linked articles are translated
faithfully, and numbers and units are unchanged. Global navigation and the
footer stay English, as in #4333. This is a machine translation (Claude) with
no human review yet.
## Validation
- `node --test` on all 21 translation suites that Build Check runs: all pass
(marketing-pages 15, locale-registry 6). Mutation checks: removing one Korean
key, registering an untranslated page, or dropping a placeholder each makes the
new test fail.
- `DORIS_ENABLE_KO=true LANDING_ONLY=true yarn start --locale ko` with
Chrome at 1440, 390 and 320 px:
- `html lang="ko"`, Korean title and description, Korean canonical with
en/ko alternates, and nav/footer `lang="en"`.
- The page-language control shows English/한국어 and keeps the query and
hash. Korean doc links go to `/ko/docs/dev/...`, and `/blog` keeps the English
fallback.
- No horizontal overflow. All 37 SVG labels stay inside their boxes with
no overlap. Requirement rows open with Enter and Space.
- All eight brand themes checked at 1440 px.
- Only brand and technical names remain in Latin script on the page.
- Not run locally: the full site build, which CI covers for all four
locales. The Japanese entry of the page-language control was not checked in a
browser because the landing dev server enabled Korean only; the unit test
covers it.
## Versions
- [ ] dev
- [ ] 4.x
- [ ] 3.x
- [ ] 2.1 or older (not covered by version/language sync gate)
The product pages are not versioned.
## Languages
- [ ] Chinese
- [ ] English
- [x] Korean
English, Chinese and Japanese content is unchanged. The English page gains a
한국어 entry in its page-language control.
## Docs Checklist
- [x] Checked by AI
- [x] Test Cases Built
- [x] Updated required version and language counterparts, or explained why
not
- [x] If only one language changed, confirmed whether source/translation
counterparts need sync
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]