Lumberyard
Guía del usuario (Version 1.21)

Inicialización de localización

Para inicializar el sistema de localización, se requiere lo siguiente:

  • Una llamada a C ++ para inicializar Localization Manager al inicio del juego

  • XML de definición de etiqueta

  • XML de texto localizado

Administrador de localización

Al inicio del juego, debe inicializar el Localization Manager (Administrador de localización) (ILocalizationManager) con el XML de definición de etiquetas.

Por ejemplo, el siguiente fragmento de código procede de dev/SamplesProject/Gem/Code/Source/Core/GameplaySampleGame.cpp en el proyecto de ejemplos:

void LoadLocalizationData() { ILocalizationManager* pLocMan = GetISystem()->GetLocalizationManager(); if (pLocMan) { AZStd::string localizationXml("libs/localization/localization.xml"); if (pLocMan->InitLocalizationData(localizationXml.c_str())) { const bool initLocSuccess = pLocMan->LoadLocalizationDataByTag("init"); AZ_Error("Localization", initLocSuccess, "LoadLocalizationData() failed to load localization file=%s", localizationXml.c_str()); } } }

El ejemplo de código anterior hace lo siguiente:

  • Inicializa el administrador de localización con el XML de definición de etiquetas.

  • Carga todo el XML de texto localizado para el idioma actual que se agrupa por la etiqueta init dentro del XML de definición de etiquetas.

Variables de la consola

Las siguientes dos variables de consola, CVar, afectan al sistema de localización:

g_language

El nombre del idioma actual que utiliza el juego. Está establecido en English de forma predeterminada.

sys_localization_folder

El directorio que se utiliza para encontrar activos de localización. Este directorio contiene archivos PAK de idioma o archivos XML de texto localizado "sueltos".

Por ejemplo, en el proyecto de ejemplos, el archivo de configuración del juego, /dev/SamplesProject/game.cfg, establece sys_localization_folder en Localization. En la estructura de directorios del juego, esto define la ubicación como dev/SamplesProject/Localization.

Localización de texto

Después de inicializar correctamente el administrador de localización, puede localizar el texto al idioma actual. Para ello, pase la clave de localización que desee localizar.

Por ejemplo:

string locText; gEnv->pSystem->GetLocalizationManager()->LocalizeString("@ui_Hello", locText);

Suponiendo que la clave @ui_Hello esté localizada en el idioma actual, el contenido de locText contendrá la codificación Unicode (UTF8) para el valor localizado que contiene el XML de texto localizado.

UiTextComponent

El sistema de IU de Lumberyard, contenido en la gema LyShine y que se instala de manera predeterminada, incluye un componente de texto con compatibilidad incorporada para localizar el texto automáticamente. Cuando se introduce una clave de texto localizada válida (como @ui_Hello, tal y como se muestra en el ejemplo anterior), el motor sustituye el contenido de la cadena representada por el texto localizado. Esa clave debe localizarse para el idioma actual.

Para ver el código fuente de los ejemplos de llamadas al administrador de localización, abra ui/Gems/LyShine/Code/Source/UiTextComponent.cpp.