Skip to content

fix(i18n): update locale coverage after main merge#251

Open
ccfuncy wants to merge 1 commit intonexu-io:mainfrom
ccfuncy:fix/i18n-main-merge-coverage
Open

fix(i18n): update locale coverage after main merge#251
ccfuncy wants to merge 1 commit intonexu-io:mainfrom
ccfuncy:fix/i18n-main-merge-coverage

Conversation

@ccfuncy
Copy link
Copy Markdown
Contributor

@ccfuncy ccfuncy commented May 2, 2026

Summary

Update i18n coverage for recently added skills, prompt templates, prompt tags, and React artifact viewer strings.

Changes

  • Add German content coverage entries for newly added skills.
  • Add German content coverage entries for newly added prompt templates.
  • Add the missing Game UI prompt template category.
  • Add German prompt tag labels for the newly added game / choreography / Three Kingdoms templates.
  • Add missing Turkish locale keys for React artifact viewer actions:
    • fileViewer.reactMeta
    • fileViewer.exportJsx
    • fileViewer.exportReactHtml
  • Fix a Turkish locale string syntax typo.

Why

The i18n tests require localized content registries and locale dictionaries to stay aligned with the current curated content and English locale keys.

Without these updates:

  • German content coverage tests fail for newly added skills/templates/categories/tags.
  • Turkish locale key alignment fails after React artifact viewer strings were added.
  • The Turkish locale file can fail typecheck because of the malformed string.

Locale scope

German is currently the maintained curated content coverage path for skills, design systems, prompt templates, categories, and tags. Turkish is updated in this PR because the newly added React artifact viewer keys were missing from the locale dictionary alignment test. Other curated display content falls back to English unless explicitly localized.

Validation

  • pnpm --filter @open-design/web test -- i18n
  • pnpm --filter @open-design/web typecheck

@lefarcen lefarcen added the documentation Improvements or additions to documentation label May 2, 2026
@lefarcen
Copy link
Copy Markdown
Contributor

lefarcen commented May 2, 2026

Hi @ccfuncy! 🎉
Thanks for the contribution — this is a thorough i18n alignment fix covering German skills/templates/categories and Turkish React artifact viewer strings.
I will run a deep review and get back to you within 24h.

Thanks for making open-design better!
— open-design team

Copy link
Copy Markdown
Contributor

@lefarcen lefarcen left a comment

Choose a reason for hiding this comment

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

Hey @ccfuncy! 🎉 Thanks for the thorough i18n alignment work.

Code review (Lens A):
The structure is clean — new German skill/template ID arrays follow the existing _WITH_EN_FALLBACK pattern, 54 new tag translations are culturally appropriate (keeping English loanwords for gaming terms like 'HUD'/'ARPG'), and the Turkish typo fix is valid. Type safety looks solid since you ran typecheck + i18n tests.

Reasoning review (Lens B):
A few non-blocking questions to strengthen the PR context:

  1. Locale coverage scope — This PR adds German content IDs for newly added skills/templates and Turkish keys for React artifact viewer. Are there other supported locales (French, Japanese, Chinese, etc.) that also need these keys? If so, are those tracked separately, or is German/Turkish the only active coverage right now?

  2. Manual UI verification — The validation section mentions i18n test + typecheck, which covers type/key alignment. Did you also launch the app in German and Turkish locales to visually verify the new strings render correctly in the UI? (Sometimes tests pass but runtime context surprises us.)

  3. Future gap prevention — The PR title says "after main merge", implying this is reactive cleanup after other PRs introduced new content. Is there a plan to automate this (e.g., CI fails if a new skill/template is added without corresponding German/Turkish entries)? Or a periodic audit process?

Minor suggestions (non-blocking):

  • P3: Consider adding a one-liner in the PR body about why German/Turkish specifically (e.g., "German and Turkish are the currently maintained secondary locales; other locales fallback to English").
  • P3: If there's no automation yet, maybe open a follow-up issue to add a CI check that flags missing locale coverage when new content is added?

Overall this is solid work — just trying to help future maintainers understand the full picture. Ship as-is if you're confident on the above; otherwise happy to iterate!

— open-design team

@ccfuncy
Copy link
Copy Markdown
Contributor Author

ccfuncy commented May 2, 2026

Thanks for the thoughtful review! 🙏

A few clarifications:

  • Locale coverage scope: German is the only locale that currently has curated content coverage checks for skills/templates/categories/tags via content.test.ts. Turkish is covered here because the recent React artifact viewer keys were missing from the locale dictionary alignment test. Other locales either rely on English fallback for curated display content or are not currently part of this stricter coverage path.

  • Manual UI verification: I validated with the automated i18n tests and typecheck. I did not do a full manual visual pass in both German and Turkish yet, so I can either add that before merge or note it as not manually verified in the PR validation section.

  • Future gap prevention: Agreed. The existing i18n/content tests already catch German curated content gaps and locale dictionary key drift, but this PR is still reactive because the gaps came from newly added content landing first. A follow-up CI/process improvement to make these checks more visible during content-adding PRs would be useful.

I’ll update the PR body with a short note explaining why German/Turkish are touched specifically, e.g.:

German has the maintained curated content coverage checks today, while Turkish needed locale dictionary alignment for the newly added React artifact viewer keys; other curated display content falls back to English unless explicitly localized.

Happy to open a follow-up issue for improving CI/audit visibility if that sounds useful.

@lefarcen
Copy link
Copy Markdown
Contributor

lefarcen commented May 2, 2026

Perfect clarifications — thanks for the detail! 🙏

Locale scope explanation makes sense (German curated coverage checks + Turkish dict alignment for new React viewer keys). Updating the PR body as you suggested will help future maintainers understand the split.

Manual UI verification: Optional IMO if you're confident in test coverage + typecheck. Post-merge QA can catch edge cases if needed, but your automated validation is solid for a greenfield i18n alignment PR like this.

CI audit visibility follow-up issue: Would love to see that! Something like "Add pre-commit/CI check that flags missing German content coverage when new skills/templates land" — makes the gap visible at PR time instead of reactive cleanup.

Ship this when ready; happy to iterate if you spot anything else while updating the PR body!

@ccfuncy
Copy link
Copy Markdown
Contributor Author

ccfuncy commented May 2, 2026

Thanks! That makes sense.

I’ll update the PR body with a short Locale scope note explaining that German is currently the maintained curated content coverage path, while Turkish needed dictionary alignment for the new React artifact viewer keys.

I’ll track the CI/audit visibility improvement separately so this PR can stay focused on locale alignment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants