solo-i18n

solo-i18n is a skill for Claude Code from fortunto2/solo-factory. It costs 44 tokens per session (2,670 once invoked), scanned A, original, MIT.

A guide for adding multiple languages to an app. Localization means adapting an app’s text and other user-facing content for different languages and regions.

In plain words
What is it for?
Use it to add languages, translate an app, set up localization, or prepare hardcoded interface strings for a second language.
Why use it?
It helps replace hardcoded interface text with a setup that can support another language. This avoids having to rewrite the app later when translation is needed.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: built for openclaw.

Part of the solo plugin — 45 skills, 2 commands, 3 agents, 3 hooks shipped together

Good fit Use it to add languages, translate an app, set up localization, or prepare hardcoded interface strings for a second language.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/fortunto2/solo-factory/i18n
Install

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.

Any agent
npx skills add fortunto2/solo-factory --skill i18n
Clone the repo
git clone --depth 1 https://github.com/fortunto2/solo-factory

Made for: Claude Code.

Or install solo, the plugin that ships this one along with the rest of its 45 skills, 2 commands, 3 agents, 3 hooks.

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.

agentmods badge for solo-i18n

README.md
[![agentmods](https://agentmods.dev/badge/skills/fortunto2/solo-factory/i18n/github.svg)](https://agentmods.dev/skills/fortunto2/solo-factory/i18n)
Your own site
<a href="https://agentmods.dev/skills/fortunto2/solo-factory/i18n"><img src="https://agentmods.dev/badge/skills/fortunto2/solo-factory/i18n/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.

agentmods 80×15 button for solo-i18n

Your own site · 80×15
<a href="https://agentmods.dev/skills/fortunto2/solo-factory/i18n"><img src="https://agentmods.dev/badge/skills/fortunto2/solo-factory/i18n.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 44 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,670 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00044 $0.02670
Opus 5 $0.00022 $0.01335
Sonnet 5 $0.00009 $0.00534
Haiku 4.5 $0.00004 $0.00267

Measured 12d ago against content hash d85422465284, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

solo-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 12d 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.

skills/i18n/SKILL.md · 218 lines

How it starts

The opening of the file, as written. The whole thing — 218 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/i18n

Take an app from one language to many, and keep it there. Written after shipping 36 languages in an iOS app; the traps below each cost real time and none of them announce themselves — a missed string looks perfect in English.

The order of work

  1. Humanize the source language first. Translating is per-language cost: fixing an English sentence after the fact means re-translating it in every language. /humanize on the long copy, then translate.
  2. Extract, don't hunt. Get the platform's extractor to produce the key list. A grep for quoted strings finds prose and misses everything typed wrong (see the type rule below).
  3. Translate in batches, machine-first, with a validator that refuses a batch dropping a format specifier or a plural category.
  4. Look at it running, in a right-to-left language and in a long-word language (German, Finnish). A language that is merely declared is not a language that works.

The type rule — the one that decides everything

Anything a person reads must be typed as the platform's localizable type, not as a plain string.

Platform Right Wrong, and silent
SwiftUI LocalizedStringKey, LocalizedStringResource let title: String
React / Next t("key") from the i18n hook a bare JSX literal in a prop
Android Compose stringResource(R.string.x) a String constant

The extractor only sees literals in positions typed as localizable. A view property declared let title: String takes its literal from the call site, where nothing is looking — the control is never translated and English still looks perfect. One pass found the whole bottom tab bar, four gallery filters, four calendar chips, the settings list and every icon button's screen-reader name, all invisible until somebody switched language.

Put it in the pre-commit hook. A lint rule on the naming that means "this is shown" (title, label, note, blurb, caption, placeholder) typed as a plain string catches it while it is one line, not one release.

Read the full file on GitHub · 218 lines

Changes

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.

  1. 12d ago First seen · 218 lines · 44 tokens per session scan A d85422465284

Subscribe to this mod's changes

solo-i18n is a skill published in the GitHub repository fortunto2/solo-factory (18 stars, last pushed yesterday), licensed MIT. It adds 44 tokens to every session and 2,670 once invoked, about $0.0002 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-08-30.