skill-i18n

Translate SKILL.md and README.md files into multiple languages for sharing skills internationally

25 stars

Best use case

skill-i18n is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Translate SKILL.md and README.md files into multiple languages for sharing skills internationally

Teams using skill-i18n should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/skill-i18n/SKILL.md --create-dirs "https://raw.githubusercontent.com/ComeOnOliver/skillshub/main/skills/aiskillstore/marketplace/guo-yu/skill-i18n/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/skill-i18n/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How skill-i18n Compares

Feature / Agentskill-i18nStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Translate SKILL.md and README.md files into multiple languages for sharing skills internationally

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Skill i18n

Translate skill documentation files (SKILL.md, README.md) into multiple languages, making it easier to share skills with international users.

## Usage

| Command | Description |
|---------|-------------|
| `/skill-i18n` | Translate files in current skill directory |
| `/skill-i18n <skill-name>` | Translate files for specified skill |
| `/skill-i18n config` | Configure default languages and file types |
| `/skill-i18n --lang zh-CN,ja` | Translate to specified languages (for integration) |
| `/skill-i18n --files SKILL.md,README.md` | Translate specified files |

## Supported Languages

| Language | Code | Output File |
|----------|------|-------------|
| 简体中文 | `zh-CN` | `SKILL.zh-CN.md` |
| 日本語 | `ja` | `SKILL.ja.md` |
| 한국어 | `ko` | `SKILL.ko.md` |
| Español | `es` | `SKILL.es.md` |
| Custom | User-defined | `SKILL.<code>.md` |

## Configuration

All settings are stored in `~/.claude/skill-i18n-config.json`:

```json
{
  "default_languages": ["zh-CN", "ja"],
  "default_files": ["SKILL.md"],
  "skills_config": {
    "port-allocator": {
      "languages": ["zh-CN", "ja", "ko"],
      "files": ["SKILL.md", "README.md"]
    }
  }
}
```

**Configuration Fields:**

| Field | Description | Default |
|-------|-------------|---------|
| `default_languages` | Languages to translate by default | `["zh-CN", "ja"]` |
| `default_files` | Files to translate by default | `["SKILL.md"]` |
| `skills_config` | Per-skill configuration | `{}` |

## Execution Steps

### Command: `/skill-i18n`

Translate files in current skill directory:

1. **Detect current directory**
   ```bash
   # Check if current directory contains SKILL.md
   if [ ! -f SKILL.md ]; then
     echo "Error: SKILL.md not found in current directory"
     exit 1
   fi
   ```

2. **Load configuration**
   ```bash
   # Read config file
   CONFIG=$(cat ~/.claude/skill-i18n-config.json 2>/dev/null || echo '{}')

   # Get skill name from directory
   SKILL_NAME=$(basename "$(pwd)")

   # Check for skill-specific config
   SKILL_CONFIG=$(echo "$CONFIG" | jq -r ".skills_config[\"$SKILL_NAME\"] // null")
   ```

3. **First-run selection (if no config)**

   If no configuration exists for this skill, show TUI selection:

   ```json
   {
     "questions": [
       {
         "question": "Which languages should be generated?",
         "header": "Languages",
         "multiSelect": true,
         "options": [
           { "label": "简体中文 (zh-CN)", "description": "Simplified Chinese" },
           { "label": "日本語 (ja)", "description": "Japanese" },
           { "label": "한국어 (ko)", "description": "Korean" },
           { "label": "Español (es)", "description": "Spanish" }
         ]
       },
       {
         "question": "Which files should be translated?",
         "header": "Files",
         "multiSelect": true,
         "options": [
           { "label": "SKILL.md", "description": "Skill documentation (recommended)" },
           { "label": "README.md", "description": "Repository readme" }
         ]
       }
     ]
   }
   ```

4. **Save configuration**
   ```bash
   # Save selection to config for future runs
   jq --arg skill "$SKILL_NAME" \
      --argjson langs '["zh-CN", "ja"]' \
      --argjson files '["SKILL.md"]' \
      '.skills_config[$skill] = {"languages": $langs, "files": $files}' \
      ~/.claude/skill-i18n-config.json > tmp.json && mv tmp.json ~/.claude/skill-i18n-config.json
   ```

