Consultas y aplicación de variantes
Una variante activa en Unreal Engine (UE) puede referirse a una de estas tres cosas:
-
El idioma - El idioma se usa para determinar qué datos de localización deberían utilizarse.
-
La configuración regional - La configuración regional se usa para controlar cómo se formatean los números, las fechas, las horas, etc. dentro de nuestra biblioteca de internacionalización.
-
Una variante de grupo de recursos - Los grupos de recursos permiten crear un grupo de clases de recursos a los que se les puede asignar una variante distinta a la del idioma principal del proyecto.
Es posible definir todas a la vez cambiando la variante activa. Sin embargo, si tu proyecto pretende usar grupos de recursos, te conviene tratar el idioma y la configuración regional (que los juegos suelen definir con el mismo valor) y los grupos de recursos como ajustes independientes.
UE simplifica esta separación y también proporciona algunas utilidades que puedes usar tanto en C++ como en Blueprint para gestionar los ajustes.
Cómo obtener la variante activa
La información de la variante activa subyacente se almacena en el singleton FInternationalization, pero UKismetInternationalizationLibrary proporciona un pequeño conjunto de funciones contenedoras que permiten acceder a la información de forma coherente tanto desde C++ como desde blueprints.
| Función | Descripción |
|---|---|
| GetCurrentLanguage | Obtiene el idioma activo como etiqueta de idioma IETF. |
| GetCurrentLocale | Obtiene la configuración regional activa como etiqueta de idioma IETF. |
| GetCurrentAssetGroupCulture | Obtiene la variante de un grupo de recursos con nombre como etiqueta de idioma IETF. |
Configuración de la variante activa
La información de la variante activa subyacente se almacena en el singleton FInternationalization, pero UKismetInternationalizationLibrary proporciona un pequeño conjunto de funciones contenedoras que permiten establecer los valores tanto desde C++ como desde blueprints. También permiten conservar los nuevos ajustes en el archivo de configuración de cada usuario.
| Función | Descripción |
|---|---|
| SetCurrentCulture | Define la variante activa (idioma, configuración regional y todos los grupos de recursos) a partir de una etiqueta de idioma IETF. |
| SetCurrentLanguage | Establece el idioma activo a partir de una etiqueta de idioma IETF. |
| SetCurrentLocale | Define la configuración regional activa a partir de una etiqueta de idioma IETF. |
| SetCurrentLanguageAndLocale | Define el idioma y la configuración regional activos a partir de una etiqueta de idioma IETF. |
| SetCurrentAssetGroupCulture | Establece la variante de un grupo de recursos con nombre desde una etiqueta de idioma IETF. |
| ClearCurrentAssetGroupCulture | Borra la variante de un grupo de recursos con nombre (se volverá a utilizar el idioma activo). |
La variante también se puede cambiar en compilaciones que no sean distribuidoras mediante comandos de consola del motor.
Ejemplo:
culture=fr
language=fr
locale=fr
Consulta de los idiomas disponibles
La información de idioma subyacente disponible se almacena en el singleton FTextLocalizationManager, pero UKismetInternationalizationLibrary proporciona un pequeño conjunto de funciones contenedoras que te permiten acceder a la información de forma coherente tanto desde C++ como desde blueprints.
| Función | Descripción |
|---|---|
| GetNativeCulture | Obtiene la variante de origen de una categoría de localización como etiqueta de idioma IETF. |
| GetLocalizedCultures | Obtiene la lista de variantes que tienen datos de localización disponibles como etiquetas de idioma IETF. |
| GetSuitableCulture | Obtiene la variante más adecuada de una lista de variantes disponibles. |
| GetCultureDisplayName | Obtiene el nombre visible de una variante partir de su etiqueta de idioma IETF. |
Anulación de la variante predeterminada
Para determinar la variante predeterminada, UE consulta a la capa de la plataforma subyacente el idioma y la configuración regional activos. Si el idioma de la plataforma no es compatible, UE recurre al idioma nativo de tu objetivo de localización. En un proyecto enviado, probablemente no anularás este comportamiento. Sin embargo, durante el desarrollo, estas modificaciones pueden ser útiles para probar otros idiomas.
Los ajustes predeterminados del proyecto se definirán normalmente en tu DefaultGame.ini. En este ejemplo, se muestran ajustes de variantes de francés.
Ejemplo:
[Internationalization]
culture=fr
Este ejemplo muestra cómo se configura el francés para el idioma y la configuración regional y se ajusta el japonés para el grupo de recursos de audio.
Ejemplo:
[Internationalization]
language=fr
locale=fr
[Internationalization.AssetGroupCultures]
+Audio=ja
La configuración también se puede anular mediante indicadores de línea de comandos.
Ejemplo:
-culture=fr
-language=fr
-locale=fr
Vista previa de la localización
La vista previa de la localización permite previsualizar los datos de localización de tu proyecto sin salir del editor. Se configura mediante el ajuste Previsualizar idioma del juego. Para cambiar la configuración, sigue estos pasos.
-
En la barra del menú del editor, haz clic en Editar > Preferencias del editor.
-
En el cuadro de diálogo Preferencias del editor, en General, haz clic en Región e idioma.
-
Haz clic en el desplegable junto a Previsualizar idioma del juego y selecciona el idioma que quieras previsualizar.
La vista previa se activa automáticamente cuando se ejecuta Reproducir en el editor (PIE), además de pasar a cualquier instancia independiente que se inicie en el editor. Esta vista previa también puede usarse en el editor UMG para previsualizar widgets en distintos idiomas. Mientras se ejecuta una vista previa, todos los campos de texto editables son de solo lectura para evitar que se sobrescriban accidentalmente datos de la traducción.
Las previsualizaciones de PIE y UMG no siempre son representaciones totalmente precisas de cómo se verá tu proyecto en tiempo de ejecución, ya que solo cargan los datos de localización sin que esto afecte al idioma ni a la configuración regional. Si quieres una representación precisa, ejecuta una instancia independiente en el editor (que es lo mismo que ejecutar el editor con -game).
Reasignación de variantes
La reasignación de variantes permite asignar un código de variantes a otro y puede ser útil para gestionar las varianzas regionales que no pueden ser gestionadas por una secuencia de comandos ni con códigos de país. Las reasignaciones de variantes van dentro de tu archivo DefaultGame.ini y son un par de etiquetas de idioma IETF separadas por punto y coma.
Ejemplo:
[Internationalization]
+CultureMappings="es-MX;es-419"
Restricciones de variantes
Las restricciones de variantes permiten de activar o desactivar ciertas variantes (se puede hacer en cada versión). Las restricciones de variantes pueden ser útiles si quieres desactivar idiomas que son necesarios para las pruebas, pero que no deberían estar en la versión final del proyecto.
Las restricciones de variantes suelen ir dentro de tu archivo DefaultGame.ini y se configuran con una etiqueta de idioma IETF. Puedes incluir una lista de configuraciones de compilación a las que aplicar la restricción (si no hay configuraciones de compilación en la lista, las restricciones se aplican a todas las configuraciones de compilación).
Ejemplo:
[Internationalization]
;Habilita solo el francés en todas las configuraciones de compilación
+EnabledCultures="fr"
[Internationalization]
;Habilita solo el francés en todas las configuraciones de compilación finales y de prueba
+EnabledCultures="fr;Test,Shipping"
[Internationalization]
;Deshabilita el alemán en la configuración de compilación final
+DisabledCultures="de;Shipping"