Hype5 Theater 0.6.17 · Pre-release
Multilingual sites
On this page
Hype5 Theater works with WPML and Polylang by treating the original-language post of a production, person or venue as the owner of shared facts. Translations carry their own texts; performances, credits, galleries and other shared rows exist once, on the original, so physical events and credits are never duplicated per language. This page describes that model as implemented.
Translation plugin detection
Data\Identity resolves posts of the three Hype5 types:
- Original (canonical) post — Polylang first (
pll_get_post()in the default language), then WPML (wpml_object_idin the default language). Without either plugin, a post is its own original. - Reader's-language post — the translation in the current language (Polylang, then WPML), or the post itself.
- Public reader's-language post — the translation only when it is published; otherwise the original. A draft, pending, scheduled or private translation is never shown to visitors.
The plugin ships a wpml-config.xml that marks the three post types and four taxonomies as translatable and lists how each meta field is handled.
Shared data (stored once, on the original)
| Data | Notes |
|---|---|
| Performances and ticket offers | Stored against the original production and venue. Translated IDs passed to the schedule filters are mapped to the original. |
| Credits and information rows | Stored against the original production and original person. The editors make credits read-only on a translation and link to the original. |
| Gallery images and people tagged in them | Read from the original production. |
| Repeatable rows | Files, videos, audio links, external galleries, partners, articles, other links, visitor rows — read from the original. |
| Accessibility markers of a production | Read from the original; the accessibility text is per language. |
| Venue accessibility defaults | Taken from the original venue. |
| Profile visibility of a person | Checked on the original person. |
Per-language data (each translation's own)
Title, content, excerpt, teaser, language text, custom audience recommendation, custom warning text, visitor information, accessibility text, parking text, programme file, display overrides (_hype5t_display) and taxonomy terms (translated as terms).
wpml-config.xml copies these fields from the original to new translations: premiere date and venue, duration, acts, intervals, accessibility markers, repertory status, production relationship, presentation mode, ELAB identifiers, birth date, profile visibility, venue address fields and coordinates. It marks teaser, language, custom audience, custom warning, visitor information, accessibility, parking, arrival notes and access notes for translation.
Public output
- Names and links are shown in the reader's language when that translation is published, for productions, people and venues alike.
- A shortcode or page for a production whose reader's-language translation is unpublished shows the original instead.
- A production is "public to everyone" only when both the original and the reader's-language version are published without a password. Cards, person profiles, the general schedule and the public performances route apply this rule.
- A password on a language version protects the shared data (credits, performances, gallery, rows) shown on that version. The first version that carries a password decides — the version requested, else the original, else the reader's-language version — so a translation without its own password of a protected original is protected by the original's password (WordPress shows its password form there too), and a page is always unlocked by the password entered on it. Cross-page output (cards, profiles, the general schedule) shows a production only while no version shown carries a password.
- A hidden person profile hides its translations too (when the setting was not copied to them).
- Public texts (labels) are overridden per WordPress locale; see Labels.
Permalinks
Hype5 registers one permalink base per type. WPML or Polylang Pro can translate the registered slugs for per-language bases.
Deletion
Relational data (credits, gallery tags, a venue reference on performances) is cleaned only when the original post is deleted permanently. Deleting a translation leaves shared data unchanged. Performances survive the deletion of their production.
Known limitations
- Collection counts can include rows that the multilingual visibility rule then hides, so a list may show a slightly higher count than the number of visible items.
- Earlier 0.6.17 builds named schedule rows by the original-language title and could not find the next performance, city filter or "next" order for productions in a non-default language. The Phase 5K build documented here resolves the production in the reader's language for these cases.