5. **Execute translation**
   - For each selected file and language, generate translation
   - See "Translation Rules" section below

### Command: `/skill-i18n <skill-name>`

Translate files for specified skill:

1. **Search skill location**
   ```bash
   # Search in common locations
   SKILL_PATH=""

   # Check ~/.claude/skills/
   if [ -d ~/.claude/skills/"$SKILL_NAME" ]; then
     SKILL_PATH=~/.claude/skills/"$SKILL_NAME"
   fi

   # Check code repository (if configured)
   if [ -z "$SKILL_PATH" ] && [ -d ~/Codes/skills/"$SKILL_NAME" ]; then
     SKILL_PATH=~/Codes/skills/"$SKILL_NAME"
   fi

   if [ -z "$SKILL_PATH" ]; then
     echo "Error: Skill '$SKILL_NAME' not found"
     exit 1
   fi
   ```

2. **Execute translation** (same as default command)

### Command: `/skill-i18n config`

Configure default settings:

1. **Show current configuration**
   ```bash
   echo "Current configuration:"
   cat ~/.claude/skill-i18n-config.json | jq .
   ```

2. **Interactive configuration via AskUserQuestion**
   ```json
   {
     "questions": [
       {
         "question": "Select default languages for new skills:",
         "header": "Defaults",
         "multiSelect": true,
         "options": [
           { "label": "简体中文 (zh-CN)", "description": "Simplified Chinese" },
           { "label": "日本語 (ja)", "description": "Japanese" },
           { "label": "한국어 (ko)", "description": "Korean" },
           { "label": "Español (es)", "description": "Spanish" }
         ]
       }
     ]
   }
   ```

3. **Update configuration file**

### Command-Line Flags

For integration with other skills (e.g., share-skill):

| Flag | Description | Example |
|------|-------------|---------|
| `--lang <codes>` | Comma-separated language codes | `--lang zh-CN,ja,ko` |
| `--files <names>` | Comma-separated file names | `--files SKILL.md,README.md` |
| `--skill <name>` | Target skill name | `--skill port-allocator` |
| `--no-prompt` | Skip TUI, use flags/config directly | For automated workflows |
| `--overwrite` | Overwrite existing translations | Skip confirmation |

**Priority order:**
1. Command-line flags (highest priority)
2. Skill-specific config in `skills_config`
3. Global `default_languages` and `default_files`
4. Interactive TUI selection (if no config exists)

**Example integration:**
```bash
# share-skill calls skill-i18n internally
/skill-i18n --lang zh-CN,ja --files SKILL.md --skill port-allocator --no-prompt
```

## Translation Rules

### Preserve Unchanged

These elements must NOT be translated:

- **Code blocks** (```bash, ```json, etc.)
- **File paths** (`~/.claude/settings.json`, `~/Codes/skills/`)
- **Command names** (`/port-allocator`, `/skill-i18n`, `git push`)
- **Technical identifiers** (variable names, JSON keys)
- **URLs and links**

### Translate Naturally

- Adapt sentence structure to target language
- Use appropriate formality level:
  - Japanese: Polite form (です/ます)
  - Chinese: Standard written form
  - Korean: Polite form (합니다/습니다)
  - Spanish: Formal usted form
- Localize examples where appropriate

### Frontmatter Handling

```yaml
---
name: port-allocator          # Keep unchanged (identifier)
description: Translate this   # Translate to target language
---
```

### Style Adaptation

Different languages may use different visual styles:

| Language | Emoji Usage | Example |
|----------|-------------|---------|
| Chinese (zh-CN) | Common | ✅ 正确 / ❌ 错误 |
| Japanese (ja) | Minimal | 正しい / 間違い |
| Korean (ko) | Moderate | ✅ 올바름 / ❌ 잘못됨 |
| Spanish (es) | Minimal | Correcto / Incorrecto |

