.claude/skills/po-translate/SKILL.md
Orchestrate English→Japanese translation of po/ja.po — classify, delegate translation/review to subagents, iterate until clean
npx skillsauth add natsukium/dotfiles po-translateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Translate po/ja.po from English to Japanese for this literate Nix configuration
repository. This skill orchestrates the process: you classify entries yourself, then
delegate translation and review to subagents, iterating until the review passes.
Scan po/ja.po and classify every entry into three buckets.
| PO type comment (#. type:) | Reason |
|----------------------------------|-------------------------------|
| paragraph in src | Code block content |
| keyword NAME / keyword name | Source block identifiers |
| keyword SETUPFILE | Org directive |
| keyword PROPERTY | Property drawer value |
| keyword OPTIONS | Export option string |
| keyword STARTUP | Startup keyword |
| keyword INCLUDE | po4a handles path swap |
| property (*) | Property values |
Also skip: bare URLs as msgid, table cells with hardware models/hostnames/platforms.
Non-empty msgstr — leave unchanged unless review flags them.
Everything else: paragraph, heading *–*****, plain list, paragraph in QUOTE/quote/example,
cell column N with prose, keyword title.
Group translatable entries by primary source file into sequential batches:
configuration.orgapplications/emacs/init.orgoverlays/configuration.org + applications/emacs/early-init.org + .github/README.orgmodules/configuration.orgOutput a batch summary (entry counts, line ranges) before proceeding to Phase 2.
Spawn one Agent per batch, sequentially (wait for each to finish before starting the next — they all edit the same file).
Include ALL of the following in each subagent's prompt:
.claude/skills/po-translate/references/glossary.md.claude/skills/po-translate/references/style-guide.md.claude/skills/po-translate/references/po-format.md## Translation Rules
### What to translate
- paragraph, heading, plain list, paragraph in QUOTE/quote/example, cell with prose, keyword title
### What to leave empty (msgstr "")
- paragraph in src, keyword NAME/name, SETUPFILE/PROPERTY/OPTIONS/STARTUP/INCLUDE, property (*), bare URLs, proper nouns (hardware models, hostnames, platforms)
### PO format
- #, no-wrap entries: msgstr on single line
- Multi-line msgid: msgstr starts with "" then continuation lines
- Match approximate line structure of msgid
- Preserve \" escaping
### Org markup preservation
- [[url][desc]]: translate only desc, keep URL intact
- [[*heading][desc]]: translate *heading to match the translated heading name in po/ja.po, translate desc independently
- =code= and ~verbatim~: do NOT translate content inside markers
- *bold* / /italic/: translate text, keep markers
- \\\\: preserve in same position
### Terminology
- Follow the glossary strictly
- Nix terms (flake, derivation, overlay, home-manager) → keep English
- General technical terms with Japanese equivalents → use Japanese
### Register
- です/ます (desu/masu) polite form consistently
- Technical but accessible
- Faithfully translate "why" reasoning — core value of literate config
### Important
- Never modify msgid or comment lines (#., #:, #,)
- If entry already has correct translation, leave unchanged
- Preserve blank lines between entries
- Use the Edit tool for each translation
- After completing, read back modified sections to verify
After all translation batches complete, spawn a review subagent.
Include these checks in the prompt:
msgfmt --check po/ja.poparagraph in src, keyword NAME/name, directive
keywords, property (*) all have empty msgstrparagraph, heading, plain list etc. have non-empty msgstr#, no-wrap entries have single-line msgstr[[/]] count matches, URLs unchanged, =code=/~verbatim~ preserved[[*heading][desc]] — verify *heading matches the translated heading name in the corresponding heading entry's msgstrThe review subagent should:
msgfmt --check po/ja.po after fixesEvaluate the review subagent's report:
After review passes:
msgfmt --check po/ja.po
po4a po4a.cfg
development
Clone and reuse GitHub/GitLab repositories under a single managed root (`ghq root`) instead of fetching files one-by-one via `gh api`/`WebFetch` or scratch-cloning into `/tmp`. Use this skill whenever investigating, reading, grepping, or referencing source code from any remote repository — even for a single file. Triggers include "look at X's source", "how does X implement Y", "check the X repo", "find Z in nixpkgs/react/linux/etc.", or any moment a remote repo URL appears and you need to read more than one file from it. Skip only for one-shot GitHub API operations that have no source code in them (PR comments, issue bodies, workflow runs — those belong to the `gh` skill).
tools
GitHub CLI for pull requests, issues, releases, workflows, and repository operations. Use for creating PRs, managing issues, viewing repository information, and accessing GitHub URLs.
tools
AST-based code search and transformation tool using tree-sitter. Use for structural pattern matching, refactoring deprecated APIs, detecting anti-patterns, migrating code between library versions, and enforcing coding standards.
data-ai
Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some waiting on outside answers, and others rolling into a later summary.