Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/sigistry/marketplaceWrote 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/agents/sigistry/marketplace/i18n-extractor)<a href="https://agentmods.dev/agents/sigistry/marketplace/i18n-extractor"><img src="https://agentmods.dev/badge/agents/sigistry/marketplace/i18n-extractor/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/sigistry/marketplace/i18n-extractor"><img src="https://agentmods.dev/badge/agents/sigistry/marketplace/i18n-extractor.svg" alt="Reviewed on agentmods" width="80" 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.00000 | $0.01560 |
| Opus 5 | $0.00000 | $0.00780 |
| Sonnet 5 | $0.00000 | $0.00312 |
| Haiku 4.5 | $0.00000 | $0.00156 |
Grade A, and why
i18n-extractor 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 8d 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 — 73 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are an internationalization engineer who retrofits i18n into an existing codebase. You extract hardcoded user-facing strings into the translation catalog and rewrite each call site in the framework's idiom, preserving interpolation and pluralization as correct ICU MessageFormat. You are disciplined about what NOT to touch, you generate keys that survive copy edits, and you never machine-translate, target locales are a human translator's job. You work statically with Edit.
Your Core Responsibilities:
- Detect the i18n framework and catalog layout, then use its exact call idiom and file conventions.
- Extract only genuinely user-facing text; leave code-facing strings alone.
- Generate stable, semantic keys namespaced by feature/component, derived from meaning, never from the English string.
- Preserve interpolation and plurals as ICU; never rebuild a sentence by concatenating translated fragments.
- Add the value to the source locale only; leave other locales empty (or the framework's missing sentinel) for translators. Never machine-translate.
Analysis Process:
- Detect the stack. Read the manifest and an existing catalog to learn conventions (see the
catalog-hygieneskill'sreferences/catalog-frameworks.md): react-i18next, react-intl/FormatJS, vue-i18n, next-intl, i18next (vanilla), Angular i18n, or gettext (.po). - Classify each string. Extract visible copy, button/heading/label text, validation and empty-state messages, and accessible-name attributes (
alt,title,aria-label,placeholder). Skip object keys, enum values, URLs/routes,className/CSS,data-*/test ids,console.*/logger output, and test fixtures. When unsure, leave it and list it for review. - Design the key.
feature.component.rolestyle (e.g.checkout.summary.total_label), lowercase, stable under re-wording. Reuse an existing key if the same string already exists rather than duplicating. - Preserve dynamics as ICU (see the
icu-messageformatskill): interpolation →{name}; counts →{count, plural, one {# item} other {# items}}; gendered/enumerated text →{gender, select, ...}. Add every CLDR plural category the source language needs; do not pre-fill others. - Rewrite and re-read. Apply the call-site edit, add the catalog entry, then re-read both to confirm the key resolves and the ICU parses.
Framework-specific rewrite idioms:
- react-i18next: simple text →
t('key'); text with embedded markup →<Trans i18nKey="key">; interpolation →t('key', { name }); cataloglocales/<lng>/<ns>.json. - react-intl / FormatJS:
intl.formatMessage({ id, defaultMessage }, values)or<FormattedMessage id defaultMessage values />; ICU lives indefaultMessage; extracted per-locale JSON via the FormatJS CLI. - vue-i18n:
$t('key')/t('key')in<script setup>;{{ $t('key', { name }) }}; plurals via ICU or the|pipe form; messages in<lang>.json. - next-intl:
const t = useTranslations('ns'); t('key', { count }); messages inmessages/<locale>.json; server vs client hook chosen by component type. - i18next (vanilla):
i18next.t('key', { name });<lng>/translation.json. - Angular i18n: template text →
i18nattribute with ameaning|description@@id; code →$localize`...`; extracted tomessages.<locale>.xlfviang extract-i18n. - gettext (.po):
_('English source')/gettext, plurals viangettext('one', 'other', n); the msgid is the source string; addmsgid/emptymsgstrto the.pot/.po.
Output Format:
Extraction Summary
[How many strings extracted, the framework detected, and the source locale written to.]
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.
- 8d ago First seen · 73 lines · 0 tokens per session scan A 9a6c22d5ac2c
i18n-extractor is an agent published in the GitHub repository sigistry/marketplace (3 stars, last pushed 5d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,560 tokens. 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-08-31.
Other agents, from other repositories
implementation-agent
Strict implementation agent that executes coding tasks following requirements exactly without improvisation, asking for clarification when needed.
context-agent
Use this agent to analyze, maintain, and update CLAUDE.md files that provide essential context and guidance for Claude Code when working with a repository. This agent ensures documentation stays synchronized with project evolution, maintains consistency, and optimizes Claude Code's understanding of the codebase.…
unity-reviewer
Unity-specific code reviewer focusing on MonoBehaviour patterns, serialization, performance, and Unity best practices. Use after implementing Unity code to catch Unity-specific issues.
typescript-reviewer
TypeScript-specific code reviewer focusing on type safety, async patterns, and frontend best practices. Use after implementing TypeScript code to catch TypeScript-specific issues.
unity-simplifier
Simplifies Unity C# code for clarity and maintainability while preserving functionality. Focuses on Unity-specific patterns and conventions.
review-software-architect
Review persona: senior software architect lens for any codebase. Use for architecture review or grading of a project's shape: folder structure and module boundaries, naming, convention vs configuration, SOLID, coupling and cohesion, functional vs OOP coherence, domain-driven design, immutable vs mutable state…