Agent skill

Translate Craft

by EliasOulkadi in EliasOulkadi/shokunin

Professional translation and localization for 8 languages (ES, JA, FR, DE, PT, ZH, KO, AR).

MITAuto-check passedFrontend & Design

Install Translate Craft

skills CLI
$ npx skills add EliasOulkadi/shokunin --skill translate-craft -a claude-code

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

GitHub CLI
$ gh skill install EliasOulkadi/shokunin translate-craft --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/EliasOulkadi/shokunin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.pack/skills/translate-craft .claude/skills/translate-craft && 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
translate-craft
GitHub stars
114
Token cost
~2.4k tokens
SKILL.md length
788 words
Files
1
Skills in repo
49
Repo updated
First seen
Licence
MIT

At a glance

Professional translation and localization for 8 languages (ES, JA, FR, DE, PT, ZH, KO, AR).

  • Works in 9 steps: Identify scope: source, target,… → Analyze source: flag idioms, cultural… → Translate: first pass applying… → …
  • User asks to translate text
  • SKILL.md covers Core Principle, Sub-Commands, Language-Specific Rules (8… and Workflow, plus 8 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Translate Craft is an agent skill from EliasOulkadi/shokunin. Professional translation and localization for 8 languages (ES, JA, FR, DE, PT, ZH, KO, AR). Covers tone matrix, formality levels, i18n patterns (react-intl, i18next, ICU), RTL layout, cultural adaptation, and locale formatting. Use when user asks to translate text, localize an app, adapt tone, review translations, add i18n, or set up RTL.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: opencode

It sits in Frontend & Design, covering Internationalization and Translation. It works with React. The repository describes itself as: 職人 Shokunin 62 AI agent skills for OpenCode, Claude Code, Cursor, Windsurf. ChromaDB memory, MCP servers, declarative self-updates. Multi-model, open source, zero cost. The licence is MIT.

When your agent uses it

  • User asks to translate text
  • Localize an app
  • Review translations

Example prompts

  • “/translate-craft”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): opencode

Workflow steps

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

  1. Identify scope: source, target, audience, medium, tone tier
  2. Analyze source: flag idioms, cultural references, ambiguity
  3. Translate: first pass applying language-specific rules
  4. Adapt tone: adjust register per audience
  5. Localize: dates, times, currencies, units, phone, addresses
  6. Restructure: natural target-language word order
  7. Reverse review: read only target. If you can reconstruct source, too literal.
  8. UI verify: paste into layout. Check truncation, overflow, RTL, line breaks.
  9. Final pass: production checklist.

What it can do on your machine

Read from SKILL.md and the folder at commit 4c68e5b. 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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are css, python and javascript).

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

  • Network

    No URLs in SKILL.md.

    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.

  • Compatibility

    opencode

    From compatibility in the SKILL.md frontmatter.

Context cost

Translate Craft loads about 2.4k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 788 words of instructions outside code blocks.

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

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 EliasOulkadi/shokunin at commit 4c68e5b, republished under its MIT licence (© EliasOulkadi). 788 words, ~2,417 tokens.

