Getting it into your agent
There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.
Wrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/christopherlouet/claude-base/dev-i18n)<a href="https://agentmods.dev/skills/christopherlouet/claude-base/dev-i18n"><img src="https://agentmods.dev/badge/skills/christopherlouet/claude-base/dev-i18n.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00079 | $0.02684 |
| Opus 5 | $0.00039 | $0.01342 |
| Sonnet 5 | $0.00016 | $0.00537 |
| Haiku 4.5 | $0.00008 | $0.00268 |
Grade A, and why
dev-i18n scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 426 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Internationalization (i18n)
Choosing your lib
Web
| Lib | Stack | Strength | Avoid |
|---|---|---|---|
| next-intl | Next.js 13+ App Router | Server Components first, type-safe, localized routes | Pages Router projects (use next-i18next) |
| react-i18next | React vanilla / SPA | Mature, large ecosystem, plugins | Heavy for SSR without effort |
| formatjs (react-intl) | React | ICU MessageFormat standard | More verbose boilerplate |
| vue-i18n | Vue 3 / Nuxt | Native, Composition API, lazy load | Vue-specific |
| svelte-i18n / paraglide | Svelte/SvelteKit | Lean, compile-time (paraglide) | Smaller ecosystem |
Mobile
| Lib | Stack |
|---|---|
| flutter_localizations + intl | Flutter official, ARB files |
| slang | Flutter alternative, type-safe, code-generation |
| react-native-localize + i18next | React Native |
next-intl (Next.js App Router)
Setup
npm install next-intl
messages/
fr.json
en.json
app/
[locale]/
layout.tsx
page.tsx
middleware.ts
i18n/
request.ts
routing.ts
Config
// i18n/routing.ts
import { defineRouting } from "next-intl/routing";
export const routing = defineRouting({
locales: ["fr", "en"],
defaultLocale: "fr",
localePrefix: "as-needed", // /en/about, /about (default locale)
});
// middleware.ts
import createMiddleware from "next-intl/middleware";
import { routing } from "./i18n/routing";
export default createMiddleware(routing);
export const config = {
matcher: ["/", "/(fr|en)/:path*"],
};
Server Component usage
// app/[locale]/page.tsx
import { getTranslations } from "next-intl/server";
export default async function Page() {
const t = await getTranslations("home");
return <h1>{t("title")}</h1>;
}
Client Component usage
"use client";
import { useTranslations } from "next-intl";
export function Greeting() {
const t = useTranslations("home");
return <p>{t("welcome", { name: "Alice" })}</p>;
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 426 lines · 79 tokens per session scan A dabbe21fe854
dev-i18n is a skill published in the GitHub repository christopherlouet/claude-base (5 stars, last pushed yesterday), licensed MIT. It adds 79 tokens to every session and 2,684 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
hns-oss-docs-readme-sync
README 4-file synchronization procedure for the oss-docs harness: Korean README.ko.md as primary source, en/ja/zh derivation, the shared language-switcher header contract, section-order parity checklist, and the manual verification recipe (no linter exists for READMEs). Loaded by the content-author and…
moai-domain-humanize
AI text humanization and 윤문 (post-editing) specialist that detects and removes AI tells while preserving meaning, facts, and figures. Covers Korean, English, Japanese, and Chinese with a shared severity model (S1/S2/S3), quality grades (A/B/C/D), and 30%/50% over-editing guardrails. Use to make AI-generated text read…
hns-oss-docs-i18n-rules
HARD i18n rules digest for the oss-docs harness specialists working on moai-adk-go README 4-locale set and the docs-site (adk.mo.ai.kr). Covers the canonical-locale chains, the 4-locale same-PR obligation, Mermaid TD-only, the no-emoji + icon-shortcode rule, emphasis-marker spacing, the URL blacklist, version SSOT…
i18n-localization
Internationalization and localization for global applications. Use when adding multi-language support, handling regional formats, or preparing apps for global markets.
swiss-citation-formats
Swiss legal citation formatter — validates, formats, and converts BGE/ATF/DTF, statutory, and cantonal citations across DE/FR/IT/EN. Trigger when: citations need formatting, validation, or cross-language conversion. Uses legal-citations MCP (validate, format, convert). Also handles citation conversion delegated by…
swiss-legal-translation
Swiss legal translator — translates Swiss legal texts (contracts, submissions, statutes, opinions) between DE, FR, IT, and EN with correct terminology and register. Trigger when: a user asks to translate a Swiss legal document or term, or a document must be prepared in a different national language. Uses fedlex-sparql…