Skip to content
cccskills
FreePublished on GitHub

translation

Translate between French and US English — i18n strings, a French reply to the owner, an existing translation.

The English summary is being prepared. Showing the original description.

Works withWordPress
See how to install

Files included (1)

  • SKILL.md3.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Translation

Two jobs wear this name and they have different tests.

A string in a catalog has a source text. Equivalence can be judged: does the French say what the English says, in the register the rest of the catalog uses, with the placeholders intact? This is checkable and mostly mechanical.

Prose written fresh in French has no source. There is nothing to be faithful to, so the test is the writing test — see the writing skill. Do not run the equivalence check on it; there is no other side to compare.

The fleet's languages

US English is the codebase language. Every artifact in the repository is English: identifiers, comments, docblocks, commit messages, AGENTS.md, the harness's own docs. A French string belongs in exactly two places:

  1. A translation catalog — languages/*.po, generated by bin/harness pot. The source string is English; the French is the target.
  2. A reply to the owner, who writes French and reads both.

Anything else in French is drift that the next reader pays for.

Translating a string

Four things to check, in this order:

  1. Do not translate what WordPress translates. post, page, plugin, dashboard, customize are menu labels and interface terms. If WordPress already renders it in French for this user, translating it again produces a page where the same concept has two names.
  2. Placeholders survive verbatim. %s, %d, %1$s, {name}. WordPress uses positional placeholders precisely so a translation may reorder them; reordering is expected, changing is a bug.
  3. The register matches the catalog. WordPress's own French is formal (vous, Veuillez), and a plugin whose strings alternate between tu and vous reads as machine output.
  4. Plural forms. French and English both have two, but the boundary sits differently: English 1 item / 2 items, French 1 article / 2 articles, with zero taking the singular in French and the plural in English. _n() and _nx() exist for this; a hand-written plural will get it wrong.

French specifics

  • Non-breaking space before : ; ! ?. French typography requires it, and a missing one is the detail a French reader notices first.
  • Capitalisation. French does not title-case headings: Gestion des licences, not Gestion Des Licences.
  • False friends that appear in this domain. librairie is a bookshop, a library is bibliothèque (and a code library is bibliothèque or left as library). éventuellement means "possibly", not "eventually" (finalement). actuellement means "currently", not "actually" (en fait). sensible means "sensitive", not "sensible" (raisonnable).
  • Gutenberg, WordPress, product names do not get translated or inflected.

Reviewing an existing translation

Read the French alone first, without the English beside it. If it does not read as a sentence a French speaker would write, the problem is already visible and comparing will not help. Then compare for the four checks above.

Where the string lives

bin/harness pot regenerates the catalog from the source. Never edit a .po by hand and never hand-write a .mo: the next make:pot overwrites both. The only file worth editing is the source string, and if the English is wrong it is wrong in every language.


Why this skill is written rather than distilled. The french-writing skills on skills.sh are below the install bar this fleet uses for third-party sources (five installs, one install), and none of them knows this domain's vocabulary. The rules above are English-to-French for software, which is narrow enough to state directly. See .agents/docs/DISTILLATION.md.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Run a full dev cycle on one change: clarify, plan, execute, lint, fix. Start every change here.

The English summary is being prepared. Showing the original description.

quentin-ld/zenpress9Updated Oct 17, 2026

Write a document an agent consumes — a skill, an AGENTS.md, a README, a docblock, or any file reached by a pointer.

The English summary is being prepared. Showing the original description.

quentin-ld/zenpress9Updated Oct 17, 2026

graft

Free

Locate and understand code through the project's graft graph before reading: where-is-X, how-does-Y or what-calls-Z.

The English summary is being prepared. Showing the original description.

quentin-ld/zenpress9Updated Oct 17, 2026

Stress-test the owner's plan, decision or idea by interviewing them to a shared understanding before any work starts.

The English summary is being prepared. Showing the original description.

quentin-ld/zenpress9Updated Oct 17, 2026

Remove AI tells from French prose without lowering its register — a reply, a `.po` target, a French post.

The English summary is being prepared. Showing the original description.

quentin-ld/zenpress9Updated Oct 17, 2026

Remove AI tells from English prose — a README, a comment, a user-facing string, a review. French is `humaniseur-fr`.

The English summary is being prepared. Showing the original description.

quentin-ld/zenpress9Updated Oct 17, 2026

See all skills by quentin-ld

Report a problem with this skill