readme-i18n
Skill344 starsChanged 6 months agoMITView on GitHub
Use 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 README variants in a GitHub-style repository.
- Reads credentials
We split this skill into the rules it gives an agent
27 rules. About 0 are common, 24 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈24
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
read the source-of-truth README
- Very specific: line 11
create localized sibling files such as README.zh.md
- Distinctive: line 13
add or update a shared language selector near the top of every variant
- Distinctive: line 27
If target languages are not named, inspect existing translated files, selectors, filenames, issues, or prior repo conventions.
- Distinctive: line 31
Treat the root README.md as the source-of-truth unless the user explicitly says otherwise.
- Distinctive: line 32
If the source language is ambiguous, ask once.
- Distinctive: line 33
Keep section order aligned with the source README.
- Distinctive: line 35
Update an existing language selector in place.
- Distinctive: line 39
If a glossary or do-not-translate list is provided, apply it consistently across every target language.
- Very specific: line 52
Read the source README once as structure, not prose.
- Distinctive: line 63
If the README already has localized siblings, inspect them too before choosing filenames or selector style.
- Distinctive: line 88
When in doubt, preserve the literal token and translate the surrounding sentence instead.
- Distinctive: line 92
Keep the same heading hierarchy and section order as the source.
- Distinctive: line 93
Keep the same number of code fences unless the user explicitly asks to rewrite examples.
- Distinctive: line 99
When a translated heading changes, GitHub will generate a different heading ID.
- Distinctive: line 103
verify that every intra-document anchor target resolves to an existing heading or explicit anchor
- Distinctive: line 105
Prefer a small heading wording adjustment over a broken anchor.
- Distinctive: line 109
Default to sibling filenames like:
- Distinctive: line 115
If the repo already uses a different multilingual naming pattern, keep using it consistently rather than forcing the default pattern.
- Distinctive: line 123
keep the selector near the top of the file
- Distinctive: line 124
if the README starts with a title, badges, hero image, or short intro block, place the selector immediately after that opening cluster
- Distinctive: line 128
update an existing selector block in place if one already exists
- Distinctive: line 129
if you add a new selector, use the canonical marker comments from the reference file so later runs can update it deterministically
- Distinctive: line 131
keep selector order and labels consistent across every README variant
- Distinctive: line 138
every README variant contains exactly one selector block
- Very specific: line 141
every (#...) link resolves inside its own file
- Distinctive: line 154
Keep README.md as the canonical source unless the user says otherwise.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Localize a repository README.md without breaking the repo mechanics around it.
The default job is translate + wire-up:
- read the source-of-truth README
- create localized sibling files such as
README.zh.md - preserve GitHub-flavored Markdown structure and repo-specific tokens
- add or update a shared language selector near the top of every variant
This skill is for multilingual README workflows, not general website/app i18n.
Inputs
Expect these inputs when available:
- source README path, default
README.md - source language, default inferred or English
- one or more target languages
- optional glossary or do-not-translate list
- optional filename override if the repo already uses a different multilingual naming pattern
If target languages are not named, inspect existing translated files, selectors, filenames, issues, or prior repo conventions. If that still leaves the target languages unclear, ask once. Do not invent target languages.
Defaults And Decision Rules
- Treat the root
README.mdas the source-of-truth unless the user explicitly says otherwise. - If the source language is ambiguous, ask once. Otherwise assume English.
- Keep section order aligned with the source README. Only make a small heading wording adjustment when needed to produce a valid localized anchor.
- Output localized siblings with
README.<bcp47-tag>.mdnaming unless the repo already has a different established pattern that should be preserved. - Update an existing language selector in place. Do not duplicate it.
- Translate only human-language content.
- Preserve project names, package names, commands, CLI flags, option names, environment variables, URLs, file paths, inline code, code fences, HTML attributes, and badge/image URLs.
- Badge alt text or visible labels may be translated only when the change does not require changing the badge URL, query params, or image source.
- If a glossary or do-not-translate list is provided, apply it consistently across every target language.
Workflow
1. Establish the source README and languages
- Confirm the source README path. Default to
README.md. - Identify the source language from the file contents and repo context.
- Determine target languages from the request or existing repo pattern.
- Note any glossary terms, product names, or phrases that must stay untranslated.
2. Audit the Markdown structure before translating
Read the source README once as structure, not prose. Open references/preservation-checklist.md and inventory the elements most likely to break:
- headings and heading levels
- badge rows, shields URLs, and image links
- tables and alignment rows
- raw HTML blocks and inline HTML
- GitHub alerts or admonitions such as
> [!NOTE] - code fences, inline code, commands, and config snippets
- intra-document anchors such as
(#installation) - relative links to files, docs, screenshots, or other README variants
If the README already has localized siblings, inspect them too before choosing filenames or selector style.
3. Translate only the prose layer
Translate:
- paragraph text
- list item prose
- table cell prose
- visible text inside HTML blocks
- image alt text when safe
- selector labels and other human-facing labels
Do not translate:
- fenced code blocks
- inline code spans
- shell commands
- flags such as
--help - env vars such as
OPENAI_API_KEY - URLs
- file paths
- repo/package/project identifiers
- badge and image URLs
When in doubt, preserve the literal token and translate the surrounding sentence instead.
4. Preserve structure while writing the localized README
- Keep the same heading hierarchy and section order as the source.
- Keep the same number of code fences unless the user explicitly asks to rewrite examples.
- Preserve table shape, list nesting, HTML wrappers, and Markdown comments.
- Preserve relative links unless a link intentionally needs to point at a localized sibling README.
5. Rewrite localized anchors and anchor-dependent links
When a translated heading changes, GitHub will generate a different heading ID. After translating headings:
- rewrite every same-file
(#...)link so it matches the localized heading slug in that file - preserve custom explicit anchors such as
<a id="...">unless the file already uses localized explicit IDs - verify that every intra-document anchor target resolves to an existing heading or explicit anchor
Prefer a small heading wording adjustment over a broken anchor. The section order should still match the source README.
6. Write sibling files using the repo's naming pattern
Default to sibling filenames like:
README.zh.mdREADME.es.mdREADME.fr.md
If the repo already uses a different multilingual naming pattern, keep using it consistently rather than forcing the default pattern.
7. Insert or update the language selector
Open references/language-selector-reference.md before editing selectors.
Placement:
- keep the selector near the top of the file
- if the README starts with a title, badges, hero image, or short intro block, place the selector immediately after that opening cluster
Behavior:
- update an existing selector block in place if one already exists
- if you add a new selector, use the canonical marker comments from the reference file so later runs can update it deterministically
- emphasize the current language and link the other variants
- keep selector order and labels consistent across every README variant
8. Final verification
Before finishing, verify:
- localized filenames follow the chosen pattern
- every README variant contains exactly one selector block
- code fence counts are preserved
- badge/image URLs and relative file links still point to the original targets unless intentionally localized
- every
(#...)link resolves inside its own file - the localized README still feels structurally identical to the source
Output
Produce:
- one localized sibling README per target language
- an updated selector block in every README variant
- a brief note to the user covering created or updated files, any assumptions, and any terms intentionally left untranslated
Maintenance Note
Keep README.md as the canonical source unless the user says otherwise. When the source README changes later, update each localized sibling by diffing the changed prose, then re-check selectors, filenames, and anchor links instead of reformatting the whole file from scratch.
Example Prompts
Example 1
Translate this README into Chinese and add a language switcher. Keep badge URLs, code fences, and all commands exactly as they are.
Example 2
Make the repo multilingual. Add Spanish and Chinese README variants, keep the internal anchor links working, and wire the selector into every file.
Example 3
We already have README.zh.md. Add README.es.md and update the existing selector in place instead of adding a second one.
Common Mistakes
- Translating fenced code blocks or inline code instead of only the prose around them
- Duplicating the language selector instead of updating the existing block
- Translating a heading but forgetting to rewrite same-file
(#...)links - Changing badge URLs or image sources while trying to translate visible labels
- Reordering sections in the localized README even though the source README is the authority
Other versions11 projects use a version of this.
Word for word · 3
- diodeme/Gold-Band★ 160100% same
- xixu-me/skills★ 73100% same
- klauswg/sasuke★ 17100% same
Edited · 1
- huangzida/skills★ 299% same
Wrote their own version · 7
- u9401066/pubmed-search-mcp★ 28same name
- u9401066/nsforge-mcp★ 4same name
- u9401066/template-is-all-you-need★ 3same name
- clarklee186/readme-i18n★ 1same name
- yktsnet/dotfiles-public★ 1same name
- u9401066/asset-aware-mcp★ 0same name
- zijian-yi/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use git-doc-updater, git-precommit and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
u9401066Skillgit-doc-updater
Auto-check and update key documentation before Git commits to keep docs in sync with code. Triggers: docs, 文檔, 更新文檔, sync docs, release, 發布.
Also in 4 projects that use this
u9401066Skillgit-precommit
Orchestrate pre-commit workflow including Memory Bank sync, README/CHANGELOG/ROADMAP updates. Triggers: GIT, gc, push, commit, 提交, 準備 commit, 要提交了, git commit, pre-commit, 推送.
Also in 4 projects that use this
nilecuiSkillcode-refactor
Perform bulk code refactoring operations like renaming variables/functions across files, replacing patterns, and updating API calls. Use when users request renaming identifiers, replacing deprecated code patterns, updating method calls, or making consistent changes across multiple locations.
Also in 4 projects that use this
GoogleSkillcode-reviewer
Also in 4 projects that use this
- +8 more from u9401066
In this repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- bmm-agent-docsSkill
- bmm-bookmark-formSkill
- bmm-iconify-iconsSkill
- crafting-effective-readmesSkill
- create-readmeSkill
- karpathy-guidelinesSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

