Claude Desktop Chinese Localization
javaht/claude-desktop-zh-cn
Adds missing Simplified and Traditional Chinese translations to the Claude Desktop Chinese patch across three layers, then checks how many mappings actually hit.
LLM Agent 多语言注入规范。在修改 Agent 提示词、添加新的 Agent 端点、处理用户可见的后端消息(messagecode)时使用。
$ npx skills add microsoft/data-formulator --skill language-injection -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/data-formulator language-injection --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/microsoft/data-formulator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/language-injection .claude/skills/language-injection && 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 "language-injection" agent skill from https://github.com/microsoft/data-formulator/tree/main/.cursor/skills/language-injection into .claude/skills/language-injection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "language-injection", 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/microsoft/data-formulator/tree/main/.cursor/skills/language-injectionType 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 microsoft/data-formulator --skill language-injection -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/data-formulator language-injection --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/data-formulator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.cursor/skills/language-injection .agents/skills/language-injection && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "language-injection" agent skill from https://github.com/microsoft/data-formulator/tree/main/.cursor/skills/language-injection into .agents/skills/language-injection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "language-injection", 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 microsoft/data-formulator --skill language-injection -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/data-formulator language-injection --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/data-formulator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.cursor/skills/language-injection .cursor/skills/language-injection && 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 "language-injection" agent skill from https://github.com/microsoft/data-formulator/tree/main/.cursor/skills/language-injection into .cursor/skills/language-injection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "language-injection", 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/microsoft/data-formulator.git --path .cursor/skills/language-injection--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 microsoft/data-formulator --skill language-injection -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/data-formulator language-injection --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/data-formulator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.cursor/skills/language-injection .gemini/skills/language-injection && 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 "language-injection" agent skill from https://github.com/microsoft/data-formulator/tree/main/.cursor/skills/language-injection into .gemini/skills/language-injection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "language-injection", 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 microsoft/data-formulator language-injectionInstalls 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 microsoft/data-formulator --skill language-injection -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft/data-formulator.git skills-src && mkdir -p .github/skills && cp -r skills-src/.cursor/skills/language-injection .github/skills/language-injection && 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 "language-injection" agent skill from https://github.com/microsoft/data-formulator/tree/main/.cursor/skills/language-injection into .github/skills/language-injection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "language-injection", 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 microsoft/data-formulator --skill language-injection -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install microsoft/data-formulator language-injection --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/data-formulator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.cursor/skills/language-injection .opencode/skills/language-injection && 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 "language-injection" agent skill from https://github.com/microsoft/data-formulator/tree/main/.cursor/skills/language-injection into .opencode/skills/language-injection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "language-injection", 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.
language-injectionLLM Agent 多语言注入规范。在修改 Agent 提示词、添加新的 Agent 端点、处理用户可见的后端消息(messagecode)时使用。
Language Injection is an agent skill from microsoft/data-formulator, published by the product's own GitHub organization. LLM Agent 多语言注入规范。在修改 Agent 提示词、添加新的 Agent 端点、处理用户可见的后端消息(messagecode)时使用。
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 Frontend & Design. It works with Python. The repository describes itself as: 🪄 Data Formulator is an interactive AI-powered data analysis system makes it easy to connect, explore and visualize data. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5477f0e. 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 (its code samples are python and typescript).
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.
Language Injection loads about 1.2k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 283 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 microsoft/data-formulator at commit 5477f0e, republished under its MIT licence (© microsoft). 283 words, ~1,230 tokens.
.claude/skills/language-injection/SKILL.md (or your agent's skills folder).Authoritative developer guide: docs/dev-guides/6-i18n-language-injection.md.
Prerequisites: Read
docs/dev-guides/6-i18n-language-injection.mdbefore changing Agent prompts, Agent routes, backend user-visible messages, or frontend i18n strings. If your work introduces new language injection patterns or conventions, update this file and related dev-guides accordingly.
Frontend i18n.language → Accept-Language header → get_language_instruction()
│
build_language_instruction()
(agents/agent_language.py)
│
┌────────────┴────────────┐
▼ ▼
mode="full" mode="compact"
(text-heavy agents) (code-gen agents)| Module | Role |
|---|---|
agents/agent_language.py | build_language_instruction(lang, mode) — generates prompt fragments; inject_language_instruction() — injects into system prompts; supports 20 languages; returns "" for English |
routes/agents.py → get_language_instruction() | Reads Accept-Language header, delegates to build_language_instruction |
routes/agents.py → _get_ui_lang() | Extracts primary language code from Accept-Language header |
src/app/utils.tsx → fetchWithIdentity() | Sets Accept-Language header on every API request from i18n.language |
src/app/utils.tsx → translateBackend() | Translates backend message_code / content_code using frontend i18n |
# In a Flask route handler:
lang_instruction = get_language_instruction(mode="compact")
lang_suffix = f"\n\n{lang_instruction}" if lang_instruction else ""
messages = [
{"role": "system", "content": "You are a helpful assistant." + lang_suffix},
{"role": "user", "content": user_input},
]from data_formulator.agents.agent_language import inject_language_instruction
# Simple append (most agents)
system_prompt = inject_language_instruction(system_prompt, language_instruction)
# Insert before a marker (complex prompts)
system_prompt = inject_language_instruction(
system_prompt, language_instruction,
marker="**About the execution environment:**"
)For fixed strings in Python that appear in the UI, do NOT translate in Python.
Return a message_code and let the frontend translate:
# In an Agent or route handler:
yield {
"type": "error",
"message": "Output DataFrame is empty (0 rows).", # English fallback
"message_code": "agent.emptyDataframe", # frontend i18n key
}
# With parameters:
result = {
"status": "error",
"content": f"Fields not found: {missing}",
"content_code": "agent.fieldsNotFound",
"content_params": {"missing": missing, "available": available},
}Frontend consumption:
import { translateBackend } from '../app/utils';
const msg = translateBackend(event.message, event.message_code, event.message_params);Translation keys go in src/i18n/locales/{en,zh}/messages.json under messages.agent.*.
| Pattern | Why it's wrong |
|---|---|
os.environ.get("DF_DEFAULT_LANGUAGE") | Process-level — all users get same language; breaks multi-user |
| Global LLM client interceptor | Hidden behavior; can't distinguish full/compact mode; fragile string detection |
New MessageBuilder class | Duplicates agent_language.py; creates parallel conflicting abstractions |
Hardcoded "回答请使用中文" in prompts | Not configurable; skips the mode system; breaks for other languages |
Backend-side translation dict (agent_messages.py) | Forces adding every new language to Python; translations should all live in src/i18n/locales/ |
Hardcoded English UI strings in .tsx without t() | Not translatable; use useTranslation + t('key') |
LANGUAGE_DISPLAY_NAMES in agents/agent_language.py.LANGUAGE_EXTRA_RULES (e.g. simplified vs traditional Chinese).src/i18n/locales/<lang>/ — copy an existing locale folder as template.© microsoft, MIT. 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 .cursor/skills/language-injection of microsoft/data-formulator.
Open the folder on GitHubat commit 5477f0e
Language Injection 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 |
|---|---|---|---|---|---|---|
| Language Injection this skillmicrosoft/data-formulator | 18k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Claude Desktop Chinese Localizationjavaht/claude-desktop-zh-cn | 7.5k | — | ~1.6k | Automated safety check: Pass | MIT | |
| DocsPrefectHQ/fastmcp | 28k | — | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Oil UIoil-oil/oil-ui | 1k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Jarvis Setupethanplusai/jarvis | 838 | — | ~2.5k | Automated safety check: Notes | Custom licence | |
| Ibm A11y Route Scanlangflow-ai/langflow | 156k | — | ~1.6k | Automated safety check: Pass | MIT |
javaht/claude-desktop-zh-cn
Adds missing Simplified and Traditional Chinese translations to the Claude Desktop Chinese patch across three layers, then checks how many mappings actually hit.
PrefectHQ/fastmcp
Write or revise a page under docs/ for gofastmcp.com. An agent skill from PrefectHQ/fastmcp.
oil-oil/oil-ui
Design, improve, and review interfaces for websites, apps, dashboards, and components: explore distinct design directions, compare styles side by side, and refine visual hierarchy against real…
ethanplusai/jarvis
A skill your agent uses when helping someone install, configure, or debug a fresh clone of JARVIS (this repo) — especially "the mic doesn't work", "JARVIS says his language systems are down", any…
langflow-ai/langflow
Batch-scan Langflow frontend routes for accessibility issues using the Python IBM Equal Access scanner (scripts/a11y/a11yscan.py) and produce JSON/Markdown/HTML reports.
calvinhxx/Fluent-Qt
Create, integrate, redesign, or fix C++ and PySide6 GUIs using FluentQt, including component and Gallery work.
microsoft/data-formulator
统一错误处理系统。在添加 API 端点、修改错误处理、添加前端 API 调用、编写错误相关测试时使用. An agent skill from microsoft/data-formulator.
microsoft/data-formulator
服务端路径安全与文件访问编码规范。在编写文件下载路由、Agent 工具(文件读取/目录列出)、数据连接器/Loader、Workspace 路径操作、沙箱配置时使用。
microsoft/data-formulator
Discover connected data sources, add new data connectors through a user-confirmed form, inspect table metadata, and run bounded read-only probes when the current workspace data is insufficient.
microsoft/data-formulator
Turn an exploration (threads, findings, charts) into a single Markdown report — note, blog post, executive summary, KPI dashboard, slide brief, or multi-section analytical report, with embedded…
microsoft/data-formulator
The analyst's built-in capabilities: data-inspection tools and the always-available actions (visualize and askuser).
Works with
Categories
LLM Agent 多语言注入规范。在修改 Agent 提示词、添加新的 Agent 端点、处理用户可见的后端消息(messagecode)时使用。. Language Injection is an agent skill from microsoft/data-formulator, published by the product's own GitHub organization.
Language Injection fits situations like: frontend & Design work in your project.
Run `npx skills add microsoft/data-formulator --skill language-injection -a claude-code`. Or copy the skill folder (.cursor/skills/language-injection in microsoft/data-formulator) into .claude/skills/language-injection in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft/data-formulator --skill language-injection -a codex`. Or copy the skill folder (.cursor/skills/language-injection in microsoft/data-formulator) into .agents/skills/language-injection 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 microsoft/data-formulator --skill language-injection -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/language-injection, .gemini/skills/language-injection, .github/skills/language-injection and .opencode/skills/language-injection in your project.
SKILL.md names no scripts, command-line tools or credentials: Language Injection is instructions for the agent only. Our summary lists: Python 3.
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.
Language Injection is published under the MIT 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.9k 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 Language Injection: Claude Desktop Chinese Localization (javaht/claude-desktop-zh-cn, 7.5k stars), Docs (PrefectHQ/fastmcp, 28k stars), Oil UI (oil-oil/oil-ui, 1k stars) and Jarvis Setup (ethanplusai/jarvis, 838 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
microsoft (a GitHub organization, an official publisher) maintains it in microsoft/data-formulator, which has 17,540 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 8, 2026.
Source: microsoft/data-formulator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.