vkc-i18n-ko-vi-safety
Prevent i18n regressions for ko/en/vi (missing keys, long Vietnamese text UI breakage). Use when changing messages/*.json or adding user-facing strings.
When & Why to Use This Skill
This Claude skill acts as a specialized internationalization (i18n) guardrail designed to prevent regressions in multi-language projects involving Korean, English, and Vietnamese. It ensures structural consistency across translation files and provides automated checks and UI layout rules to prevent visual breakage caused by long Vietnamese text strings.
Use Cases
- Automated i18n Validation: Use the skill to automatically detect missing keys in ko.json or vi.json when new user-facing strings are added to the codebase.
- UI Layout Integrity: Apply recommended CSS patterns like 'break-words' and 'line-clamp' to ensure that long Vietnamese translations do not break the application's responsive design.
- Structural Consistency: Maintain identical nested JSON structures across multiple language files to prevent runtime errors and ensure reliable message fetching.
- Code Quality Enforcement: Identify and replace hardcoded literal strings in UI components with proper i18n message keys during the development or code review phase.
| name | vkc-i18n-ko-vi-safety |
|---|---|
| description | Prevent i18n regressions for ko/en/vi (missing keys, long Vietnamese text UI breakage). Use when changing messages/*.json or adding user-facing strings. |
| short-description | i18n key safety + UI rules |
VKC i18n (ko/en/vi) Safety
When to use
- You add/edit user-facing strings
- You touch
messages/*.json - A UI breaks only in Vietnamese
Rules
- Never ship a key in only one of
ko/vi. - Keep nested key structure consistent across
ko.json,en.json,vi.json. - Avoid hardcoded literal strings in components; prefer message keys.
Checks
- Run:
bash .codex/skills/vkc-repo-guardrails/scripts/lint-i18n-keys.sh
UI safety for long Vietnamese strings
- Apply “layout-safe” patterns by default:
min-w-0on flex children that contain textbreak-wordsorwhitespace-pre-linewhere wrapping is requiredline-clamp-*where space must be capped- avoid fixed widths for text containers unless truncation is intentional
Reference
.codex/skills/vkc-i18n-ko-vi-safety/references/i18n-ui-safety.md