Appearance
Runtime API (ES)
Esta es la referencia de runtime orientada al uso en producción.
Punto de entrada recomendado
Usa HyperPOLocalization en lugar de llamar LanguageManager directamente:
csharp
using Hyper.POLocalization;
titleLabel.text = HyperPOLocalization.GetString("Quest Title");Ventajas:
- Resuelve automáticamente el
LanguageManager. - Tiene fallback seguro si no hay manager activo.
- Mantiene el código de gameplay desacoplado.
Métodos más usados
Singular
csharp
HyperPOLocalization.GetString("Need {0} items", "3");Para entradas normales msgid / msgstr.
Contexto
csharp
HyperPOLocalization.GetStringContext("menu", "Open");
HyperPOLocalization.GetStringContext("hud", "Open");Para claves con distinto significado por contexto (msgctxt).
Plural
csharp
HyperPOLocalization.GetPlural(
"{0} apple in bag",
"{0} apples in bag",
appleCount,
appleCount.ToString());Para msgid_plural + msgstr[n].
Plural con contexto
csharp
HyperPOLocalization.GetPluralContext(
"inventory",
"{0} apple in bag",
"{0} apples in bag",
appleCount,
appleCount.ToString());Atributos de metadata para extracción
Si usas extracción basada en assets y quieres metadata explícita para traductores, revisa:
Documentation/ExtractionAttributes_ES.md
Estado útil en runtime
csharp
if (!HyperPOLocalization.IsReady)
{
// Fallback opcional de UI
}csharp
LanguageManager manager = HyperPOLocalization.Manager;Usa Manager solo cuando necesites control explícito del idioma.
Cambio manual de idioma
csharp
using Hyper.POLocalization;
using UnityEngine;
public class LanguageSwitcher : MonoBehaviour
{
[SerializeField] private LanguageManager manager;
public void SetSpanish()
{
bool exactMatch = manager.SetLanguage("es_ES", allowFallback: true, rescan: true);
Debug.Log($"Idioma activo: {manager.currentLanguage} | Match exacto: {exactMatch}");
}
}Llamadas comunes:
SetLanguage(languageCode, allowFallback, rescan)ScanAvailableLanguages()HasLanguage(languageCode)
Convención de archivos de idioma
Carpeta por defecto:
StreamingAssets/Languages
Ejemplos:
en_US.poes_ES.popt_BR.po
Los códigos se normalizan de - a _ (por ejemplo en-US -> en_US).