Translation Diff Export
Devolutions/UniGetUI
Compares UniGetUI JSON locale files against English, identifies untranslated or source-changed keys, and generates patch, reference, and handoff files for a target language.
Judge a zh or ja page as the owner of that edition would: a fresh agent reads it beside its English source against the language's formatting guide and the glossary, marks the sentences that fall…
$ npx skills add langgenius/dify-docs --skill dify-docs-translation-test -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install langgenius/dify-docs dify-docs-translation-test --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/langgenius/dify-docs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/dify-docs-translation-test .claude/skills/dify-docs-translation-test && rm -rf skills-srcUse ~/.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/
Install the "dify-docs-translation-test" agent skill from https://github.com/langgenius/dify-docs/tree/main/.claude/skills/dify-docs-translation-test into .claude/skills/dify-docs-translation-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dify-docs-translation-test", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/langgenius/dify-docs/tree/main/.claude/skills/dify-docs-translation-testType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add langgenius/dify-docs --skill dify-docs-translation-test -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install langgenius/dify-docs dify-docs-translation-test --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langgenius/dify-docs.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/dify-docs-translation-test .agents/skills/dify-docs-translation-test && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dify-docs-translation-test" agent skill from https://github.com/langgenius/dify-docs/tree/main/.claude/skills/dify-docs-translation-test into .agents/skills/dify-docs-translation-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dify-docs-translation-test", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add langgenius/dify-docs --skill dify-docs-translation-test -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install langgenius/dify-docs dify-docs-translation-test --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langgenius/dify-docs.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/dify-docs-translation-test .cursor/skills/dify-docs-translation-test && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dify-docs-translation-test" agent skill from https://github.com/langgenius/dify-docs/tree/main/.claude/skills/dify-docs-translation-test into .cursor/skills/dify-docs-translation-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dify-docs-translation-test", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/langgenius/dify-docs.git --path .claude/skills/dify-docs-translation-test--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add langgenius/dify-docs --skill dify-docs-translation-test -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install langgenius/dify-docs dify-docs-translation-test --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langgenius/dify-docs.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/dify-docs-translation-test .gemini/skills/dify-docs-translation-test && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dify-docs-translation-test" agent skill from https://github.com/langgenius/dify-docs/tree/main/.claude/skills/dify-docs-translation-test into .gemini/skills/dify-docs-translation-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dify-docs-translation-test", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install langgenius/dify-docs dify-docs-translation-testInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add langgenius/dify-docs --skill dify-docs-translation-test -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/langgenius/dify-docs.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/dify-docs-translation-test .github/skills/dify-docs-translation-test && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dify-docs-translation-test" agent skill from https://github.com/langgenius/dify-docs/tree/main/.claude/skills/dify-docs-translation-test into .github/skills/dify-docs-translation-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dify-docs-translation-test", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add langgenius/dify-docs --skill dify-docs-translation-test -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install langgenius/dify-docs dify-docs-translation-test --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langgenius/dify-docs.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/dify-docs-translation-test .opencode/skills/dify-docs-translation-test && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dify-docs-translation-test" agent skill from https://github.com/langgenius/dify-docs/tree/main/.claude/skills/dify-docs-translation-test into .opencode/skills/dify-docs-translation-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dify-docs-translation-test", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dify-docs-translation-testJudge a zh or ja page as the owner of that edition would: a fresh agent reads it beside its English source against the language's formatting guide and the glossary, marks the sentences that fall…
Dify Docs Translation Test is an agent skill from langgenius/dify-docs. Judge a zh or ja page as the owner of that edition would: a fresh agent reads it beside its English source against the language's formatting guide and the glossary, marks the sentences that fall short, and returns a ship verdict on the work of this round. Runs in the pipeline's Check stage after the editor test.
Its SKILL.md is about 1.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 Writing & Content, covering Translation. It works with Dify. The licence is CC-BY-4.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 01f1cb6. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dify Docs Translation Test loads about 1.2k tokens when it runs. Until then it costs about 85 tokens; SKILL.md has 282 words of instructions outside code blocks.
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.
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.
The full file from langgenius/dify-docs at commit 01f1cb6, republished under its CC-BY-4.0 licence (© langgenius). 282 words, ~1,179 tokens.
.claude/skills/dify-docs-translation-test/SKILL.md (or your agent's skills folder).The CJK linter measures mechanics. This test measures the translation: whether it says what the English says, in the language a native reader would write. It only measures anything if the judge has not seen the translating: a fresh sub-agent gets the translated page, its English source, the language's guide, and the glossary, and nothing else.
subagent_type: general-purpose) with the template below, filling {LANG} (Chinese or Japanese), {GUIDE} (tools/translate/formatting-zh.md or tools/translate/formatting-ja.md), {GLOSSARY} (writing-guides/glossary.md), {SOURCE} (the English page, absolute path), {DRAFT} (the translated page, absolute path), and {CHANGED} ("the whole page", or the sections and paragraphs this round changed). When one judge reads several pages, the page block (files 3 and 4 and the changed line) and the reply repeat per page, under the page's path. Put nothing else in the prompt.You are the editor of the {LANG} edition of a documentation set, reading a
translated page the way its owner would before deciding whether it can ship.
Read exactly these files, in this order:
1. {GUIDE}: the whole guide. Its translation-quality sections describe
the failures you are looking for; the rest of the guide is context for
them, and its formatting rules are checked elsewhere.
2. {GLOSSARY}: the terms and UI labels, with their {LANG} forms.
Then, for each page under review:
3. {SOURCE}: the English page. It is what the translation has to say.
4. {DRAFT}: the {LANG} page under review.
This round changed: {CHANGED}. Read the whole page regardless; a
sentence is judged in the context the page gives it.
Read nothing else and run no other command.
Mark every sentence that falls short, quoting it, with one tag each. A
sentence, block (a list, table, code block, callout, or image), or section
of the English page with no counterpart in the translation is marked too,
quoting the English:
- meaning: says something the English does not, or drops something it
does (a condition, a restriction, a qualifier such as "only", a whole
sentence, block, or section)
- structure: carries the English clause structure or sentence order where
a native writer would not
- register: a word in the wrong register for its context
- term: a general term whose {LANG} form is not the glossary's, or a UI
label that does not correspond to the label the English page names
- tell: a translationese pattern the guide lists
- rule: breaks a translation rule the guide states and the tags above do
not name (a standard phrase, a katakana convention, an app-type name);
name the section
Then give one verdict on this round's work: Ship with light edits / Needs
heavy edits / Needs retranslation, with one sentence on what decided it.
Marks outside the change do not move the verdict; list them separately.
Do not check formatting, links, or facts beyond what the English page
says. Do not rewrite. Judge only whether a native reader would take this
page for one written in {LANG}.
Reply with exactly this, once per page, under the page's path:
- **Marked, in this change**: [quoted sentence, or the missing English unit — tag — five words on why; for rule, the section], one per line, or "none"
- **Marked, elsewhere on the page**: same form, or "none"
- **Best passage**: [the section that reads as written, in a phrase]
- **Verdict**: [one of the three, and the deciding sentence]© langgenius, CC-BY-4.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/dify-docs-translation-test of langgenius/dify-docs.
Open the folder on GitHubat commit 01f1cb6
Dify Docs Translation Test 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dify Docs Translation Test this skilllanggenius/dify-docs | 178 | — | ~1.2k | Automated safety check: Pass | CC-BY-4.0 | |
| Translation Diff ExportDevolutions/UniGetUI | 26k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Sync Translationssymfony/symfony | 31k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Translation Diff ImportDevolutions/UniGetUI | 26k | — | ~750 | Automated safety check: Pass | MIT | |
| Translation Diff TranslateDevolutions/UniGetUI | 26k | — | ~934 | Automated safety check: Pass | MIT | |
| Generate Translationspayloadcms/payload | 45k | — | ~1.1k | Automated safety check: Pass | MIT |
Devolutions/UniGetUI
Compares UniGetUI JSON locale files against English, identifies untranslated or source-changed keys, and generates patch, reference, and handoff files for a target language.
symfony/symfony
Synchronize translation catalogs across maintained Symfony branches: find messages that newer branches added to the English catalogs but that are still missing from the oldest maintained branch…
Devolutions/UniGetUI
Merges translated key-value pairs from a UniGetUI JSON localization patch back into the full language file and validates the merged result.
Devolutions/UniGetUI
Translates a sparse UniGetUI JSON language patch, writes completed entries into the working copy, preserves placeholders and terminology, and prepares the patch for merge-back.
payloadcms/payload
A skill your agent uses when new translation keys are added to packages to generate new translations strings
Narcooo/inkos
Drives long-form fiction, scripts, storyboards, interactive films and long-document translation through InkOS, with every change made by a typed action.
langgenius/dify-docs
Research a Dify feature before writing or optimizing documentation.
langgenius/dify-docs
Check formatting compliance in changed documentation against writing-guides/formatting-guide.md and tools/translate/formatting-{zh,ja}.md.
langgenius/dify-docs
Audit terminology consistency across documentation against the codebase UI labels and the glossary — in prose and in the UI strings shown in screenshots.
langgenius/dify-docs
Rule pack for the Service API specs ({en,zh,ja}/api-reference/openapiservice.json): spec conventions, app-type scoping, code-verification rules, and the audit machinery.
langgenius/dify-docs
Rule pack for the environment variable reference — en/self-host/deploy/configuration/environments.mdx.
langgenius/dify-docs
The entry point for writing or revising any documentation in this repo: user guides, deployment pages, plugin-dev pages, API specs, the env-var reference, CLI pages.
Works with
Categories
Judge a zh or ja page as the owner of that edition would: a fresh agent reads it beside its English source against the language's formatting guide and the glossary, marks the sentences that fall…. Dify Docs Translation Test is an agent skill from langgenius/dify-docs. Judge a zh or ja page as the owner of that edition would: a fresh agent reads it beside its English source against the language's formatting guide and the glossary, marks the sentences that fall short, and returns a ship verdict on the work of this round.
Dify Docs Translation Test fits situations like: tasks that involve Translation.
Run `npx skills add langgenius/dify-docs --skill dify-docs-translation-test -a claude-code`. Or copy the skill folder (.claude/skills/dify-docs-translation-test in langgenius/dify-docs) into .claude/skills/dify-docs-translation-test in your project. Claude Code loads it when a task matches its description.
Run `npx skills add langgenius/dify-docs --skill dify-docs-translation-test -a codex`. Or copy the skill folder (.claude/skills/dify-docs-translation-test in langgenius/dify-docs) into .agents/skills/dify-docs-translation-test in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add langgenius/dify-docs --skill dify-docs-translation-test -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dify-docs-translation-test, .gemini/skills/dify-docs-translation-test, .github/skills/dify-docs-translation-test and .opencode/skills/dify-docs-translation-test in your project.
SKILL.md names no scripts, command-line tools or credentials: Dify Docs Translation Test is instructions for the agent only.
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.
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.
Dify Docs Translation Test is published under the CC-BY-4.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 4.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Dify Docs Translation Test: Translation Diff Export (Devolutions/UniGetUI, 26k stars), Sync Translations (symfony/symfony, 31k stars), Translation Diff Import (Devolutions/UniGetUI, 26k stars) and Translation Diff Translate (Devolutions/UniGetUI, 26k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
langgenius (a GitHub organization) maintains it in langgenius/dify-docs, which has 178 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 8, 2026.
Source: langgenius/dify-docs on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.