Follow existing translation patterns in the project if available.

## Output Format

### Translation Success

```
Translation complete

Skill: port-allocator
Source: SKILL.md

Generated:
  - SKILL.zh-CN.md (简体中文)
  - SKILL.ja.md (日本語)

Config saved for: port-allocator
Next run will auto-translate to: zh-CN, ja
```

### Existing Files Detected

```
Existing translations detected:
  - SKILL.zh-CN.md (modified 2 days ago)
  - SKILL.ja.md (modified 2 days ago)

Options:
  [ ] Overwrite all
  [ ] Skip existing
  [ ] Select individually
```

### Configuration Saved

```
Configuration updated

Default languages: zh-CN, ja
Default files: SKILL.md

Skill-specific config:
  port-allocator: zh-CN, ja, ko (SKILL.md, README.md)
  share-skill: zh-CN, ja (SKILL.md)
```

## Integration with share-skill

skill-i18n integrates with share-skill for documentation generation:

```bash
# share-skill docs with i18n
/share-skill docs --i18n

# This internally calls:
/skill-i18n --lang <configured-langs> --files SKILL.md --no-prompt
```

When share-skill detects `--i18n` flag:
1. Check if skill-i18n is available
2. Load language configuration
3. Call skill-i18n to generate translations
4. Include translated files in documentation site

## Notes

1. **Source file safety** - Never overwrite the source `SKILL.md` file
2. **First-run prompt** - First translation requires language selection
3. **Per-skill config** - Different skills can have different language settings
4. **Incremental updates** - Only translate when source file is newer than translations
5. **Integration-friendly** - Command-line flags allow other skills to call skill-i18n

Related Skills

i18n-expert

25
from ComeOnOliver/skillshub

This skill should be used when setting up, auditing, or enforcing internationalization/localization in UI codebases (React/TS, i18next or similar, JSON locales), including installing/configuring the i18n framework, replacing hard-coded strings, ensuring en-US/zh-CN coverage, mapping error codes to localized messages, and validating key parity, pluralization, and formatting.

readme-i18n

25
from ComeOnOliver/skillshub

Use 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 README variants in a GitHub-style repository.

i18n-localization

25
from ComeOnOliver/skillshub

Internationalization and localization patterns. Detecting hardcoded strings, managing translations, locale files, RTL support.

i18n-automation

25
from ComeOnOliver/skillshub

Automate internationalization and localization workflows for web applications with translation, key generation, and library setup

i18next

25
from ComeOnOliver/skillshub

## Overview

nextjs-i18n

25
from ComeOnOliver/skillshub

Best practices for multi-language handling, locale routing, and detection strategies across App and Pages Router. Use when adding i18n, locale routing, or language detection in Next.js. (triggers: middleware.ts, app/[lang]/**, pages/[locale]/**, messages/*.json, next.config.js, i18n, locale, translation, next-intl, react-intl, next-translate)

Daily Logs

25
from ComeOnOliver/skillshub

Record the user's daily activities, progress, decisions, and learnings in a structured, chronological format.

Socratic Method: The Dialectic Engine

25
from ComeOnOliver/skillshub

This skill transforms Claude into a Socratic agent — a cognitive partner who guides

Sokratische Methode: Die Dialektik-Maschine

25
from ComeOnOliver/skillshub

Dieser Skill verwandelt Claude in einen sokratischen Agenten — einen kognitiven Partner, der Nutzende durch systematisches Fragen zur Wissensentdeckung führt, anstatt direkt zu instruieren.

College Football Data (CFB)

25
from ComeOnOliver/skillshub

Before writing queries, consult `references/api-reference.md` for endpoints, conference IDs, team IDs, and data shapes.

College Basketball Data (CBB)

25
from ComeOnOliver/skillshub

Before writing queries, consult `references/api-reference.md` for endpoints, conference IDs, team IDs, and data shapes.

Betting Analysis

25
from ComeOnOliver/skillshub

Before writing queries, consult `references/api-reference.md` for odds formats, command parameters, and key concepts.