Agent skill

Docs I18n Translate

by Comfy-Org in Comfy-Org/docs

Translate ComfyUI Mintlify docs from English MDX to ja/zh/ko using translate-i18n.ts.

GPL-3.0Auto-check: notesFrontend & Design

Install Docs I18n Translate

skills CLI
$ npx skills add Comfy-Org/docs --skill docs-i18n-translate -a claude-code

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

GitHub CLI
$ gh skill install Comfy-Org/docs docs-i18n-translate --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/Comfy-Org/docs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/docs-i18n-translate .claude/skills/docs-i18n-translate && 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
docs-i18n-translate
GitHub stars
299
Token cost
~3.2k tokens
SKILL.md length
1,261 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
GPL-3.0

At a glance

Translate ComfyUI Mintlify docs from English MDX to ja/zh/ko using translate-i18n.ts.

  • Translating docs
  • SKILL.md covers Architecture, Environment (.env.local), Commands and Standard workflow, plus 6 more sections
  • Calls pnpm; needs TRANSLATE_API_KEY
  • Updating zh/ja/ko changelog

What it does

Docs I18n Translate is an agent skill from Comfy-Org/docs. Translate ComfyUI Mintlify docs from English MDX to ja/zh/ko using translate-i18n.ts. Incremental hash sync, chunked long pages, changelog updateblocks, glossary terms. Use when translating docs, updating zh/ja/ko changelog or pages, running pnpm translate, translationSourceHash, glossary sync, docs.json i18n, or fixing truncated translations.

Its SKILL.md is about 3.2k 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 Translation, Internationalization and Markdown. It works with ComfyUI and pnpm. The repository describes itself as: Documentation for ComfyUI. The licence is GPL-3.0.

When your agent uses it

  • Translating docs
  • Updating zh/ja/ko changelog
  • Running pnpm translate
  • TranslationSourceHash

Example prompts

  • “/docs-i18n-translate”

Requirements

  • Python 3
  • A credential in TRANSLATE_API_KEY

What it can do on your machine

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

    • pnpm

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

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • blog.comfy.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • TRANSLATE_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Docs I18n Translate loads about 3.2k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 1,261 words of instructions outside code blocks.

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

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:98
    ## Environment (`.env.local`)

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 Comfy-Org/docs at commit 2c66540, republished under its GPL-3.0 licence (© Comfy-Org). 1,261 words, ~3,180 tokens.

