Skip to main content

Translating memberships (OS Membership)

Anyone selling memberships through OS Membership has content that sits on no article page: the membership plans with their descriptions, the categories above them, the fields of the order process, and the e-mail templates sent after a subscription. Leave those in the source language and the English side of the site ends at the price list.

TranslatePilot can translate them along. As delivered it does not — it is somebody else's extension, and writing into its data should be a decision, not a default.

Switching it on

The component options carry a tab OS Membership with five switches:

  • Translate OS Membership along — the main switch. While it is off, TranslatePilot does not look at the extension at all.
  • Plans and categories — title, short and long description, page title and meta description. This is what a visitor reads, and the usual case.
  • Form fields — labels, placeholder texts, help texts, error messages and option values of the fields in the order process.
  • E-mail templates and system messages — the texts of the confirmation, reminder and renewal mails.
May create missing language fields — an emergency switch; see below.

Where OS Membership is installed but the main switch is off, the wizard points it out once in step 5. The translation then runs as one more section of step 7, together with the other mirroring passes.

Where OS Membership keeps its translations

OS Membership handles its own multilingual support, and it does so differently from Joomla: for every additional language it creates fields of its own in its tables. The base fields carry the site's default language, the additional ones the translations. In the backend you see this as a Translations tab on every plan and every category.

Those fields are created by OS Membership, not by TranslatePilot — at the moment you open its backend. While they are missing there is nothing for a translation to go into.

Where they are missing, the wizard says so in step 7 — in this order:

  1. Open the OS Membership backend once (Components → Membership Pro). While doing so it creates the language fields, in full and to match its own version.
  2. Should fields still be missing afterwards: in OS Membership, under Tools, run the repair for the row size or for missing multilingual fields.
  3. If OS Membership reports a database error about an invalid default value: the plans table carries date defaults that the database server rejects in its strict setting. That has to be put right once, on the table or on the server setting — by you or your host.

OnlyThe wherefirst none of that helpsstep is almost always enough. On the optionreference Mayinstallation createa missingsingle visit to the OS Membership backend created every language fieldsfield meant— to26 be used. It is deliberatelyfor the lastplans, resort:3 for the categories, 9 for the form fields. The schema belongs to OS Membership,Membership; andTranslatePilot steppingdeliberately does not step in front of it therethere, because doing so can stop itthe extension adding future fields on its own.

What is translated — and what is not

Translated are the titles and descriptions of the plans and categories, and on request the form fields and the e-mail templates. Each language's address part is derived from the translated title rather than translated — otherwise an address would be made out of a whole sentence.

Deliberately left alone:

  • Meta keywords. A translated keyword list is not a translation but fresh research — machine-translated it produces words nobody searches for.
  • Card layouts and control values of the form fields. That is not prose but mechanics; translated, the form breaks quietly.
  • Country names. OS Membership usually ships them in the target language already.
  • Subscribers and invoices. TranslatePilot does not touch customer data.

Anything translated by hand stays

Where you have already maintained English texts in the OS Membership backend, they are left untouched. TranslatePilot keeps a record of what it wrote itself; finding something in a language field that did not come from it, it reports that and keeps its hands off — no matter how old the translation is. The same applies when you later improve a translation TranslatePilot produced: from then on it counts as yours.

Which templates actually need translating

OS Membership ships its e-mail templates in English. Only the ones you have edited yourself are in your own language — on a typical site that is a handful out of several dozen. On the reference installation it was 6 out of 61.

This matters because the counter in step 7 counts something else: every key OS Membership marks as translatable. So “61 of 61 outstanding” does not mean 61 texts are in the wrong language — it means there are 61 keys, most of which have been English all along.

For templates, OS Membership falls back — unlike for the fields. Where a key has no text in the target language, it uses the base text. A template that is English anyway therefore needs no English version at all.

For the language fields of plans and categories it is the other way round: there, empty means empty, and the English page simply stays blank in that spot.

In practice: letting the templates run along does no harm — the pass writes an identical copy for an English template. To save the tokens, translate them once deliberately and switch the option off again afterwards. Which templates are written in your own language can be seen in OS Membership under Configuration → Messages.

Placeholders in the e-mail templates

The mail texts contain placeholders that OS Membership substitutes when sending — the recipient's name, the plan's title, the expiry date. A translator with such a placeholder in front of it as text has every reason to translate it along; the mail then goes out carrying a placeholder OS Membership no longer recognises, and the recipient reads square brackets.

The placeholders are therefore taken out before the translation and put back afterwards. If even one of them is missing afterwards, the translation is discarded and the template stays as it was. A mail in the source language is the wrong language; a mail without the recipient's name is addressed to nobody.

Before the first live run, do a dry run in step 7. It shows in full what would happen — how many plans, fields and templates are affected — costs nothing and writes nothing.

Deutsche Fassung