Add or change user-facing text in OpenAthlete (web app Paraglide catalogs, API emails and push notifications, website) in every supported language.

AGPL-3.0Auto-check passedFrontend & Design

Install I18n

skills CLI
$ npx skills add openathleteorg/openathlete --skill i18n -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install openathleteorg/openathlete i18n --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/openathleteorg/openathlete.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/i18n .claude/skills/i18n && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
i18n
GitHub stars
101
Token cost
~512 tokens
SKILL.md length
200 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Add or change user-facing text in OpenAthlete (web app Paraglide catalogs, API emails and push notifications, website) in every supported language.

  • Works in 4 steps: Add the key to all four catalogs in… → Use it as m.full_import_started({… → Check → …
  • Modified UI string
  • SKILL.md covers Web app, API emails and push…, Website and Verify
  • Calls pnpm

What it does

I18n is an agent skill from openathleteorg/openathlete. Add or change user-facing text in OpenAthlete (web app Paraglide catalogs, API emails and push notifications, website) in every supported language. Use for any new or modified UI string, email or notification.

Its SKILL.md is about 510 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Internationalization. It works with pnpm. The repository describes itself as: The open-source alternative to TrainingPeaks. Self-hostable endurance training platform. Your data stays yours. The licence is AGPL-3.0.

When your agent uses it

  • Modified UI string
  • Tasks that involve Internationalization

Example prompts

  • “/i18n”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Add the key to all four catalogs in apps/web/messages/{en,fr,it,es}.json
  2. Use it as m.full_import_started({ provider }), with import { m } from '@/paraglide/messages'.
  3. Check
  4. Write real translations, not copies of the English. Keep the product terms consistent with the existing catalogs (search them first)…

What it can do on your machine

Read from SKILL.md and the folder at commit a3433f0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

I18n loads about 512 tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 200 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~54
When it runs · the whole SKILL.md, loaded when a task matches
~512

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from openathleteorg/openathlete at commit a3433f0, republished under its AGPL-3.0 licence (© openathleteorg). 200 words, ~512 tokens.

Download SKILL.mdSave it as .claude/skills/i18n/SKILL.md (or your agent's skills folder).
name
i18n
description
Add or change user-facing text in OpenAthlete (web app Paraglide catalogs, API emails and push notifications, website) in every supported language. Use for any new or modified UI string, email or notification.

User-facing text

Supported languages: English (en), French (fr), Italian (it), Spanish (es). French users use the informal "tu" in AI-generated text and the formal "vous" in the UI, as the existing catalogs do.

Web app

  1. Add the key to all four catalogs in apps/web/messages/{en,fr,it,es}.json:
    • use snake_case, prefixed by the feature (full_import_started, calendar_day_events_label);
    • write parameters as {name};
    • add it next to related keys, not only at the end, to limit merge conflicts.
  2. Use it as m.full_import_started({ provider }), with import { m } from '@/paraglide/messages'.
  3. Check:
    bash
    pnpm check:locale-parity       # same keys in every catalog
    pnpm web exec paraglide-js compile --project ./project.inlang --outdir ./src/paraglide
    pnpm find:untranslated lists keys still in English in other catalogs. pnpm find:unused-translations finds dead keys.
  4. Write real translations, not copies of the English. Keep the product terms consistent with the existing catalogs (search them first): training load, CTL/ATL/TSB, the names of sports.

API emails and push notifications

  • Email templates in apps/api/src/modules/notification/emails/templates/ have a translations object with FR, EN, IT and ES. Subjects are in libs/shared/src/email/email.ts.
  • Push texts: apps/api/src/modules/notification/push/translations.ts.
  • The user's language is user.language (UserLanguage enum). Adding a language means a Prisma enum migration (prisma-migration skill).

Website

apps/website/messages/{en,fr}.json, compiled by pnpm website translate.

Verify

scripts/verify.sh runs the parity check and compiles the catalogs. The E2E test renders the dashboard in <locale> checks each locale renders.

© openathleteorg, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/i18n of openathleteorg/openathlete.

Open the folder on GitHubat commit a3433f0

Compare with similar skills

I18n next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

I18n compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
I18n this skillopenathleteorg/openathlete101—~512Automated safety check: PassAGPL-3.0
Create Docsvictorgarciaesgi/nuxt-typed-router4132 repos~2.8kAutomated safety check: PassMIT
Docs I18n ReviewComfy-Org/docs299—~926Automated safety check: NotesGPL-3.0
Docs I18n TranslateComfy-Org/docs299—~3.2kAutomated safety check: NotesGPL-3.0
Plane UI Translationmakeplane/plane61k—~16kAutomated safety check: PassAGPL-3.0
Taro UI Guidejd-opensource/taro-ui4.7k—~1.3kAutomated safety check: PassMIT

Similar skills

  • Create Docs

    victorgarciaesgi/nuxt-typed-router

    Create complete documentation sites for projects. An agent skill from victorgarciaesgi/nuxt-typed-router.

    413 GitHub starsUsed in 2 repos~2.8k tokens
    Frontend & DesignAuto-check passed
  • Docs I18n Review

    Comfy-Org/docs

    Review ComfyUI docs translation quality with LLM-as-a-judge (review-i18n.ts).

    299 GitHub stars~926 tokensUpdated today
    Frontend & DesignAuto-check: notes
  • Docs I18n Translate

    Comfy-Org/docs

    Translate ComfyUI Mintlify docs from English MDX to ja/zh/ko using translate-i18n.ts.

    299 GitHub stars~3.2k tokensUpdated today
    Frontend & DesignAuto-check: notes
  • Plane UI Translation

    makeplane/plane

    Sets the rules for translating and updating Plane's UI strings across locales: do-not-translate terms, plural forms, placeholders and AI translation review.

    61k GitHub stars~16k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Taro UI Guide

    jd-opensource/taro-ui

    Guides installing, configuring, styling and using taro-ui (At* components) in Taro apps for WeChat, Alipay, H5 and React Native.

    4.7k GitHub stars~1.3k tokensUpdated 14 days ago
    Frontend & DesignAuto-check passed
  • Asc Metadata Sync

    CamilleScholtz/swmpc

    Sync, validate, and apply App Store metadata with the current asc canonical metadata workflow.

    239 GitHub starsUsed in 3 repos~1.5k tokens
    Frontend & DesignAuto-check passed

More from openathleteorg/openathlete

All 8 skills in this repo
  • API Endpoint

    openathleteorg/openathlete

    Add or change an OpenAthlete API endpoint end to end, from the shared Zod schema to the NestJS controller and service, the web API client, the React Query hook and the UI, with tests.

    101 GitHub stars~682 tokensUpdated today
    Auto-check passed
  • E2E

    openathleteorg/openathlete

    Run, debug or extend the OpenAthlete Playwright end-to-end tests, which exercise the production Docker images (API, worker, web, PostgreSQL, Redis) through the API and a real browser on desktop and…

    101 GitHub stars~675 tokensUpdated today
    Auto-check passed
  • Prisma Migration

    openathleteorg/openathlete

    Change the OpenAthlete database schema safely with Prisma, covering the migration SQL, production safety, account deletion coverage and tests.

    101 GitHub stars~575 tokensUpdated today
    Auto-check passed
  • Review PR

    openathleteorg/openathlete

    Review an external pull request on openathleteorg/openathlete, test it on top of current main, resolve trivial conflicts, and approve, request changes or merge with a clear, friendly review.

    101 GitHub stars~823 tokensUpdated today
    Auto-check passed
  • Triage Feedback

    openathleteorg/openathlete

    Gather OpenAthlete user feedback from GitHub (issues, PRs, discussions) and the local Discord export, deduplicate it, prioritize it, and draft replies.

    101 GitHub stars~552 tokensUpdated today
    Auto-check passed
  • Release

    openathleteorg/openathlete

    Cut and verify an OpenAthlete release, from choosing the version and running checks to the vX.Y.Z tag, GHCR images and GitHub release notes, including what self-hosters must know.

    101 GitHub stars~676 tokensUpdated today
    Auto-check passed

Works with

Questions about I18n

What does I18n do?

Add or change user-facing text in OpenAthlete (web app Paraglide catalogs, API emails and push notifications, website) in every supported language. I18n is an agent skill from openathleteorg/openathlete. Add or change user-facing text in OpenAthlete (web app Paraglide catalogs, API emails and push notifications, website) in every supported language.

When should I use I18n?

I18n fits situations like: modified UI string; tasks that involve Internationalization.

How do I install I18n in Claude Code?

Run `npx skills add openathleteorg/openathlete --skill i18n -a claude-code`. Or copy the skill folder (.claude/skills/i18n in openathleteorg/openathlete) into .claude/skills/i18n in your project. Claude Code loads it when a task matches its description.

How do I install I18n in Codex?

Run `npx skills add openathleteorg/openathlete --skill i18n -a codex`. Or copy the skill folder (.claude/skills/i18n in openathleteorg/openathlete) into .agents/skills/i18n in your project. Codex loads it when a task matches its description.

Can I use I18n in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openathleteorg/openathlete --skill i18n -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/i18n, .gemini/skills/i18n, .github/skills/i18n and .opencode/skills/i18n in your project.

What does I18n need to run?

Going by SKILL.md and its folder, I18n needs the command-line tools its instructions call (pnpm).

Does I18n access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is I18n safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does I18n use?

I18n is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does I18n use?

About 512 tokens (SKILL.md is roughly 2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to I18n?

Skills that share tags, products or a category with I18n: Create Docs (victorgarciaesgi/nuxt-typed-router, 413 stars), Docs I18n Review (Comfy-Org/docs, 299 stars), Docs I18n Translate (Comfy-Org/docs, 299 stars) and Plane UI Translation (makeplane/plane, 61k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains I18n?

openathleteorg (a GitHub organization) maintains it in openathleteorg/openathlete, which has 101 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 9, 2026.

Source: openathleteorg/openathlete on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.