Download SKILL.mdSave it as .claude/skills/docs-i18n-translate/SKILL.md (or your agent's skills folder).
name
docs-i18n-translate
description
Translate ComfyUI Mintlify docs from English MDX to ja/zh/ko using translate-i18n.ts. Incremental hash sync, chunked long pages, changelog update_blocks, glossary terms. Use when translating docs, updating zh/ja/ko changelog or pages, running pnpm translate, translationSourceHash, glossary sync, docs.json i18n, or fixing truncated translations.

Docs i18n Translation

Translate Mintlify docs (not CMS). English is source of truth; ja / zh / ko are generated under {lang}/ and snippets/{lang}/.

Separate from CMS: pnpm cms:prepare writes gitignored .github/scripts/cms/staging/ for Strapi. See skill cms-changelog-sync.

Architecture

index.mdx, changelog/index.mdx, …   ← English (edit here)
        │
        ▼  pnpm translate            ← MDX only (does NOT touch docs.json)
{ja,zh,ko}/…                        ← translated MDX (commit to git)
snippets/{ja,zh,ko}/…
        │
        ▼  only if EN nav changed
pnpm translate:sync-docs-json       ← mirror nav paths in docs.json (opt-in)

Incremental: each file stores translationSourceHash in frontmatter. Unchanged English → skip.

Code and comments inside fenced blocks

Code lines (identifiers, keywords, string literals, numeric values, indentation, blank lines, the language tag, the closing fence) stay byte-for-byte identical to the English source. The comment text inside a fenced block is translated: it is documentation prose the reader is meant to understand, so whole-line comments and trailing comments after code are localized, on the same line and position as in English.

Python docstrings (a standalone triple-quoted string that opens a def, class or module) count as documentation, so their text is translated too; a triple-quoted string used as a value inside code stays code.

Boundary rules: Python-style # and // open a comment outside a string or regex literal, so value=1# note counts as a comment; shell-style # and -- need a word boundary, so a CLI flag such as --deployment stays code. C-style block comments are tracked across lines, so a generator method starting with * stays code. Comment markers inside quoted strings or JavaScript regex literals and multiline template literals stay code. A docstring is only a standalone triple-quoted string that opens a suite, not a triple-quoted value inside an expression or conditional. A line with other executable code stays byte-identical. Opening and closing fence lines stay byte-identical too.

  • Never translate a shebang (#!...), a string literal used as a value, a variable name or any code token.
  • validateTranslatedBlock compares code via codeBlocksMatch(), which strips comments per the fence's language tag. A translated comment passes; a changed, dropped or commented-out code line still fails and the block is retried.
  • When editing a translation by hand, translate its comments and docstrings too.
Values, headings and punctuation

Values the caller sends are not prose. In code blocks and in prose labels they stay byte-for-byte identical to the English source:

  • booleans true / false, enums such as auto, disabled, standard, fast, mp4, mov, JSON keys, model ids, endpoint paths
  • the label punctuation and its own line: true: stays true:, standard = stays standard =, and every labelled item keeps its own line (mp4: must not be glued to the sentence above it)
  • only the explanation after the label is translated: true: Returns the last frame becomes true: 最終フレームを返します, never 真:…

Headings: translate the heading text the way the target language's pages do (ja スキーマ / 入力 / 出力, ko 스키마 / 입력 / 출력, zh 输入 / 输出), and keep any {#anchor} exactly as the English source has it. Chinese model pages conventionally keep ## Schema in English, so leave that heading alone for zh.

Other rules that the reviews keep flagging:

  • Chinese prose uses full-width punctuation (,。:;()), not ASCII commas or colons.
  • Terminology follows the glossary (glossary.mjs and the per-language overrides) and stays consistent inside a file; no invented words (fixed is 固定, not 顶固). Keep senses apart: an English link pointing at a URL or a document is a 链接, a link between nodes in a graph (LLink, node connections, canvas wiring) is a 连线.
  • Never reverse the polarity of a sentence: so it applies here must not become so it does not apply here, and a limit that "never adjudicates a real prompt" is not an instruction to configure it.
Title / description frontmatter (localized pages)

title and description frontmatter carry localized meaning, not word-for-word translation. Localized titles keep the official product name untranslated; descriptions convey the same scope as EN within 40-160 chars. When an EN page's title/description changes in this repo, the zh/ja/ko values are updated in the same commit. Rules and examples: .cursor/rules/docs-frontmatter.mdc.

Environment (.env.local)

VariablePurpose
TRANSLATE_API_KEYPrimary API key
TRANSLATE_API_BASE_URLOpenAI-compatible endpoint
TRANSLATE_API_MODELe.g. deepseek-v4-pro, qwen-mt-plus
TRANSLATE_CONCURRENCYParallel requests (default 5)
FRONTEND_LOCALES_URLOptional; override remote locale URL for glossary sync
FRONTEND_LOCALES_PATHOptional; use a local frontend checkout instead of remote

Requires Bun.

Commands

CommandAction
pnpm translatePending pages + snippets, all languages
pnpm translate:dry-runPreview pending work
pnpm translate:forceRe-translate everything
pnpm translate -- --lang zh,jaSpecific languages
pnpm translate -- path/to/page.mdxSpecific file(s)
pnpm translate:snippetsSnippets only
pnpm translate -- --pages-onlySkip snippets
pnpm translate:check-truncationScan for truncated output
pnpm translate:repair-fencesAppend missing closing ``` (no API)
pnpm translate:repair-truncated -- --lang koRe-translate flagged files
pnpm translate:sync-hashRefresh hashes after manual zh/ja/ko edits (no API)
pnpm translate -- --with-docs-jsonTranslate then sync docs.json nav (opt-in)
pnpm translate:sync-docs-jsonSync docs.json nav paths only (labels preserved)
pnpm translate:sync-docs-json -- --translate-nav-labelsAlso translate new EN nav labels
pnpm glossary:syncRebuild glossary from ComfyUI frontend
pnpm glossary:sync:dry-runPreview glossary sync

Logs (gitignored): .github/i18n-logs/translate/

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

Standard workflow

After editing English MDX
bash
pnpm translate:dry-run                    # see pending
pnpm translate -- changelog/index.mdx   # or specific paths
pnpm translate:check-truncation         # if long page / changelog
Small English edits (manual translation)

When only a line or paragraph changed:

bash
# 1. Edit English + update zh/ja/ko by hand (or ask Cursor to patch matching sections)
# 2. Sync hashes so translate skips the file
pnpm translate:sync-hash -- path/to/page.mdx
pnpm translate:sync-hash -- --verify path/to/page.mdx   # optional sanity check

For larger or new sections, use pnpm translate -- path/to/page.mdx (chunked pages only re-translate changed ## sections when auto_chunk applies).

Changelog (changelog/index.mdx)
  • Strategy: update_blocks (configured in translation-config.json)
  • Only new or changed <Update label="vX"> blocks are translated (by label + translationBlockHashes)
  • Dates in description are localized automatically (ja/zh/ko formats)
  • Block hashes stored in translationBlockHashes frontmatter

Omit from English changelog when triaging ComfyUI commits — these are ComfyUI-WIKI sync PRs, not core product features:

SkipTypical pattern
Embedded docsupdate embedded docs to v…, comfyui-embedded-docs bump
Workflow templatesupdate workflow templates to v…, comfyui-workflow-templates bump
Model blueprintsAdd new model blueprints, template-library starter workflows

Do not add bullets for dependency-only version bumps. See also cms-changelog-sync for CMS popup rules.

Docs changelog bullet URLs (same as local CMS): matching blog.comfy.org post first, then the GitHub PR, then the ComfyUI repo commit/tag/compare. Do not use Cloud ?template= links on the docs changelog. Cloud popup URLs are a separate rule in cms-changelog-sync.

bash
pnpm translate -- changelog/index.mdx
pnpm translate -- changelog/index.mdx --lang zh
Long pages (truncation risk)
StrategyWhenConfig
heading_sectionsLong reference pageschunked_files or auto_chunk (≥3k chars, ≥2 ##)
update_blocksChangelogchunked_files entry for changelog/index.mdx

Oversized individual ## blocks (e.g. many Mintlify Tabs) are sub-chunked when they exceed auto_chunk.max_block_chars (default 6000): Tabs → ### → fence-safe size splits. Invalid/truncated blocks stay pending (hash not updated).

Checkpoints per block — safe to resume after interrupt.

bash
pnpm translate -- tutorials/partner-nodes/pricing.mdx --lang ko
pnpm translate:check-truncation -- --lang ko
pnpm translate:repair-truncated -- --lang ko

Terminology (glossary)

Three layers — see .github/scripts/i18n/README.md for detail:

LayerFile / configEffect
preserve_termstranslation-config.jsonKeep English (LoRA, checkpoint, …)
glossary/frontend/{lang}.jsonMachine-syncedMirror ComfyUI frontend
glossary/overrides/{lang}.jsonHand-editedCorrections; wins over frontend
bash
pnpm glossary:sync              # after frontend locale updates
# Edit overrides/{lang}.json for term decisions
# Edit preserve_terms for English-only terms

Never hand-edit glossary/frontend/ — run glossary:sync.

Skipped paths

translation-config.json → skip_paths: e.g. built-in-nodes (not auto-translated).

Agent checklist

When user updates English docs and needs translations:

  • Identify changed files (or run pnpm translate:dry-run)
  • For small edits: hand-update translations, then pnpm translate:sync-hash -- <path>
  • For larger edits: run pnpm translate for affected paths — not cms:prepare unless CMS/Strapi
  • For changelog, translate docs zh/changelog/ etc., not CMS staging
  • After long pages, run pnpm translate:check-truncation
  • Commit translated MDX + updated translationSourceHash / translationBlockHashes
  • Do not commit .github/i18n-logs/
  • Do not expect pnpm translate to edit docs.json; if EN nav structure changed, run pnpm translate:sync-docs-json (or --with-docs-json) separately
  • Optional quality pass: skill docs-i18n-review

Key files

PathRole
.github/scripts/i18n/translate-i18n.tsEntry point
.github/scripts/i18n/chunked-translate.tsBlock splitting/reassembly
.github/scripts/i18n/sync-hash-i18n.tsHash-only sync after manual edits
.github/scripts/i18n/translation-config.jsonLanguages, skip paths, chunked files
.github/scripts/i18n/glossary.mjsTerm injection
.github/scripts/i18n/README.mdFull reference
.github/workflows/i18n-sync-check.ymlPR reminder for missing translations

Troubleshooting

IssueFix
File skippedEnglish hash unchanged — use pnpm translate:force or edit EN source
Manual translation donepnpm translate:sync-hash -- <path> to refresh hashes
Truncated translationtranslate:repair-truncated or add to chunked_files
Missing closing ``` onlytranslate:repair-fences (structural); re-translate if code inside block was cut
Wrong termglossary/overrides/{lang}.json or preserve_terms
PR i18n commentRun pnpm translate for listed files
Changelog date still EnglishRe-run translate for that block; dates derived from EN

Docs vs CMS translation

Docs (pnpm translate)CMS (pnpm cms:prepare)
Output{lang}/changelog/index.mdxstaging/{lang}/… (gitignored)
English sourceFull docs changelogLLM-simplified staging EN
PurposeMintlify siteStrapi in-app popup
CommitYesNo (staging gitignored)

© Comfy-Org, GPL-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 .cursor/skills/docs-i18n-translate of Comfy-Org/docs.

Open the folder on GitHubat commit 2c66540

Compare with similar skills

Docs I18n Translate 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.

Docs I18n Translate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Docs I18n Translate this skillComfy-Org/docs299—~3.2kAutomated safety check: NotesGPL-3.0
Managing MCP IndexComfy-Org/workflow_templates1.3k—~1.9kAutomated safety check: NotesMIT
Fantasia Markdown Dialogsvishiri/fantasia-archive409—~387Automated safety check: PassGPL-3.0
Managing TemplatesComfy-Org/workflow_templates1.3k—~2.8kAutomated safety check: PassMIT
Nacos Download Pagenacos-group/nacos-group.github.io115—~1.9kAutomated safety check: PassApache-2.0
Plane UI Translationmakeplane/plane61k—~16kAutomated safety check: PassAGPL-3.0

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
  • Fantasia Markdown Dialogs

    vishiri/fantasia-archive

    Implements or edits markdown-backed dialogs using Quasar QMarkdown and i18n- sourced document strings.

    409 GitHub stars~387 tokensUpdated 2 days ago
    Frontend & DesignAuto-check passed
  • Managing Templates

    Comfy-Org/workflow_templates

    Manages ComfyUI workflow templates end-to-end: add new templates and rename existing ones (files, index metadata, bundles, i18n, package sync).

    1.3k GitHub stars~2.8k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Nacos Download Page

    nacos-group/nacos-group.github.io

    Updates Nacos download page and release history from a GitHub release URL.

    115 GitHub stars~1.9k tokensUpdated 16 days ago
    Documents & OfficeAuto-check passed
  • Plane UI Translation

    makeplane/plane

    Sets the rules for translating and updating Plane's UI strings across locales: do-not-translate terms, plural forms, placeholders and AI translation review.

    61k GitHub stars~16k tokensUpdated yesterday
    Writing & ContentAuto-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 Comfy-Org/docs

  • Docs I18n Review

    Comfy-Org/docs

    Review ComfyUI docs translation quality with LLM-as-a-judge (review-i18n.ts).

    299 GitHub stars~926 tokensUpdated today
    Auto-check: notes
  • Cms Changelog Sync

    Comfy-Org/docs

    Sync ComfyUI release notes to Strapi CMS: LLM-simplify English changelog for in-app popup, translate to zh/ja/ko/fr/ru/es in staging, push drafts to CMS.

    299 GitHub stars~5.2k tokensUpdated today
    Auto-check: warnings

Works with

Questions about Docs I18n Translate

What does Docs I18n Translate do?

Translate ComfyUI Mintlify docs from English MDX to ja/zh/ko using translate-i18n.ts. Docs I18n Translate is an agent skill from Comfy-Org/docs.ts.

When should I use Docs I18n Translate?

Docs I18n Translate fits situations like: translating docs; updating zh/ja/ko changelog; running pnpm translate; translationSourceHash.

How do I install Docs I18n Translate in Claude Code?

Run `npx skills add Comfy-Org/docs --skill docs-i18n-translate -a claude-code`. Or copy the skill folder (.cursor/skills/docs-i18n-translate in Comfy-Org/docs) into .claude/skills/docs-i18n-translate in your project. Claude Code loads it when a task matches its description.

How do I install Docs I18n Translate in Codex?

Run `npx skills add Comfy-Org/docs --skill docs-i18n-translate -a codex`. Or copy the skill folder (.cursor/skills/docs-i18n-translate in Comfy-Org/docs) into .agents/skills/docs-i18n-translate in your project. Codex loads it when a task matches its description.

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

What does Docs I18n Translate need to run?

Going by SKILL.md and its folder, Docs I18n Translate needs the command-line tools its instructions call (pnpm) and credentials named TRANSLATE_API_KEY. Our summary lists: Python 3; A credential in TRANSLATE_API_KEY.

Does Docs I18n Translate access the network?

SKILL.md names 2 domains. As links in the text: github.com and blog.comfy.org. This is read from the text; nothing was executed.

Is Docs I18n Translate safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Docs I18n Translate use?

Docs I18n Translate is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Docs I18n Translate use?

About 3.2k tokens (SKILL.md is roughly 13k 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 Docs I18n Translate?

Skills that share tags, products or a category with Docs I18n Translate: Managing MCP Index (Comfy-Org/workflow_templates, 1.3k stars), Fantasia Markdown Dialogs (vishiri/fantasia-archive, 409 stars), Managing Templates (Comfy-Org/workflow_templates, 1.3k stars) and Nacos Download Page (nacos-group/nacos-group.github.io, 115 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Docs I18n Translate?

Comfy-Org (a GitHub organization) maintains it in Comfy-Org/docs, which has 299 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 9, 2026.

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