i18n-workflow_skill

This skill standardizes multilingual development, ensures consistency across zh-TW, zh-CN, en, ja, and ko, and streamlines translation management.
  • TypeScript

0

GitHub Stars

1

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill ponpon55837/mariokartworldparams --skill i18n-workflow

  • SKILL.md9.2 KB

Overview

This skill defines a standardized multilingual development workflow for a Mario Kart world player web application. It enforces consistent JSON translation files across five languages (Traditional Chinese, Simplified Chinese, English, Japanese, Korean) and provides patterns for keys, persistence, and runtime switching. The goal is predictable translations, easy maintenance, and reliable language switching in UI components.

How this skill works

The workflow prescribes a file layout under src/i18n/locales with one JSON file per supported language and a central i18next configuration. It enforces a dot-separated key namespace (category.subcategory.key), requires simultaneous updates to all five locales, and includes utilities for language persistence using a Jotai atom and a hook to sync i18next. It also documents testing, JSON validation, pluralization, parameterized strings, and recommended review practices.

When to use it

  • Adding any user-visible text or messages
  • Modifying existing text that will be shown to users
  • Introducing a new feature that requires translations
  • Validating translation completeness before merge
  • Implementing or fixing language selection and persistence

Best practices

  • Define and follow a consistent key namespace (category.subcategory.key)
  • Always update all five locale files together to keep structure identical
  • Use t() in components instead of hardcoded text and prefer Trans for inline HTML
  • Keep translations concise to fit UI constraints and handle long content via multiple keys
  • Assign language owners and review translation PRs; track translation changes in Git

Example use cases

  • Adding a new feature: add keys in newFeature.* to all locale JSONs and use t('newFeature.title') in the component
  • Language selector: wire i18n.changeLanguage and persist with a Jotai atomWithStorage key like 'mario-kart-language'
  • Dynamic content: implement parameterized strings for greetings and item counts using {{name}} and count-based plural keys
  • CI check: run a script that reads all locale JSONs and fails the build if key structures differ
  • Image localization: load language-specific assets based on current i18n.language

FAQ

Five languages: Traditional Chinese (zh-TW default), Simplified Chinese (zh-CN), English (en), Japanese (ja), and Korean (ko).

How do I add a new translation key?

Create the key using the dot namespace, add matching entries in all five locale files, then use t('namespace.key') in the component and include a brief entry in the translation guide.

How do I ensure translations stay consistent?

Use an automated script to verify identical key structures across locale files, require PR reviews by language owners, and keep a project glossary for consistent terminology.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
i18n-workflow skill by ponpon55837/mariokartworldparams | VeilStrat