Download SKILL.mdSave it as .claude/skills/translate-craft/SKILL.md (or your agent's skills folder).
name
translate-craft
description
Professional translation and localization for 8 languages (ES, JA, FR, DE, PT, ZH, KO, AR). Covers tone matrix, formality levels, i18n patterns (react-intl, i18next, ICU), RTL layout, cultural adaptation, and locale formatting. Use when user asks to translate text, localize an app, adapt tone, review translations, add i18n, or set up RTL.
compatibility
opencode
license
MIT
triggers
translate text from one language to another, localize an app or website for a new market, adapt tone/register for a target audience, review an existing…
negatives
word-for-word dictionary lookups, raw machine translation without human review, translating code comments or variable names
metadata.version
4.0.0
metadata.workflow
communication
metadata.audience
developers, translators

Translate Craft

Translation that reads as if originally written in the target language. Based on ATA standards, Mozilla l10n best practices, Airbnb style guide, and Microsoft Language Portal.

Core Principle

Translate meaning, not words. If the reader can tell it's a translation, it failed.

Sub-Commands

CommandDescription
translateTranslate text with tone, formality, and cultural adaptation
localizeLocalize dates, currencies, units, addresses per locale
i18nSet up i18n framework (react-intl / i18next / ICU)
rtlImplement RTL layout with CSS logical properties
auditReview existing translation for quality issues
teachCreate a localization guide for a language pair

Language-Specific Rules (8 languages)

EN → ES (Spanish)
  • Formality: tú (internal), usted (client/external)
  • Gender: inclusive language. "El usuario" → "La persona usuaria"
  • Length: ~25% longer. Account for UI expansion.
  • Passive: Active preferred. "Se decidió" not "Fue decidido"
EN → JA (Japanese)
  • Politeness: 3 levels: casual (だ), polite (です), honorific (敬語). Default: polite.
  • Subject omission: Drop subjects when clear from context
  • Pronouns: Minimize 私/あなた. Overuse sounds foreign.
EN → FR (French)
  • Formality: vous (professional), tu (casual)
  • Gender: Everything has gender. Ensure agreement across sentences.
  • Punctuation: Non-breaking space before ?, !, :, ;
EN → DE (German)
  • Compound nouns: "cloud storage" → "Cloud-Speicher"
  • Capitalization: All nouns capitalized
  • Formality: Sie (prof), du (casual)
EN → PT (Portuguese)
  • Formality: você (general), o senhor/a senhora (formal)
  • Length: ~20-25% longer
EN → ZH (Mandarin)
  • Measure words: 个, 张, 条, 块 — correct classifier per noun
  • Tone: 您 (formal) vs 你 (casual)
  • Shortened: ~15-20% shorter. More room in UI.
  • Script: Simplified for CN. Traditional for TW/HK.
EN → KO (Korean)
  • Honorifics: 합쇼체 (formal), 해요체 (polite casual), 해체 (casual). Default: 해요체
  • SOV word order: Subject-Object-Verb, opposite of English
EN → AR (Arabic)
  • RTL: Everything mirrors. Use CSS logical properties.
  • Root system: Words derive from 3-letter roots
  • Length: ~25% shorter. Text shrinks in UI.

Workflow

  1. Identify scope: source, target, audience, medium, tone tier
  2. Analyze source: flag idioms, cultural references, ambiguity
  3. Translate: first pass applying language-specific rules
  4. Adapt tone: adjust register per audience
  5. Localize: dates, times, currencies, units, phone, addresses
  6. Restructure: natural target-language word order
  7. Reverse review: read only target. If you can reconstruct source, too literal.
  8. UI verify: paste into layout. Check truncation, overflow, RTL, line breaks.
  9. Final pass: production checklist.

i18n Framework Patterns

ICU Message Syntax
{count, plural, one {# item} other {# items}}
{gender, select, male {He} female {She} other {They}}
RTL Layout (CSS logical properties)
css
.element {
  margin-inline-start: 1rem;   /* auto-flips LTR/RTL */
  padding-inline: 1rem;
  border-inline-end: 1px solid;
}

Locale Formatting Quick Reference

FormatENDEJAAR
Date short05/12/202612.05.20262026/05/1212/05/2026
Time3:30 PM15:3015:3003:30 م
Currency$1,234.561.234,56 €¥1,235١٬٢٣٤٫٥٦ ر.س
Number1,234.561.234,561,234.56١٬٢٣٤٫٥٦

Production Checklist

  • Placeholders preserved ({name}, %s, {{var}})
  • Date/time/currency/units converted per locale
  • Cultural references adapted or explained
  • Idioms replaced with natural equivalent
  • Formality consistent across entire document
  • Gender agreement checked
  • UTF-8 encoding verified
  • UI: expansion/shrinkage accounted for
  • RTL: layout mirrored, numbers left-to-right
  • Read-aloud test passed
  • Back-translation sample checked for meaning drift
Show full SKILL.md (332 more words)Show less

Error Handling

CauseFix
Placeholder syntax ({name}, %s, {{var}}) broken in translationPreserve exact placeholder format. Verify each appears unchanged in output. Test with real data.
Text expansion breaking UI layout (German +25%, Spanish +25%)Design containers with flex-grow. Test with longest translated string. Account for CJK shortening (-15-20%).
False friends between language pairsMaintain language-pair-specific false friends list. ES: "embarazada" ≠ "embarrassed". FR: "actuellement" ≠ "actually". DE: "Gift" ≠ "gift".
Mixed formality in same document (tú/usted, Sie/du)Pick one register at start. Scan entire document for consistency. Language-specific rules table has defaults.
Word-for-word translation producing unnatural phrasingRestructure to target language word order. KO: SOV. JA: drop subjects. AR: root-based word derivation.
RTL layout breaks on dynamically injected contentUse CSS logical properties exclusively (margin-inline-start, padding-inline, border-inline-end). Never left/right.
Back-translation reveals meaning driftIf reconstructed source differs from original, the translation is too literal or too loose. Adjust: preserve meaning, not word order.
Cultural reference doesn't exist in target marketAdapt or explain. Replace region-specific idioms with natural equivalent. Add brief context for untranslatable concepts.

Anti-Patterns

Anti-patternCorrect
Literal idiom translationFind equivalent idiom or drop
False friends (embarrassed ≠ embarazada)Maintain false friends list per language pair
Mixed formality (tú/usted in same paragraph)Pick one register. Enforce throughout.
Word-for-word structureRestructure to target language patterns
Ignoring expansion (German +25%)Design flexible containers. Test with longest string.
RTL as afterthoughtUse CSS logical properties from day 1

ICU MessageFormat Advanced Patterns

Plurals (per-language rules)
// EN: 1 item, 2 items
{count, plural, one {# item} other {# items}}

// AR: 0 عناصر, 1 عنصر, 2 عنصران, 3-10 عناصر, 11+ عنصر
{count, plural, zero {# عناصر} one {# عنصر} two {# عنصران} few {# عناصر} many {# عنصر}}

// JA: 日本語は複数形がない(単純)
{count}個
Gender
// ES
{gender, select, male {Estimado} female {Estimada} other {Estimado/a}}

// FR
{gender, select, male {Cher} female {Chère} other {Cher/Chère}}
Select with nested plural
{gender, select,
  male {{count, plural, one {Il a # livre} other {Il a # livres}}}
  female {{count, plural, one {Elle a # livre} other {Elle a # livres}}}
}
Date/Number Locale Formatting
python
# Python babel
from babel.dates import format_date, format_datetime
format_date(date, locale='de_DE')    # 18.05.2026
format_date(date, locale='en_US')    # May 18, 2026
format_date(date, locale='ja_JP')    # 2026/05/18

from babel.numbers import format_number, format_currency
format_number(1234567, locale='en_US')   # 1,234,567
format_number(1234567, locale='de_DE')   # 1.234.567
format_currency(49.99, 'EUR', locale='de_DE')  # 49,99 €
javascript
// JavaScript Intl
new Intl.DateTimeFormat('ja-JP').format(new Date())        // 2026/5/18
new Intl.DateTimeFormat('ar-SA', { dateStyle: 'full' }).format(new Date())
new Intl.NumberFormat('es-ES', { style: 'currency', currency: 'EUR' }).format(49.99)  // 49,99 €
RTL CSS Patterns
css
/* Logical properties (direction-aware) */
.element {
  margin-inline-start: 16px;   /* margin-left in LTR, margin-right in RTL */
  padding-inline-end: 8px;
  border-inline-start: 2px solid;
  text-align: start;
}
/* Avoid: margin-left, padding-right, text-align: left */

Sources

  • ATA (American Translators Association)
  • Mozilla l10n best practices
  • Airbnb translation style guide
  • Microsoft Language Portal
  • UN Translation guidelines
  • W3C Internationalization articles
  • FormatJS / ICU Message Syntax
  • Google Material Design — RTL guidelines

Checklist

  • Skill loads without errors in the AI agent
  • YAML frontmatter is valid (description, compatibility, audience)
  • Workflow section provides clear step-by-step instructions
  • Error handling section covers common failure modes
  • All referenced files (references/, scripts/, assets/) exist
  • Skill triggers correctly for intended use cases
  • No broken links or missing resources

© EliasOulkadi, MIT. 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 .pack/skills/translate-craft of EliasOulkadi/shokunin.

Open the folder on GitHubat commit 4c68e5b

Compare with similar skills

Translate Craft 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.

Translate Craft compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Translate Craft this skillEliasOulkadi/shokunin114—~2.4kAutomated safety check: PassMIT
Lingui Best PracticesB0und/WikiSpeedrun1332 repos~4.2kAutomated safety check: PassMIT
I18next Localizationi18next/i18next-cli241—~1.6kAutomated safety check: PassMIT
Add LanguageZoneMinder/zmNinjaNg112—~1.1kAutomated safety check: PassApache-2.0
Experience UI Bundle Localizeforcedotcom/sf-skills1.1k—~5.8kAutomated safety check: PassApache-2.0
Frontend I18nlangflow-ai/langflow155k—~1kAutomated safety check: PassMIT

Similar skills

  • Lingui Best Practices

    B0und/WikiSpeedrun

    Implement internationalization with Lingui in React and JavaScript applications.

    133 GitHub starsUsed in 2 repos~4.2k tokens
    Frontend & DesignAuto-check passed
  • I18next Localization

    i18next/i18next-cli

    Takes an app from hardcoded strings to a localized, continuously translated one with i18next (Locize optional): stack detection, config, wrapping strings in t(), key extraction, Locize sync, and AI…

    241 GitHub stars~1.6k tokensUpdated 2 days ago
    Frontend & DesignAuto-check passed
  • Add Language

    ZoneMinder/zmNinjaNg

    A skill your agent uses when adding a new interface language (locale) to the app, or when asked to translate the UI into another language.

    112 GitHub stars~1.1k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Experience UI Bundle Localize

    forcedotcom/sf-skills

    MUST activate to localize / internationalize a uiBundles//src/ project (React or Angular): extract hardcoded user-facing strings into Custom Labels, wire a runtime i18n library over the Platform SDK…

    1.1k GitHub stars~5.8k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Frontend I18n

    langflow-ai/langflow

    Add, change, or review user-facing text in the Langflow frontend using the i18n system (i18next / react-i18next).

    155k GitHub stars~1k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • A skill your agent uses when the user wants to translate a repository README, make a repo multilingual, localize docs, add a language switcher, internationalize the README, or update localized…

    344 GitHub starsUsed in 2 repos~1.9k tokens
    Frontend & DesignAuto-check passed

More from EliasOulkadi/shokunin

All 49 skills in this repo
  • CI CD

    EliasOulkadi/shokunin

    Design CI/CD pipelines for GitHub Actions, GitLab CI, and CircleCI with matrix builds, test sharding, caching, Docker layer caching, OIDC auth, deployment strategies (rolling, blue-green, canary)…

    114 GitHub stars~3.4k tokensUpdated 6 days ago
    Auto-check: notes
  • Component Forge

    EliasOulkadi/shokunin

    Build production-grade components for React, Vue 3, and Svelte 5 with all states (loading, empty, error, success, idle), TypeScript strict, WCAG 2.2 accessibility, server components (RSC), and…

    114 GitHub stars~3.6k tokensUpdated 6 days ago
    Auto-check: notes
  • DB Admin

    EliasOulkadi/shokunin

    PostgreSQL database administration — backup/restore (pgdump, PITR, WAL archiving), health monitoring (connections, bloat, cache hit ratio, dead tuples), connection pooling (PgBouncer), replication…

    114 GitHub stars~2k tokensUpdated 6 days ago
    Auto-check: notes
  • DB Sculptor

    EliasOulkadi/shokunin

    Design database schemas with Prisma/Drizzle, PostgreSQL index strategy (B-tree, GIN, GiST, BRIN, Hash), query optimization (EXPLAIN ANALYZE), migration safety (expand/contract, zero-downtime), and…

    114 GitHub stars~3.1k tokensUpdated 6 days ago
    Auto-check: notes
  • Docker

    EliasOulkadi/shokunin

    Optimize Docker images with multi-stage builds, distroless bases, BuildKit cache mounts, multi-arch builds, compose watch, security hardening (non-root, seccomp, capabilities drop), and…

    114 GitHub stars~3.8k tokensUpdated 6 days ago
    Auto-check: notes
  • Error Handler

    EliasOulkadi/shokunin

    Design error handling, structured logging, and observability with OpenTelemetry (traces, metrics, logs), error classification, recovery patterns (retry with jitter, circuit breaker, bulkhead…

    114 GitHub stars~3.6k tokensUpdated 6 days ago
    Auto-check: notes

Works with

Questions about Translate Craft

What does Translate Craft do?

Professional translation and localization for 8 languages (ES, JA, FR, DE, PT, ZH, KO, AR). Translate Craft is an agent skill from EliasOulkadi/shokunin. Professional translation and localization for 8 languages (ES, JA, FR, DE, PT, ZH, KO, AR).

When should I use Translate Craft?

Translate Craft fits situations like: user asks to translate text; localize an app; review translations.

How do I install Translate Craft in Claude Code?

Run `npx skills add EliasOulkadi/shokunin --skill translate-craft -a claude-code`. Or copy the skill folder (.pack/skills/translate-craft in EliasOulkadi/shokunin) into .claude/skills/translate-craft in your project. Claude Code loads it when a task matches its description.

How do I install Translate Craft in Codex?

Run `npx skills add EliasOulkadi/shokunin --skill translate-craft -a codex`. Or copy the skill folder (.pack/skills/translate-craft in EliasOulkadi/shokunin) into .agents/skills/translate-craft in your project. Codex loads it when a task matches its description.

Can I use Translate Craft 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 EliasOulkadi/shokunin --skill translate-craft -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/translate-craft, .gemini/skills/translate-craft, .github/skills/translate-craft and .opencode/skills/translate-craft in your project.

What does Translate Craft need to run?

SKILL.md names no scripts, command-line tools or credentials: Translate Craft is instructions for the agent only. Our summary lists: Python 3. Compatibility (from SKILL.md): opencode.

Does Translate Craft 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 Translate Craft 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 Translate Craft use?

Translate Craft is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Translate Craft use?

About 2.4k tokens (SKILL.md is roughly 9.7k 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 Translate Craft?

Skills that share tags, products or a category with Translate Craft: Lingui Best Practices (B0und/WikiSpeedrun, 133 stars), I18next Localization (i18next/i18next-cli, 241 stars), Add Language (ZoneMinder/zmNinjaNg, 112 stars) and Experience UI Bundle Localize (forcedotcom/sf-skills, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Translate Craft?

EliasOulkadi (a GitHub user) maintains it in EliasOulkadi/shokunin, which has 114 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 5, 2026.

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