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
- Open the source post in the editor.
- In the PerfLocale sidebar panel (Gutenberg or classic), click Translate to <Language>. A new post is created in that language, linked to the source.
- 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.
Related
- Language Fallbacks - what happens when a translation is missing.
- Machine Translation - auto-translate new posts.
- Translation Workflow - assignments, deadlines, and approvals.
- Shortcodes - the
[perflocale_switcher]and related.