Content Translation

PerfLocale treats every translatable object (post, page, custom post type, taxonomy term) as a member of a translation group. Each group has one entry per active language; the default language’s entry is the source, every other entry is a translation. The source post is a regular WordPress post - translations are separate WP posts linked to it through an internal join table.

Default language

The default language is the one your WordPress site was originally written in - English, German, whatever. Set it at PerfLocale → Languages (one language row carries a DEFAULT badge). The default language is the canonical source for every piece of content; translations into other languages are derived from it. Changing the default after content exists is possible but requires care - see Migration.

Translatable post types & taxonomies

Out of the box, post, page, and most public custom post types are translatable. Taxonomies follow the same rule: public taxonomies are translatable by default. Toggle specific types at PerfLocale → Settings → Translation. Media attachments are a separate setting because translating alt text / captions is often desired without cloning the file itself.

Creating a translation

  1. Open the source post in the editor.
  2. In the PerfLocale sidebar panel (Gutenberg or classic), click Translate to <Language>. A new post is created in that language, linked to the source.
  3. Edit the translated post independently - it’s a normal WP post in every respect, just tied to its source through the translation group.

Alternatively, create a post directly in any language (Posts → Add New from an admin URL under a language prefix) and link it manually from the source post’s sidebar.

Translation statuses

Each translation carries one of five statuses that describe the workflow state, separate from WordPress’s post_status:

  • Empty - placeholder; no content has been written.
  • Draft - content started but not ready.
  • Pending - awaiting review (combined with the Workflow feature).
  • Published - ready; visitors see this translation.
  • Needs Update - the source post changed after this translation was last saved. Re-save the translation to clear.

The Translations matrix

Visit PerfLocale → Translations for a cross-language overview of every post. Rows are source posts; columns are languages. Each cell shows the translation’s status as a coloured badge with a shortcut arrow to edit. Filter by post type, language, or status; search by title.

← Back to Docs