localization
Skill118 starsChanged 7 days agoMITView on GitHub
Use when updating KMReader translations in Localizable.xcstrings after code changes. Covers build/localize refresh, missing key discovery, context lookup, and deterministic updates through misc/translate.py.
20 other projects use a version of this.
Adopted by
Most recently taken up by
- mirzaaghazadeh/unity-meta-quest-skillstheir own version, first seen Nov 15, 2026
- parker-brown-family/agent-skillstheir own version, first seen Nov 8, 2026
- AnyOrgName/php-skillstheir own version, first seen Nov 8, 2026
- ghuntley/loomtheir own version, first seen Nov 1, 2026
- jame581/GodotPromptertheir own version, first seen Oct 21, 2026
- PhoenixNest/AGENT-GLOBAL-BASEtheir own version, first seen Oct 20, 2026
Other versions20 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 20
- chen08209/FlClash★ 62ksame name
- ghuntley/loom★ 1.7ksame name
- igorescodro/alkaa★ 1.6ksame name
- jame581/GodotPrompter★ 965same name
- bagofwords1/bagofwords★ 463same name
- CamilleScholtz/swmpc★ 239same name
- glrodasz/dotfiles★ 20same name
- aaronbrethorst/claude-skills★ 4same name
- AnyOrgName/php-skills★ 4same name
- KonH/GlobalStrategy★ 3same name
10 more not listed
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.
In this repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- appstore-releaseSkill
- changelogSkill
- docsSkill
- pr-workflowSkill
- repo-conventionsSkill
- simulatorSkill
- testflightSkill
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 3 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 18 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 25
Run a full make build once to refresh extracted strings data.
- Very specific: line 29
Only skip the build step when it is already confirmed that the current code changes have been through a full make build.
- Very specific: line 43
If output is No missing translations found., no translation update is needed.
- Very specific: line 61
Always write all target languages in one command to avoid partial updates.
- Very specific: line 62
Run ./misc/translate.py update commands sequentially.
- Very specific: line 63
Do not run multiple update commands in parallel against the same KMReader/Localizable.xcstrings file, because each invocation rewrites the …
- Very specific: line 80
If Localizable.xcstrings becomes invalid JSON at any point, restore it to a known-good state first, rerun make localize, and then repeat …
- Distinctive: line 85
Keep tone consistent with product domains (Reader, Series, Read List, Offline Sync).
- Very specific: line 86
Do not modify entries where shouldTranslate == false.
- Distinctive: line 87
Do not rewrite unrelated keys.
- Distinctive: line 95
If missing items remain, continue until the list is empty.
“Common” is measured: kept by at least 6 in 10 of the 18 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
KMReader Localization
Maintain and complete KMReader translations in KMReader/Localizable.xcstrings.
When To Use
- The user asks to fill missing translations.
- New localized strings were introduced and need all supported languages.
- The user mentions
misc/translate.py,make localize, or missing localization entries.
Standard Workflow
Hard requirement:
make localizemust be preceded by a fullmake buildfor the current code state.- Without that build, extracted localized strings data may be stale, and
Localizable.xcstringswill not be updated correctly.
Default order:
- Run a full
make buildonce to refresh extracted strings data. - Sync extracted strings data into
Localizable.xcstrings. - Fill missing translations.
Only skip the build step when it is already confirmed that the current code changes have been through a full make build. If that is not explicitly confirmed, run make build before make localize.
make build
make localizeMissing Translation Check
./misc/translate.py list- This lists keys with missing languages.
- If output is
No missing translations found., no translation update is needed.
Per-Key Process
- Understand key meaning and UI context.
- Locate usage in code when needed to avoid semantic drift.
- Prepare all target languages first, then write once.
rg -n "String\\(localized: \"<KEY>\"\\)|\"<KEY>\"" KMReader Shared KMReaderWidgetsCurrent supported target languages:
de,en,es,fr,it,ja,ko,ru,zh-Hans,zh-Hant
Deterministic Update Command
Always write all target languages in one command to avoid partial updates.
Run ./misc/translate.py update commands sequentially.
Do not run multiple update commands in parallel against the same KMReader/Localizable.xcstrings file, because each invocation rewrites the file and concurrent writes can corrupt the JSON.
Parallelism is only safe for read-only steps such as rg or ./misc/translate.py list.
./misc/translate.py update "<KEY>" \
--de "<German>" \
--en "<English>" \
--es "<Spanish>" \
--fr "<French>" \
--it "<Italian>" \
--ja "<Japanese>" \
--ko "<Korean>" \
--ru "<Russian>" \
--zh-hans "<Simplified Chinese>" \
--zh-hant "<Traditional Chinese>"If Localizable.xcstrings becomes invalid JSON at any point, restore it to a known-good state first, rerun make localize, and then repeat the missing-key updates sequentially.
Quality Rules
- Preserve placeholders and format markers exactly:
%@,%d,%lld,%f,%1$@,\\n. - Keep tone consistent with product domains (Reader, Series, Read List, Offline Sync).
- Do not modify entries where
shouldTranslate == false. - Do not rewrite unrelated keys; only update requested or missing ones.
Final Verification
./misc/translate.py listIf missing items remain, continue until the list is empty.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

