The translations of a page (Page::$translations): its texts in each of its other languages, the default one being the draft itself (Page::$languages, the first).
class MMO\editor\cms\Translations
Namespace
MMO\editor\cms
A language translates the **texts** only: the page's `title`, its `seo` title and description, and in each section
the fields a reader reads -- a string of format `text` (the default) or `html`. A choice (`enum`), an address
(`url`, `uri`), a code (a `pattern`: an anchor, an icon), a number, an image's address are the page's whatever the
language: the sections, their order and their settings are the same in every language. A field's `"translate":
true` or `false` (its schema) says otherwise.
A translation holds only what is translated: `{title, seo: {title, description}, sections: {id: data}}`, the data of
a section being a part of its own (a list: an item by index, `null` for one not translated). What is not translated
shows in the default language ([`Merge`](https://mmoframework.fr/en/documentation/mmo.editor/php/cms/Translations.md#translations-merge)): a new language shows the page as it is, until it is translated.
mmo.editor's page editor has the same rules (`MMO.editor.PageEditor#translatable()`): change both together.
the tag a page keeps: --separated and lowercase (it is also the first folder of the page's address in that language); null when it is no language tag (RFC 5646: I18n::splitLanguage)
the language $version is shown in for $language: $language when it is one of its languages, its default one otherwise; null for a page that does not say its language
Merge($schema, $data, $translation)
staticTranslations.php:83static function Merge(array $schema, array $data, mixed $translation): array