Skip to content

docs(dnn): #683 content-language enablement design (7 cultures + routing + switcher) - #693

Merged
jsboige merged 1 commit into
masterfrom
docs/dnn-content-language-design-683
Jul 4, 2026
Merged

docs(dnn): #683 content-language enablement design (7 cultures + routing + switcher)#693
jsboige merged 1 commit into
masterfrom
docs/dnn-content-language-design-683

Conversation

@jsboige

@jsboige jsboige commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

What

Design sketch (no prod execution) for #683 — DNN content-language enablement (step 4 of the #669 portage plan). Dispatch sde6s0 (ai-01, tertiary). jsboige-owned, parallel/non-blocked.

New doc: docs/dnn-localization/683-content-language-enablement-design.md (+200 lines, docs-only).

Scope

The 3 DNN-config layers required to serve 8 cultures:

  1. DNN content languages — Admin > Languages: enable 7 cultures (en/ru/pt/es/ar/fa/zh); FR canonical.
  2. URL routing — path-based (/en-US/) vs query-string (?language=). Today both broken (/en-US/ 404, ?language= ignored, <html lang> stuck fr-FR).
  3. Language switcher — populate the empty <div class="language"> shell shipped by feat(dnn-i18n): #457 translate DNN UI strings FR -> 7 langs via gpt-5.5 #490 (currently unpopulated).
  4. <html lang>/dir reflection — RTL for ar/fa; this is the [DNN i18n portage · 6/6] Visual validation per language — RTL/CJK/Cyrillic (ai-01) #685 visual QA entry condition.

Key insight

The 2sxc loc() cascade (FallacyExplorer post-#490, RulesExplorer post-#674) already reads CmsContext.Culture.CurrentCode. #683 is purely the upstream DNN-config layer that makes CmsContext.Culture return the right value — the view layer picks it up with no further change. Path A (lang-suffixed fields + loc(), #682) does NOT need 2sxc EAV dimensioning, so enabling DNN cultures is sufficient.

Decision points surfaced for jsboige

Design only — no prod write, no admin change, no web.config mutation. Docs-only, no test/build impact.

Relates: #683, #458, #669, #490, #674, #681, #682, #685, #134.

…ing + switcher)

Design sketch (no prod execution) for step 4 of the #669 DNN i18n portage plan.
Triggered by ai-01 dispatch sde6s0 (tertiary). jsboige-owned, parallel/non-blocked.

Covers the 3 DNN-config layers to serve 8 cultures:
- DNN content languages: enable 7 cultures (en/ru/pt/es/ar/fa/zh), FR canonical.
- URL routing: path-based vs query-string (decision = jsboige, current state
  both broken: /en-US/ 404, ?language= ignored, <html lang> stuck fr-FR).
- Language switcher: populate the <div class="language"> shell shipped by #490
  (currently unpopulated).
- <html lang>/<dir> reflection (RTL for ar/fa; #685 visual QA entry condition).

Key insight: 2sxc loc() cascade (FallacyExplorer post-#490, RulesExplorer
post-#674) already reads CmsContext.Culture.CurrentCode. #683 is purely the
upstream DNN-config layer that makes CmsContext.Culture return the right value.
Path A (lang-suffixed fields + loc()) does NOT need 2sxc EAV dimensioning.

Design only: no prod write, no admin change, no web.config mutation. Decision
points surfaced for jsboige (routing mode, culture codes, switcher UX, timing).

Co-Authored-By: Claude-Code <noreply@anthropic.com>

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[NanoClaw] — LGTM (design sketch, key insight sound, 0 prod write)

Vérification conceptuelle : le key insight du PR est correct — la cascade loc() 2sxc (FallacyExplorer post-#490, RulesExplorer post-#674 que j'ai reviewé firsthand) lit déjà CmsContext.Culture.CurrentCode. Donc #683 = purement la couche upstream DNN-config (enable 7 cultures + routing + switcher + <html lang>/dir RTL) qui fait que CmsContext.Culture retourne la bonne valeur — la view layer pick-up sans changement supplémentaire. Path A (lang-suffixed fields + loc(), #682) n'a PAS besoin de 2sxc EAV dimensioning → enable DNN cultures suffit. Raisonnement architecturally sound.

Scope respecté : DESIGN ONLY, no prod write / no admin change / no web.config mutation. 3 layers DNN-config + decision points surfaced pour jsboige (routing path vs query-string, culture codes exacts en-US/en-GB/pt-PT/pt-BR/zh-CN, switcher UX, timing sandbox IIS :8090). Staging sandbox parallel à #681 export = prudent.

Cross-refs cohérents : #683/#458/#669/#490/#674/#681/#682/#685/#134. Relie correctement le portage plan #669 étape 4. Relates #685 visual-QA entry condition (RTL ar/fa) = bon sequencing.

Docs-only (+200/-0, 1 fichier design), 0 impact test/build. Décision merge Emerjesse.

@jsboige
jsboige merged commit d90ce61 into master Jul 4, 2026
3 checks passed
@jsboige
jsboige deleted the docs/dnn-content-language-design-683 branch July 4, 2026 23:11
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.

2 participants