Skip to content

Configuración de Poedit (ES)

Esta guía explica el flujo recomendado para usar Poedit con Hyper PO Localization.

Flujo recomendado (basado en plantilla POT)

  1. En Unity, selecciona assets traducibles.
  2. Ejecuta Tools/Hyper PO Localization/Extract Strings.
    • También puedes lanzarlo desde el menú contextual de Project (clic derecho): Assets/Hyper PO Localization/Extract Strings.
    • Revisa la Consola de Unity para ver el log resumen de extracción (conteos y ruta del manifiesto).
  3. Ejecuta Tools/Hyper PO Localization/Create POT.
  4. Abre:
    • Assets/StreamingAssets/Languages/<ProductName>.pot
  5. En Poedit, crea una traducción nueva desde esa plantilla POT.
  6. Guarda los archivos traducidos como:
    • Assets/StreamingAssets/Languages/<language_code>.po
    • Ejemplo: es_ES.po

En runtime, los idiomas se cargan desde StreamingAssets/Languages.

Actualizar traducciones existentes

Cuando cambian los textos:

  1. Selecciona los asset(s) traducibles que cambiaron y luego ejecuta Extract Strings.
  2. Ejecuta Update POT.
  3. En Poedit, actualiza cada .po existente usando la nueva plantilla POT.
  4. Guarda los .po actualizados.

Checklist de configuración en Poedit

Verifica:

  • Charset en UTF-8.
  • Reglas de plural correctas para cada idioma.
  • Rutas correctas según tu estructura de proyecto.

Flujo opcional (Poedit parseando fuentes)

Si prefieres que Poedit escanee archivos fuente generados:

  • Carpeta: Assets/HyperMegaPixel/POLocalization/Temp
  • Patrón: *.php

Keywords a configurar en Poedit:

  • _
  • pgettext:1c,2
  • ngettext:1,2
  • npgettext:1c,2,3

Flujo alternativo (escaneo directo de C#)

Si prefieres que Poedit escanee llamadas runtime en C#:

  • Carpeta: tus carpetas de scripts de gameplay
  • Patrón: *.cs

Keywords a configurar en Poedit:

  • GetString:1
  • GetStringContext:1c,2
  • GetPlural:1,2
  • GetPluralContext:1c,2,3

Importante:

  • Recomendado: usar una sola fuente por proyecto de Poedit (escaneo C# o Temp/*.php). Si las claves son idénticas, gettext las fusiona, pero al mezclar fuentes puede haber referencias ruidosas o casi-duplicados cuando difieren contexto/plural/escapado.
  • El parseo estático solo detecta argumentos literales. Ejemplo: GetString("Quest Title") se detecta, pero GetString(dynamicKey) no.
  • Para claves dinámicas que no se pueden descubrir de forma estática, mantén un asset ManualTranslations (Create/Hyper/Language/Manual Translations) e incluye esas cadenas ahí.

Captura de referencia: Paths y Keywords

Poedit paths y keywords

Flujo "Update from Code" (Poedit)

Si sueles usar el botón Update from Code, este es el flujo recomendado:

  1. En Unity, ejecuta Tools/Hyper PO Localization/Extract Strings.
    • También puedes lanzarlo desde el menú contextual de Project (clic derecho): Assets/Hyper PO Localization/Extract Strings.
    • Revisa la Consola de Unity para confirmar el log resumen antes de Update from Code.
  2. Abre tu .po objetivo en Poedit.
  3. Pulsa Update from Code.
  4. Asegúrate de que Poedit escanee:
    • Assets/HyperMegaPixel/POLocalization/Temp
    • patrón *.php
  5. Guarda el .po actualizado.

Importante:

  • Update from Code solo ve cadenas presentes en los .php generados en ese momento.
  • Extract Strings depende de la selección: solo exporta cadenas de los assets seleccionados en Unity.
  • Ejecuta siempre Extract Strings antes de actualizar, o Poedit puede omitir claves nuevas.
  • Si cambiaste ajustes de extracción (regex/types), primero regenera y luego actualiza.

Captura de referencia: Update from Code

Poedit update from code

Solución de problemas

  • HPO-016: no se encontró la carpeta activa de idiomas.
  • HPO-015: no se encontró el archivo .po solicitado.
  • Si el POT se ve desactualizado: ejecuta Extract Strings antes de Create POT / Update POT.