Les variables contextuelles donnent accès, depuis un thème, à des valeurs textuelles et à des chemins d'images calculés par Recalbox. Elles s'écrivent ${nom.de.la.variable}.
Ces variables n'existent que pour les thèmes conçus pour Recalbox 10 minimum.
Elles se résolvent dans les attributs text="" et path="" des objets « extra » — c'est-à-dire les images, textes et vidéos que vous ajoutez vous-même à une vue. Elles ne pilotent pas les éléments gérés en interne par l'interface.
<view name="system">
<text name="nomSysteme" extra="true" text="${system}" pos="0.5 0.15" origin="0.5 0.5" />
<image name="logoSuivant" extra="true" path="${system.logo+1}" pos="0.8 0.5" size="0.15 0" />
</view>
| Catégorie | Portée | Page |
|---|---|---|
| Variables globales | Ne changent pas pendant une session : version, langue, matériel, résolution | ${root}, ${settings.language}, ${hardware.board}… |
| Variables système | Le système actuellement affiché, réel ou virtuel | ${system}, ${system.logo}, ${system.manufacturer}… |
| Variables jeu et système | Le jeu sélectionné et son système réel | ${game.name}, ${game.developer}, ${game.media.imagepath}… |
La distinction entre ${system.*} et ${game.system.*} compte : sur un système virtuel comme les favoris, ${system} vaut « Favorites » tandis que ${game.system} vaut le vrai système du jeu sélectionné, par exemple « Super Nintendo Entertainment System ».
N'importe quelle propriété peut être déclinée par langue, par locale complète ou par région, en ajoutant un suffixe au nom de la propriété. Recalbox retient la première correspondance rencontrée dans le fichier.
fr correspond à fr_FR, fr_BE, fr_CA…) :<text name="texte" extra="true" text="Text in English" text.fr="Texte en français" />
<text name="texte" extra="true" text="Text for English language" text.fr_FR="Texte pour la France" text.fr_BE="Texte pour la Belgique" />
EU, JP ou US, toujours en majuscules), telle que choisie dans MENU PRINCIPAL > OPTIONS DE L'INTERFACE > THÈME > RÉGION :<text name="texte" extra="true" text="Text in English" text.JP="日本語のテキスト" />
La recherche s'arrête à la première correspondance, donc l'ordre dans lequel vous écrivez les variantes change le résultat.
title="Washington" title.fr="Paris" title.de_CH="Berne" title.de="Berlin"
de_CH obtient « Berne » : c'est la première variante qui corresponde à sa langue ou à sa locale.de_DE obtient « Berlin ».fr_FR, fr_CA ou fr_BE obtiennent « Paris ».title.de="Berlin" title.de_CH="Berne" title.fr="Paris" title="Washington"
Rien ne change, sauf pour les utilisateurs en de_CH qui obtiennent maintenant « Berlin », parce que title.de correspond avant que title.de_CH ne soit examiné.
Les codes de langue font 2 caractères (liste ISO 639-1), les codes de pays aussi (liste ISO 3166-2).