Agent skill

Tinyworld I18n

by jasonkneen in jasonkneen/tiny-world-builder

Add, translate, or audit TinyWorld UI strings across English/French/Chinese/Spanish.

AGPL-3.0Auto-check passedFrontend & Design

Install Tinyworld I18n

skills CLI
$ npx skills add jasonkneen/tiny-world-builder --skill tinyworld-i18n -a claude-code

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

GitHub CLI
$ gh skill install jasonkneen/tiny-world-builder tinyworld-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/jasonkneen/tiny-world-builder.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/tinyworld-i18n .claude/skills/tinyworld-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
tinyworld-i18n
GitHub stars
1.6k
Token cost
~1.5k tokens
SKILL.md length
697 words
Files
1
Skills in repo
29
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Add, translate, or audit TinyWorld UI strings across English/French/Chinese/Spanish.

  • Works in 6 steps: Add the English string to… → Reference it → See what's missing: npm run i18n:report.… → …
  • Adding user-facing gameplay text
  • SKILL.md covers Adding or changing strings…, Scope — what gets translated, Style and Glossary (keep these…, plus 1 more section
  • Calls npm

What it does

Tinyworld I18n is an agent skill from jasonkneen/tiny-world-builder. Add, translate, or audit TinyWorld UI strings across English/French/Chinese/Spanish. Use when adding user-facing gameplay text, when npm run i18n:check fails, when a string shows up in English in a non-English locale, or when adding a new language. No translation API — Codex does the translating directly, using the established glossary for consistency.

Its SKILL.md is about 1.5k 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 and Translation. It works with npm. The licence is AGPL-3.0.

When your agent uses it

  • Adding user-facing gameplay text
  • Npm run i18n:check fails
  • A string shows up in English in a non-English locale
  • Adding a new language

Example prompts

  • “/tinyworld-i18n”

Workflow steps

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

  1. Add the English string to engine/i18n/en.js with a namespaced key
  2. Reference it
  3. See what's missing: npm run i18n:report. It prints per-locale coverage and any
  4. Translate the missing keys into fr.js, es.js, zh.js. Do it yourself. Follow
  5. npm run i18n:check until it passes (it also runs inside npm run check /
  6. Verify in the real app — never claim done from files alone

What it can do on your machine

Read from SKILL.md and the folder at commit 49e8abd. 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:

    • npm

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

  • Network

    No URLs in SKILL.md. Its commands use npm, 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

Tinyworld I18n loads about 1.5k tokens when it runs. Until then it costs about 93 tokens; SKILL.md has 697 words of instructions outside code blocks.

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

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 jasonkneen/tiny-world-builder at commit 49e8abd, republished under its AGPL-3.0 licence (© jasonkneen). 697 words, ~1,459 tokens.

Download SKILL.mdSave it as .claude/skills/tinyworld-i18n/SKILL.md (or your agent's skills folder).
name
tinyworld-i18n
description
Add, translate, or audit TinyWorld UI strings across English/French/Chinese/Spanish. Use when adding user-facing gameplay text, when `npm run i18n:check` fails, when a string shows up in English in a non-English locale, or when adding a new language. No translation API — Codex does the translating directly, using the established glossary for consistency.

TinyWorld i18n workflow

TinyWorld localizes its gameplay UI into English (en), French (fr), Simplified Chinese (zh), and Spanish (es). This skill is the repeatable process for keeping those translations complete and consistent. There is no external API: you (Codex) are the translator. The checker (npm run i18n:check) is the safety net.

Read docs/i18n.md first if you need the architecture. The short version:

  • Locale dictionaries live in engine/i18n/{en,fr,es,zh}.js as flat key→string maps.
  • en.js is authoritative. Every other locale must define exactly its key set.
  • Static HTML uses data-i18n / data-i18n-title / data-i18n-tooltip / data-i18n-placeholder / data-i18n-aria-label attributes.
  • JS uses the global t('key') (or tx('key', fallback) to keep a hard-coded English default). Tool/group/variant labels are localized by a single mutation block near the top of engine/world/19-tools-toolbar.js.
  • Language switching is reload-on-switch (persist + location.reload()), so every surface re-renders correctly at boot. Don't add live re-render wiring.

Adding or changing strings (the loop)

  1. Add the English string to engine/i18n/en.js with a namespaced key (panel.thing, e.g. time.season). Keep keys grouped under their existing comment section; add a new section if it's a new surface.

  2. Reference it:

    • Static HTML leaf element → add data-i18n="key". For an element that also has child elements (e.g. a <label> wrapping a <select>), wrap just the text in a <span data-i18n="key">…</span> so apply() doesn't wipe the children.
    • Attribute → data-i18n-title / -tooltip / -placeholder / -aria-label. Leave the existing attribute as the English default; apply() overwrites it.
    • JS string shown to the user → window.t('key'). Use window.t (not bare t) inside functions that have a local variable named t (the toolbar module does).
    • A label living in a data array (tools, menus) → localize once via a mutation block guarded by if (window.TWI18N), using tx('prefix.' + item.id, item.label).
  3. See what's missing: npm run i18n:report. It prints per-locale coverage and any used key that's absent from en.js (a typo).

  4. Translate the missing keys into fr.js, es.js, zh.js. Do it yourself. Follow the Glossary and Style below. Match en.js key-for-key — no extra keys, no blanks. Preserve {name} interpolation placeholders verbatim.

  5. npm run i18n:check until it passes (it also runs inside npm run check / publish.sh, so a gap blocks the build).

  6. Verify in the real app — never claim done from files alone: npm run dev, then load ?lang=fr, ?lang=zh, ?lang=es. Confirm the new strings render translated and the layout still fits (German-length / CJK glyph checks).

Show full SKILL.md (313 more words)Show less

Scope — what gets translated

Translate: toolbar/tools/variants, world menu, camera/view, time & weather, crowd panel, sound, layers/properties, welcome/how-to, top-bar + control tooltips, settings tab names + the Workspace section, the mode HUD, the radial menu, player-facing toasts.

Leave in English: account/auth, the AI/agent panel, API keys, the developer overlay, credits/sponsors, the token ticker, and the dense technical settings sliders (Rendering / Materials / Environment / Crowd-advanced / AI). These are not "gameplay" strings. If the product owner later wants them, add their keys to en.js and run this loop.

Style

  • Match the source's tone: short, friendly, lowercase hints (clear to grass).
  • Keep it terse — UI chrome, not prose. Prefer the shortest natural phrasing.
  • Use the locale's own conventions (FR: « » guillemets are fine; ZH: full-width punctuation 。,;(); ES: inverted ¿¡ where applicable).
  • Don't translate the brand name "Tiny World Builder", $TINYWORLD, or proper UI keys.
  • Keyboard hints: localize the verb, keep the key name (Échap, Esc).

Glossary (keep these consistent across new strings)

Englishfreszh
world (the build)mondemundo世界
grid / boardgrille / plateaucuadrícula / tablero网格 / 面板
GrassHerbeHierba草地
PathCheminCamino小路
WaterEauAgua水
HouseMaisonCasa房屋
IslandÎleIsla岛屿
FenceClôtureValla栅栏
BridgePontPuente桥
CrowdFouleMultitud人群
Layers / PropertiesCalques / PropriétésCapas / Propiedades图层 / 属性
SettingsRéglagesAjustes设置
Showcase modeMode présentationModo exhibición展示模式
ResetRéinitialiserReiniciar重置
ClearEffacer / remettre en herbeVaciar清空
Select / MoveSélection / DéplacerSeleccionar / Mover选择 / 移动

Adding a new language (e.g. German de)

  1. cp engine/i18n/en.js engine/i18n/de.js, change g.en → g.de, translate all values.
  2. Add 'de' to SUPPORTED and a de: endonym to NAMES in engine/i18n/i18n-core.js.
  3. Add <script src="engine/i18n/de.js"></script> before i18n-core.js in tiny-world-builder.html (the i18n block, right after vendor/tinyworld-auth.js).
  4. Add a <option value="de">Deutsch</option> to #ui-lang-mode in the Workspace settings panel.
  5. Add 'de' to the LOCALES array in tools/i18n-check.js.
  6. npm run i18n:check, then verify with ?lang=de.

© jasonkneen, 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 .agents/skills/tinyworld-i18n of jasonkneen/tiny-world-builder.

Open the folder on GitHubat commit 49e8abd

Compare with similar skills

Tinyworld 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.

Tinyworld I18n compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tinyworld I18n this skilljasonkneen/tiny-world-builder1.6k—~1.5kAutomated safety check: PassAGPL-3.0
Managing MCP IndexComfy-Org/workflow_templates1.3k—~1.9kAutomated safety check: NotesMIT
Chatbox i18n Translatorchatboxai/chatbox42k—~508Automated safety check: PassGPL-3.0
Internationalization Workflow with i18niOfficeAI/AionUi33k1 repos~1.9kAutomated safety check: PassApache-2.0
Enforce Rules For I18nmoeru-ai/airi50k—~1.5kAutomated safety check: PassMIT
Claude Desktop Chinese Localizationjavaht/claude-desktop-zh-cn7.5k—~1.6kAutomated safety check: PassMIT

Similar skills

  • Managing MCP Index

    Comfy-Org/workflow_templates

    Builds and maintains templates/index.mcp.json for Comfy Cloud MCP tools.

    1.3k GitHub stars~1.9k tokensUpdated today
    Frontend & DesignAuto-check: notes
  • Chatbox i18n Translator

    chatboxai/chatbox

    Translates new or changed i18n keys from a Chatbox Pro diff, staged changes or a commit range, writing the locale JSON files directly with a built-in glossary.

    42k GitHub stars~508 tokensUpdated 16 days ago
    Frontend & DesignAuto-check passed
  • Standards for keeping all user-facing text translatable: read the i18n config first, use namespaced keys, reuse shared strings and follow the key naming rules.

    33k GitHub starsUsed in 1 repo~1.9k tokens
    Frontend & DesignAuto-check passed
  • Review pending AIRI translations on Crowdin in a batch, then sync them into the repository.

    50k GitHub stars~1.5k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Claude Desktop Chinese Localization

    javaht/claude-desktop-zh-cn

    Adds missing Simplified and Traditional Chinese translations to the Claude Desktop Chinese patch across three layers, then checks how many mappings actually hit.

    7.5k GitHub stars~1.6k tokensUpdated 5 days ago
    Frontend & DesignAuto-check passed
  • 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

More from jasonkneen/tiny-world-builder

All 29 skills in this repo
  • Lightweight 3D Effects

    jasonkneen/tiny-world-builder

    Lightweight 3D effects for decorative elements and micro-interactions using Zdog, Vanta.js, and Vanilla-Tilt.js.

    1.6k GitHub starsUsed in 1 repo~5.7k tokens
    Auto-check passed
  • Threejs Primitive Reconstructor

    jasonkneen/tiny-world-builder

    create robust, browser-runnable three.js primitive reconstructions from static low-poly, voxel, isometric, or stylized game-art reference images.

    1.6k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Poly Pizza API

    jasonkneen/tiny-world-builder

    A skill your agent uses whenever an LLM agent needs to search, browse, or download 3D models from Poly Pizza (poly.pizza) using their REST API.

    1.6k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Tinyworld Block Button Style

    jasonkneen/tiny-world-builder

    A skill your agent uses when styling any tool/block button, palette tile, icon chip, or new clickable square in Tiny World Builder.

    1.6k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Tinyworld Ghost World Gen

    jasonkneen/tiny-world-builder

    A skill your agent uses when changing ghost board generation, path / road / river continuity, deterministic regen, edge connections, or anything that runs inside makeGhostWorld in…

    1.6k GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Tinyworld Island And Planes

    jasonkneen/tiny-world-builder

    A skill your agent uses when changing the home island layout, edge dressing, undersides, autoincentive sponsor banner (now a top-left logo-adjacent DOM banner), plane/crop-duster flight paths…

    1.6k GitHub stars~4.7k tokensUpdated today
    Auto-check passed

Works with

Questions about Tinyworld I18n

What does Tinyworld I18n do?

Add, translate, or audit TinyWorld UI strings across English/French/Chinese/Spanish. Tinyworld I18n is an agent skill from jasonkneen/tiny-world-builder. Add, translate, or audit TinyWorld UI strings across English/French/Chinese/Spanish.

When should I use Tinyworld I18n?

Tinyworld I18n fits situations like: adding user-facing gameplay text; npm run i18n:check fails; A string shows up in English in a non-English locale; adding a new language.

How do I install Tinyworld I18n in Claude Code?

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

How do I install Tinyworld I18n in Codex?

Run `npx skills add jasonkneen/tiny-world-builder --skill tinyworld-i18n -a codex`. Or copy the skill folder (.agents/skills/tinyworld-i18n in jasonkneen/tiny-world-builder) into .agents/skills/tinyworld-i18n in your project. Codex loads it when a task matches its description.

Can I use Tinyworld 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 jasonkneen/tiny-world-builder --skill tinyworld-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/tinyworld-i18n, .gemini/skills/tinyworld-i18n, .github/skills/tinyworld-i18n and .opencode/skills/tinyworld-i18n in your project.

What does Tinyworld I18n need to run?

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

Does Tinyworld I18n access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Tinyworld 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 Tinyworld I18n use?

Tinyworld 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 Tinyworld I18n use?

About 1.5k tokens (SKILL.md is roughly 5.8k 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 Tinyworld I18n?

Skills that share tags, products or a category with Tinyworld I18n: Managing MCP Index (Comfy-Org/workflow_templates, 1.3k stars), Chatbox i18n Translator (chatboxai/chatbox, 42k stars), Internationalization Workflow with i18n (iOfficeAI/AionUi, 33k stars) and Enforce Rules For I18n (moeru-ai/airi, 50k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tinyworld I18n?

jasonkneen (a GitHub user) maintains it in jasonkneen/tiny-world-builder, which has 1,592 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 10, 2026.

Source: jasonkneen/tiny-world-builder on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.