Bedingen, übersetzen, regionalisieren
Ein anderer Wert je nach Bildschirm, Maschine oder Sprache.
Eine Bedingung auf einer Eigenschaft
<text name="titre">
<fontSize if="crt">0.09</fontSize>
<fontSize if="!crt">0.05</fontSize>
<color>FFFFFF</color>
</text>
Eine Komponente, zwei Größen je nach Bildschirm. Die Liste der Bedingungen steht auf der Seite Bedingt anzeigen.
Eine Bedingung auf der ganzen Komponente
<image name="filtre" if="crt">
<path>${root}/data/arts/scanlines.png</path>
</image>
Die Komponente existiert nur, wenn die Bedingung wahr ist. Die vollständige Liste steht in Bedingt anzeigen, und Mehrere Bedingungen kombinieren erklärt und, oder und die Klammern.
ifexists und ifnotexists
Diese beiden prüfen nicht die Maschine, sondern das Vorhandensein einer Datei:
<image name="jaquette">
<path ifexists="${game.media.imagepath}">${game.media.imagepath}</path>
<path ifnotexists="${game.media.imagepath}">${root}/images/pas-dimage.png</path>
</image>
Das ist der saubere Weg für Spiele ohne Cover — sonst bleibt das Feld leer.
Einen Text übersetzen
Ein Sprachsuffix auf der Eigenschaft genügt:
<text name="bienvenue">
<text>Bienvenue</text>
<text.en>Welcome</text.en>
<text.es>Bienvenido</text.es>
</text>
Recalbox nimmt die passende Variante — und die suffixlose Version, wenn keine passt.
Was ein Suffix akzeptiert
| Suffix | Was es anspricht |
|---|---|
.fr .es .de | die Sprache der Maschine, in Kleinbuchstaben |
.fr_FR | die Sprache und das Land |
.US .EU .JP | die Region, in GROSSBUCHSTABEN |
Die Region
Damit schreibt man „Genesis“ in den USA und „Mega Drive“ in Europa. Derselbe Mechanismus wie bei der Sprache, mit einem Suffix in Großbuchstaben — genau das nutzt das offizielle Recalbox-Theme:
<box name="fond"
color.US="2E447C"
color.EU="7C2E44"
color.JP="447C2E" />
Die drei Werte sind US, EU und JP. Eine Eigenschaft ohne Suffix gilt für alle Regionen.
⚠️ Es gibt immer eine aktive Region. Auf einer frischen Maschine ist es US: Was du ohne Suffix schreibst, sehen die meisten Leute — .EU oder .JP dienen nur dazu, davon abzuweichen.
Die Region wird auf der Maschine geändert, in den Oberflächeneinstellungen — und Recalbox liest dann das ganze Theme neu, wie bei einer Option. Das Studio bietet dieselbe Wahl, um zu sehen, was jedes Publikum sieht.
Worauf das funktioniert: auf ALLEM
Es gibt keine Liste übersetzbarer Eigenschaften. Das Suffix wird auf jeder Eigenschaft geprüft, bevor die Engine überhaupt weiß, um welche es sich handelt — also akzeptieren es alle:
<text name="titre" text.fr="Bienvenue" text.es="Bienvenido" />
<image name="logo" path.US="genesis.png" path.EU="megadrive.png" />
<text name="mention" fontSize.de="0.03" /> <!-- Deutsch läuft länger -->
<box name="bandeau" color.JP="D62828" />
Beide Schreibweisen unterstützen es — als Attribut (size.fr="…") wie als Unterknoten (<size.fr>…</size.fr>) — und sogar der Tag-Name (<text.fr name="…">). Es gilt auch für title und help einer Option.
⚠️ Die lokalisierte Version gewinnt endgültig. Sobald eine Variante angewendet wurde, wird die suffixlose Version derselben Eigenschaft abgelehnt, auch in einer später gelesenen Datei. Ein Overlay kann eine bereits lokalisierte Eigenschaft also nicht „zurückerobern“: Es muss seine eigene lokalisierte Variante liefern.
Einen Text aus einer Datei laden
text, scrolltext und markdown akzeptieren path anstelle von text: Der Inhalt wird dann aus der Datei gelesen. Praktisch für einen langen Vorstellungstext.
<markdown name="apropos">
<path>${root}/data/textes/apropos.md</path>
</markdown>