mkdocs-translations — GitHub Copilot skill: translate MkDocs docs
Translates an entire MkDocs documentation tree into a target language, mirrors the folder structure and updates the i18n config. Useful when your docs live in English and you need another locale.
npx skills add github/awesome-copilot --skill mkdocs-translationsWhat mkdocs-translations does
The skill turns GitHub Copilot into a technical translator. You give it a language and locale code (es, fr, pt-BR, ko), and the agent walks through docs/docs/en and docs/docs/includes/en, translating every file one by one into a new folder named after that code. Folder layout and filenames stay the same.
Before writing anything, the agent creates a branch with git checkout -b docs-translation-. Headings, code blocks, metadata and links survive the translation, and each file gets a closing line naming the tool used. Include paths are rewritten for the new locale, so includes/en/introduction-event.md becomes includes/es/introduction-event.md. Then mkdocs.yml gets a new locale entry under the i18n plugin, along with nav_translations and admonition_translations.
The run is unattended: no confirmation prompts between files, and no comments about Markdown linting. That works well on a large docs set and badly if you want to review each page as it lands. Install it when the English docs are stable and you need the whole translation; for a couple of pages, do it by hand.
What it helps with
- translate a full MkDocs documentation set into a new language
- keep folder structure and Markdown intact during translation
- rewrite include paths for the new locale
- register a locale in the i18n plugin in mkdocs.yml
- translate nav and admonition labels for a multilingual site
Example prompts for the agent
- Translate the docs in docs/docs/en into Brazilian Portuguese, locale code pt-BR
- Create a French version of docs/docs/en and docs/docs/includes/en
- Add the es locale to mkdocs.yml and translate the navigation
How to install mkdocs-translations
1Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill mkdocs-translations2GitHub CLI
gh skill install github/awesome-copilot mkdocs-translations3Manually: put the files in place
.github/skills/mkdocs-translations/SKILL.md1Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill mkdocs-translations -a claude-code2Manually: put the files in place
~/.claude/skills/mkdocs-translations/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/mkdocs-translations/
Manually: put the files in place
.agents/skills/mkdocs-translations/SKILL.mdFor all projects use ~/.agents/skills/
Manually: put the files in place
.cursor/skills/mkdocs-translations/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
Platform CLI
gemini skills install https://github.com/github/awesome-copilot --path skills/mkdocs-translationsManually: put the files in place
.devin/skills/mkdocs-translations/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set554
The whole set →Similar
Questions about mkdocs-translations
How do I install mkdocs-translations in GitHub Copilot?
Run npx skills add github/awesome-copilot --skill mkdocs-translations or gh skill install github/awesome-copilot mkdocs-translations. The skill file lands at .github/skills/mkdocs-translations/SKILL.md.
What does mkdocs-translations do?
It translates files from docs/docs/en and docs/docs/includes/en into the language you specify, mirrors the directory tree, and updates mkdocs.yml for the i18n plugin.
Does it ask for confirmation on each file?
No. It moves through the file list automatically and keeps going until every file is translated.
Source text
SKILL.md · MIT
---
name: mkdocs-translations
description: 'Generate a language translation for a mkdocs documentation stack.'
---
# MkDocs AI Translator
## Role
You are a professional technical writer and translator.
## Required Input
**Before proceeding, ask the user to specify the target translation language and locale code.**
Examples:
- Spanish (`es`)
- French (`fr`)
- Brazilian Portuguese (`pt-BR`)
- Korean (`ko`)
Use this value consistently in folder names, translated content paths, and MkDocs configuration updates. Once confirmed, proceed with the instructions below.
---
## Objective
Translate all documentation from the `docs/docs/en` and `docs/docs/includes/en` folders into the specified target language. Preserve the original folder structure and all Markdown formatting.
---
## File Listing and Translation Order
The following is the task list you must complete. Check each item off as it is done and report that to the user.
- [ ] Begin by listing all files and subdirectories under `docs/docs/en`.
- [ ] Then list all files and subdirectories under `docs/docs/includes/en`.
- [ ] Translate **every file** in the list **one by one** in the order shown. Do not skip, reorder, or stop after a fixed number of files.
- [ ] After each translation, **check whether there are remaining files** that have not yet been translated. If there are, **continue automatically** with the next file.
- [ ] Do **not** prompt for confirmation, approval, or next steps—**proceed automatically** until all files are translated.
- [ ] Once completed, confirm that the number of translated files matches the number of source files listed. If any files remain unprocessed, resume from where you left off.
---
## Folder Structure and Output
Before starting to create **any** new files, create a new git branch using the terminal command `git checkout -b docs-translation-<language>`.
- Create a new folder under `docs/docs/` named using the ISO 639-1 or locale code provided by the user.
Examples:
- `es` for Spanish
- `fr` for French
- `pt-BR` for Brazilian Portuguese
- Mirror the exact folder and file structure from the original `en` directories.
- For each translated file:
- Preserve all Markdown formatting, including headings, code blocks, metadata, and links.
- Maintain the original filename.
- Do **not** wrap the translated content in Markdown code blocks.
- Append this line at the end of the file:
*Translated using GitHub Copilot and GPT-4o.*
- Save the translated file into the corresponding target language folder.
---
## Include Path Updates
- Update include references in files to reflect the new locale.
Example:
`includes/en/introduction-event.md` → `includes/es/introduction-event.md`
Replace `es` with the actual locale code provided by the user.
---
## MkDocs Configuration Update
- [ ] Modify the `mkdocs.yml` configuration:
- [ ] Add a new `locale` entry under the `i18n` plugin using the target language code.
- [ ] Provide appropriate translations for:
- [ ] `nav_translations`
- [ ] `admonition_translations`
---
## Translation Rules
- Use accurate, clear, and technically appropriate translations.
- Always use computer industry-standard terminology.
Example: prefer "Stack Tecnológica" over "Pila Tecnológica".
**Do not:**
- Comment on, suggest changes for, or attempt to fix any formatting or Markdown linting issues.
This includes, but is not limited to:
- Missing blank lines around headings or lists
- Trailing punctuation in headings
- Missing alt text for images
- Improper heading levels
- Line length or spacing issues
- Do not say things like:
_"There are some linting issues, such as…"_
_"Would you like me to fix…"_
- Never prompt the user about any linting or formatting issues.
- Do not wait for confirmation before continuing.
- Do not wrap the translated content or file in Markdown code blocks.
---
## Translating Includes (`docs/docs/includes/en`)
- Create a new folder under `docs/docs/includes/` using the target language code provided by the user.
- Translate each file using the same rules as above.
- Maintain the same file and folder structure in the translated output.
- Save each translated file in the appropriate target language folder.
© github · MIT · github/awesome-copilot