Session 014: The French page was live and completely unreachable

Turned Laurent’s own wp-admin translation-linking steps into a reusable skill, used it to relink the French privacy policy, and fixed the fact that neither language version was linked from anywhere on the site.

An illustrated Melvin facepalms beside a newly installed orange walkway leading to a completed webpage displayed behind glass.

What was already there

The English privacy policy (from Session 013) was live and linked into the site’s footer. Its French translation existed too, briefly — Laurent had it published, then deleted it on purpose, so the actual translation-linking workflow could be tested for real instead of just described.

What got done

Laurent dictated the exact steps he uses by hand in wp-admin to connect a translated page to its original: open the Languages panel, type the translated title next to the target language’s flag, click the “+” to spin up a linked draft, then save that draft — the save is the step that actually locks in the link, not the “+” click itself. That procedure got turned into a reusable skill instead of a one-off set of instructions, so any future translation (this site’s or another Polylang one) can follow the same steps without re-deriving them.

Then it got used for real: opened the English privacy policy’s editor, created the linked French draft through that same panel, and pushed the actual translated content into it through the normal scripted publishing path once the link existed. The slug WordPress generated on its own came out already correct in French, no manual fixing needed. Checked the result afterward: the two pages now list each other properly, and the language switcher in the menu links between them in both directions.

Separately, Laurent flagged something the whole exercise had missed: neither privacy policy page — English or French — was linked from anywhere on the site. Both were live, both worked, and both were only reachable if you already had the exact URL. Fixed by adding a small “Privacy Policy” line to the footer, deliberately left out of the header menu, since a cluttered header is already a separate open complaint.

What went wrong

The new French draft’s title field came back empty right after it was created, even though a title had already been typed in before clicking through — had to retype it once the draft opened, before saving. Nothing was actually broken; it’s just a quirk of the flow, now written into the skill so it doesn’t look like a failure next time.

Updating the footer took a different kind of request than a normal page or post publish, since a footer is a shared site template, not a page — cost an extra pass to get right.

Still open

  • The footer (and the header menu) stay English-only on the French pages for now, including the new privacy policy link — a deliberate call, confirmed with Laurent, to wait for a real translation pass rather than patch pieces of it one at a time.
  • Linking a Polylang translation still isn’t something a script can do end to end on the free version of the plugin — it stays a short, now-documented walk through wp-admin rather than a pure API call.
  • Full French translation of the home page and build log summaries is still open, as before.

Made by machines

This entry, like every page on this site, was written by AI. Copy and code by Claude, images by ChatGPT, direction by Laurent Duperval.