Add translation instructions guide
This commit is contained in:
217
instrucciones_traducción.txt
Normal file
217
instrucciones_traducción.txt
Normal file
@@ -0,0 +1,217 @@
|
||||
================================================================================
|
||||
GUÍA PARA AGREGAR NUEVAS TRADUCCIONES AL ESPAÑOL.JSON
|
||||
================================================================================
|
||||
|
||||
Este archivo explica cómo encontrar nuevos textos hardcodeados en el código
|
||||
y agregarlos al archivo de traducción Espanol.json.
|
||||
|
||||
================================================================================
|
||||
PASO 1: IDENTIFICAR TEXTOS HARDCODEADOS EN EL CÓDIGO
|
||||
================================================================================
|
||||
|
||||
Los textos que aparecen en el menú están en archivos .cpp dentro de:
|
||||
soh/soh/SohGui/
|
||||
|
||||
Los archivos principales son:
|
||||
- SohMenuSettings.cpp (Configuración del menú)
|
||||
- SohMenuEnhancements.cpp (Mejoras del juego)
|
||||
- SohMenuRandomizer.cpp (Randomizer)
|
||||
- SohMenuNetwork.cpp (Red)
|
||||
- SohMenuDevTools.cpp (Herramientas de desarrollo)
|
||||
- Menu.cpp (Sistema de menús)
|
||||
|
||||
Para buscar textos hardcodeados, usa estos patrones:
|
||||
|
||||
1. Buscar en AddWidget (texto visible en el menú):
|
||||
grep -n 'AddWidget.*"' soh/soh/SohGui/*.cpp
|
||||
|
||||
2. Buscar en AddSidebarEntry (entradas de barra lateral):
|
||||
grep -n 'AddSidebarEntry' soh/soh/SohGui/*.cpp
|
||||
|
||||
3. Buscar en AddMenuEntry (títulos de menú):
|
||||
grep -n 'AddMenuEntry' soh/soh/SohGui/*.cpp
|
||||
|
||||
|
||||
================================================================================
|
||||
PASO 2: IDENTIFICAR EL TEXTO EXACTO A TRADUCIR
|
||||
================================================================================
|
||||
|
||||
Ejemplo de búsqueda:
|
||||
|
||||
$ grep -n 'AddWidget' soh/soh/SohGui/SohMenuSettings.cpp | head -20
|
||||
|
||||
Resultado:
|
||||
163: AddWidget(path, "Menu Settings", WIDGET_SEPARATOR_TEXT);
|
||||
164: AddWidget(path, "Menu Theme", WIDGET_CVAR_COMBOBOX)
|
||||
172: AddWidget(path, "Menu Controller Navigation", WIDGET_CVAR_CHECKBOX)
|
||||
179: AddWidget(path, "Allow background inputs", WIDGET_CVAR_CHECKBOX)
|
||||
|
||||
El texto a traducir es lo que aparece entre comillas después de la coma:
|
||||
- "Menu Settings" -> traducir como "Menu Settings"
|
||||
- "Menu Theme" -> traducir como "Menu Theme"
|
||||
- "Allow background inputs" -> traducir como "Allow background inputs"
|
||||
|
||||
|
||||
================================================================================
|
||||
PASO 3: VERIFICAR SI YA EXISTE LA TRADUCCIÓN
|
||||
================================================================================
|
||||
|
||||
Antes de agregar una traducción, verifica si ya existe:
|
||||
|
||||
$ grep -i '"texto_a_buscar"' lenguajes/Espanol.json
|
||||
|
||||
O busca en el archivo directamente:
|
||||
$ grep '"Menu Settings"' lenguajes/Espanol.json
|
||||
|
||||
|
||||
================================================================================
|
||||
PASO 4: AGREGAR LA TRADUCCIÓN AL JSON
|
||||
================================================================================
|
||||
|
||||
El archivo JSON tiene esta estructura:
|
||||
|
||||
{
|
||||
"language": "Español",
|
||||
"strings": {
|
||||
"TEXTO_EN_INGLÉS": "TEXTO_EN_ESPAÑOL",
|
||||
...
|
||||
}
|
||||
}
|
||||
|
||||
Ejemplo 1 - Agregar una traducción simple:
|
||||
|
||||
Buscas en el código:
|
||||
AddWidget(path, "Allow background inputs", WIDGET_CVAR_CHECKBOX)
|
||||
|
||||
Agregas al JSON:
|
||||
"Allow background inputs": "Permitir entradas en segundo plano",
|
||||
|
||||
Ejemplo 2 - Agregar una traducción con variable (%d):
|
||||
|
||||
Buscas en el código:
|
||||
AddWidget(path, "Master Volume: %d %%", WIDGET_CVAR_SLIDER_INT)
|
||||
|
||||
Agregas al JSON (mantén el formato %d):
|
||||
"Master Volume: %d %%": "Volumen Principal: %d %%",
|
||||
|
||||
Ejemplo 3 - Agregar texto de barra lateral:
|
||||
|
||||
Buscas en el código:
|
||||
AddSidebarEntry("Settings", "Audio", 3);
|
||||
|
||||
Agregas al JSON:
|
||||
"Audio": "Audio",
|
||||
|
||||
Ejemplo 4 - Agregar texto de menú principal:
|
||||
|
||||
Buscas en el código:
|
||||
AddMenuEntry("Enhancements", CVAR_SETTING("Menu.EnhancementsSidebarSection"));
|
||||
|
||||
Agregas al JSON:
|
||||
"Enhancements": "Mejoras",
|
||||
|
||||
|
||||
================================================================================
|
||||
PASO 5: ORDENAR LAS ENTRADAS EN EL JSON (OPCIONAL)
|
||||
================================================================================
|
||||
|
||||
Para mantener el JSON organizado, puedes ordenar las entradas alfabéticamente
|
||||
o por categoría. Las categorías principales son:
|
||||
|
||||
- Configuración del menú: Menu Settings, Boot, Languages, etc.
|
||||
- Graphics: Resolution, Aspect Ratio, etc.
|
||||
- Audio: Volumes, API, etc.
|
||||
- Enhancements: Saving, Cutscenes, Items, etc.
|
||||
- Randomizer: Seed, Settings, Trackers, etc.
|
||||
- Network: Sail, Crowd Control, etc.
|
||||
- DevTools: Debug, Stats, Editors, etc.
|
||||
|
||||
|
||||
================================================================================
|
||||
PASO 6: PROBAR LAS TRADUCCIONES
|
||||
================================================================================
|
||||
|
||||
1. Compila el proyecto:
|
||||
cmake --build build-cmake -j$(nproc)
|
||||
|
||||
2. Copia la carpeta de idiomas al ejecutable:
|
||||
cp -r lenguajes build-cmake/soh/
|
||||
|
||||
3. Ejecuta el juego y verifica que las traducciones aparezcan.
|
||||
|
||||
4. Si algo no funciona, revisa:
|
||||
- Que el JSON sea válido (sin comas extras o faltantes)
|
||||
- Que el texto en el código coincida exactamente con la clave en el JSON
|
||||
- Que no haya caracteres especiales mal escapados
|
||||
|
||||
|
||||
================================================================================
|
||||
EJEMPLO COMPLETO: AGREGAR "Autosave"
|
||||
================================================================================
|
||||
|
||||
1. Buscas en el código:
|
||||
$ grep -n 'Autosave' soh/soh/SohGui/SohMenuEnhancements.cpp
|
||||
|
||||
Resultado:
|
||||
148: AddWidget(path, "Autosave", WIDGET_CVAR_CHECKBOX)
|
||||
|
||||
2. Verificas si ya existe:
|
||||
$ grep '"Autosave"' lenguajes/Espanol.json
|
||||
|
||||
Resultado: No existe
|
||||
|
||||
3. Agregas al JSON (busca un lugar lógico, cerca de "Saving"):
|
||||
Buscas en el JSON:
|
||||
"Saving": "Guardado",
|
||||
|
||||
Agregas después:
|
||||
"Autosave": "Guardado Automático",
|
||||
|
||||
4. Quedaría así en el JSON:
|
||||
"Saving": "Guardado",
|
||||
"Autosave": "Guardado Automático",
|
||||
|
||||
|
||||
================================================================================
|
||||
REGLAS IMPORTANTES
|
||||
================================================================================
|
||||
|
||||
1. Mantén las claves en INGLÉS (el texto original del código)
|
||||
2. Los valores deben ser la traducción al ESPAÑOL
|
||||
3. Usa comas correctamente (todas las claves excepto la última deben tener coma)
|
||||
4. No uses caracteres especiales que requieran escape en JSON (\" debe ser \")
|
||||
5. Mantén el formato de printf si existe (%d, %s, %.2f, etc.)
|
||||
6. Las claves con ## son para botones con el mismo nombre (ej: "All##Skips")
|
||||
|
||||
|
||||
================================================================================
|
||||
LISTA DE ARCHIVOS CLAVE DEL SISTEMA DE TRADUCCIÓN
|
||||
================================================================================
|
||||
|
||||
- soh/soh/SohGui/LanguageManager.h -> Header del manager de idiomas
|
||||
- soh/soh/SohGui/LanguageManager.cpp -> Implementación
|
||||
- lenguajes/Espanol.json -> Archivo de traducciones
|
||||
- soh/soh/SohGui/SohMenuSettings.cpp -> Selector de idioma
|
||||
- soh/soh/SohGui/SohMenu.cpp -> Aplicación de traducciones
|
||||
|
||||
|
||||
================================================================================
|
||||
COMANDOS ÚTILES
|
||||
================================================================================
|
||||
|
||||
# Buscar todos los AddWidget con texto:
|
||||
grep -n 'AddWidget.*WIDGET' soh/soh/SohGui/*.cpp | head -50
|
||||
|
||||
# Buscar textos específicos:
|
||||
grep -i "texto_a_buscar" soh/soh/SohGui/*.cpp
|
||||
|
||||
# Contar líneas del JSON:
|
||||
wc -l lenguajes/Espanol.json
|
||||
|
||||
# Validar JSON (requiere python):
|
||||
python3 -m json.tool lenguajes/Espanol.json > /dev/null && echo "JSON válido"
|
||||
|
||||
|
||||
================================================================================
|
||||
FIN DEL DOCUMENTO
|
||||
================================================================================
|
||||
Reference in New Issue
Block a user