Crear un tema de Recalbox

45 páginas · 8 secciones
FRENESDE Mostrar todo Crear mi tema

Condicionar, traducir, regionalizar

Un valor distinto según la pantalla, la máquina o el idioma.

Una condición sobre una propiedad

<text name="titre">
  <fontSize if="crt">0.09</fontSize>
  <fontSize if="!crt">0.05</fontSize>
  <color>FFFFFF</color>
</text>

Un solo componente, dos tamaños según la pantalla. La lista de condiciones está en la página Mostrar bajo condición.

Una condición sobre el componente entero

<image name="filtre" if="crt">
  <path>${root}/data/arts/scanlines.png</path>
</image>

El componente solo existe si la condición es verdadera. La lista completa está en Mostrar bajo condición, y Combinar varias condiciones explica y, o y los paréntesis.

ifexists e ifnotexists

Estos dos no comprueban la máquina sino la presencia de un archivo:

<image name="jaquette">
  <path ifexists="${game.media.imagepath}">${game.media.imagepath}</path>
  <path ifnotexists="${game.media.imagepath}">${root}/images/pas-dimage.png</path>
</image>

Es la forma limpia de gestionar los juegos sin carátula — sin eso la casilla queda vacía.

Traducir un texto

Basta un sufijo de idioma en la propiedad:

<text name="bienvenue">
  <text>Bienvenue</text>
  <text.en>Welcome</text.en>
  <text.es>Bienvenido</text.es>
</text>

Recalbox toma la variante que corresponde, y la versión sin sufijo si ninguna corresponde.

Lo que acepta un sufijo

SufijoA qué apunta
.fr .es .deel idioma de la máquina, en minúsculas
.fr_FRel idioma y el país
.US .EU .JPla región, en MAYÚSCULAS

La región

Es lo que permite escribir «Genesis» en Estados Unidos y «Mega Drive» en Europa. El mismo mecanismo que el idioma, con un sufijo en mayúsculas — es lo que emplea el tema oficial de Recalbox:

<box name="fond"
     color.US="2E447C"
     color.EU="7C2E44"
     color.JP="447C2E" />

Los tres valores son US, EU y JP. Una propiedad sin sufijo vale para todas las regiones.

⚠️ Siempre hay una región activa. En una máquina nueva es US: lo que escribas sin sufijo es lo que verá la mayoría, y .EU o .JP solo sirven para apartarse de ello.

La región se cambia en la máquina, en las propiedades de la interfaz — y Recalbox relee entonces el tema entero, como con una opción. El estudio ofrece la misma elección, para ver lo que verá cada público.

Sobre qué funciona: sobre TODO

No existe ninguna lista de propiedades traducibles. El sufijo se examina en cada propiedad antes incluso de que el motor sepa de cuál se trata — así que todas lo aceptan:

<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" />        <!-- el alemán es más largo -->
<box name="bandeau" color.JP="D62828" />

Las dos escrituras lo admiten — como atributo (size.fr="…") igual que como subnodo (<size.fr>…</size.fr>) — e incluso el nombre de la etiqueta (<text.fr name="…">). Vale también para el title y el help de una opción.

⚠️ La versión localizada gana definitivamente. En cuanto se ha aplicado una variante, la versión sin sufijo de la misma propiedad se rechaza, incluso en un archivo leído después. Una capa no puede por tanto «retomar el control» de una propiedad ya localizada: debe aportar su propia variante localizada.

Cargar un texto desde un archivo

text, scrolltext y markdown aceptan path en lugar de text: el contenido se lee entonces del archivo. Práctico para un texto largo de presentación.

<markdown name="apropos">
  <path>${root}/data/textes/apropos.md</path>
</markdown>