HitKeep i18n
Maintain dashboard translations and locale-aware formatting across HitKeep.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/hitkeep-i18n-pascalebeier/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Maintain HitKeep dashboard localization. Use whenever an AI assistant or contributor adds or changes user-visible dashboard text, Transloco keys, locale JSON files, PrimeNG locale behavior, language switching, translated labels, date/number/duration formatting, or supported dashboard languages.
What this skill does
HitKeep i18n
Use this skill when changing user-visible dashboard text or localized formatting in HitKeep.
HitKeep's dashboard uses Transloco JSON files for UI copy and @jsverse/transloco-locale plus browser Intl APIs for locale-aware formatting. PrimeNG labels are synchronized from the active Transloco language.
Public Surface
Dashboard translation files live in:
frontend/dashboard/public/i18n/en.jsonfrontend/dashboard/public/i18n/de.jsonfrontend/dashboard/public/i18n/es.jsonfrontend/dashboard/public/i18n/fr.jsonfrontend/dashboard/public/i18n/it.jsonfrontend/dashboard/public/i18n/nl.jsonfrontend/dashboard/public/i18n/pt.json
The dashboard currently exposes these language IDs:
en, de, es, fr, it, nl, pt
Formatting locale mappings are configured in frontend/dashboard/src/app/app.config.ts:
en -> en-US
de -> de-DE
es -> es-ES
fr -> fr-FR
it -> it-IT
nl -> nl-NL
pt -> pt-BR
Do not infer a new supported language from an Angular locale helper alone. Add or change a supported dashboard language only when the Transloco config, locale JSON file, formatting mapping, and product docs all agree.
Workflow
- Search for the existing feature key before creating a new key.
- Put user-visible Angular template text behind
TranslocoPipe. - Use
TranslocoServicefor computed labels in TypeScript. - Add the same key path to all seven locale JSON files.
- Keep key names semantic and grouped by feature.
- Preserve interpolation variables exactly. Do not translate variable names or change placeholder syntax.
- For computed option labels, depend on the active language so labels recompute after language switches.
- For dates, numbers, percentages, and durations, prefer the existing locale services or helpers instead of manual string formatting.
- Let PrimeNG locale text flow through the existing sync service instead of hardcoding component labels.
- Keep labels short enough for buttons, tabs, chips, table columns, and mobile layouts.
Useful places to inspect:
frontend/dashboard/src/app/app.config.tsfrontend/dashboard/src/app/transloco-loader.tsfrontend/dashboard/src/app/core/i18n/frontend/dashboard/scripts/check-i18n-locales.mjsfrontend/dashboard/scripts/sync-i18n-locales.mjs
Translation Quality Bar
Translate product UI, not individual English words.
- German: use natural product German and correct characters such as
Ä,Ö,Ü,ä,ö,ü, andß. - Spanish: use accents,
ñ, and opening punctuation where required, for example¿Seguro?. - French: use accents and apostrophes naturally, for example
paramètres,sécurité, andl'adresse e-mail. - Italian: use accents where required, especially final-stress words such as
attività,città,perché,può, andè. - Dutch: keep dashboard terminology natural and concise. Reuse existing terms for site, team, goal, funnel, share link, and API client.
- Portuguese: use the existing Brazilian Portuguese formatting context (
pt-BR) unless the product explicitly changes the locale target. Use natural Portuguese with correct accents.
Keep analytics terminology consistent across all languages. If the repo already uses a term for "site", "team", "event", "goal", "funnel", "share link", "API client", "QR campaign", or "Opportunity", reuse it.
Checks
Run the locale check after translation changes:
cd frontend/dashboard && npm run i18n:check
If key shape drift is suspected, run the sync script and review the resulting changes before keeping them:
cd frontend/dashboard && node scripts/sync-i18n-locales.mjs
Run formatting checks for dashboard files:
cd frontend/dashboard && npm run fmt:check
For UI behavior that depends on language switching, add or update focused tests near the component or service that owns the behavior.
Output For Reviews
When reporting an i18n change, include:
Changed keys:
- <key path>
Locales updated:
- en, de, es, fr, it, nl, pt
Checks:
- <command and result>
Caveats:
- <layout, wording, or review notes>
Do not claim a translation was reviewed by a native speaker unless that actually happened.
Related skills
Generative Code Art
anthropics
Create algorithmic art with p5.js using randomness and interactive parameters.
UI/UX Pro Max
anthropics
Build production-grade web components and interfaces with distinctive, polished design.
Artifact Theme Toolkit
anthropics
Apply professional color and font themes to slides, docs, and web pages.
Multi-Component Web Artifacts
anthropics
Build complex React artifacts with Tailwind CSS and shadcn/ui components.