skill-i18n by aiskillstore
Translate SKILL.md and README.md files into multiple languages for sharing skills internationally
Content & Writing
85 Stars
2 Forks
Updated Jan 19, 2026, 04:39 AM
Why Use This
This skill provides specialized capabilities for aiskillstore's codebase.
Use Cases
- Developing new features in the aiskillstore repository
- Refactoring existing code to follow aiskillstore standards
- Understanding and working with aiskillstore's codebase structure
Install Guide
2 steps- 1
Skip this step if Ananke is already installed.
- 2
Skill Snapshot
Auto scan of skill assets. Informational only.
Valid SKILL.md
Checks against SKILL.md specification
Source & Community
Skill Stats
SKILL.md 322 Lines
Total Files 1
Total Size 0 B
License NOASSERTION
---
name: skill-i18n
description: Translate SKILL.md and README.md files into multiple languages for sharing skills internationally
---
# 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
Name Size