Refactor: Traduce todas las notificaciones a castellano

Unifica el idioma de todas las notificaciones del sistema a castellano
para mantener consistencia en la interfaz de usuario.

## Traducciones Realizadas

### Gravedad
- "Gravity Off/On" → "Gravedad Off/On"
- "Gravity Up" → "Gravedad Arriba"
- "Gravity Down" → "Gravedad Abajo"
- "Gravity Left" → "Gravedad Izquierda"
- "Gravity Right" → "Gravedad Derecha"

### Modos
- "Physics Mode" → "Modo Física"

### Figuras 3D (array shape_names[] + notificaciones)
- "None" → "Ninguna"
- "Sphere" → "Esfera"
- "Cube" → "Cubo"
- "Helix" → "Hélice"
- "Torus" → "Toroide"
- "Lissajous" → "Lissajous" (mantiene nombre técnico)
- "Cylinder" → "Cilindro"
- "Icosahedron" → "Icosaedro"
- "Atom" → "Átomo"
- "PNG Shape" → "Forma PNG"

### Profundidad
- "Depth Zoom On/Off" → "Profundidad On/Off"

## Mantienen Inglés

- **Sprite**: Término técnico común en desarrollo
- **Nombres de temas**: Usan getCurrentThemeNameES() (ya en español)
- **Modos de aplicación**: Ya estaban en español
- **Número de pelotas**: Ya estaban en español
- **Escala**: Ya estaba en español
- **Páginas**: Ya estaban en español

## Resultado

 Interfaz de usuario 100% en castellano
 Consistencia en todas las notificaciones
 Mantiene términos técnicos apropiados (Lissajous, Sprite)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-10 09:02:11 +02:00
parent eb3dd03579
commit 0d069da29d

View File

@@ -330,12 +330,12 @@ void Engine::handleEvents() {
// Si estamos en modo figura, salir a modo física SIN GRAVEDAD
if (current_mode_ == SimulationMode::SHAPE) {
toggleShapeMode(false); // Desactivar figura sin forzar gravedad ON
showNotificationForAction("Gravity Off");
showNotificationForAction("Gravedad Off");
} else {
switchBallsGravity(); // Toggle normal en modo física
// Determinar estado actual de gravedad (gravity_force_ != 0.0f significa ON)
bool gravity_on = balls_.empty() ? true : (balls_[0]->getGravityForce() != 0.0f);
showNotificationForAction(gravity_on ? "Gravity On" : "Gravity Off");
showNotificationForAction(gravity_on ? "Gravedad On" : "Gravedad Off");
}
break;
@@ -348,7 +348,7 @@ void Engine::handleEvents() {
enableBallsGravityIfDisabled(); // Reactivar gravedad si estaba OFF
}
changeGravityDirection(GravityDirection::UP);
showNotificationForAction("Gravity Up");
showNotificationForAction("Gravedad Arriba");
break;
case SDLK_DOWN:
@@ -359,7 +359,7 @@ void Engine::handleEvents() {
enableBallsGravityIfDisabled(); // Reactivar gravedad si estaba OFF
}
changeGravityDirection(GravityDirection::DOWN);
showNotificationForAction("Gravity Down");
showNotificationForAction("Gravedad Abajo");
break;
case SDLK_LEFT:
@@ -370,7 +370,7 @@ void Engine::handleEvents() {
enableBallsGravityIfDisabled(); // Reactivar gravedad si estaba OFF
}
changeGravityDirection(GravityDirection::LEFT);
showNotificationForAction("Gravity Left");
showNotificationForAction("Gravedad Izquierda");
break;
case SDLK_RIGHT:
@@ -381,7 +381,7 @@ void Engine::handleEvents() {
enableBallsGravityIfDisabled(); // Reactivar gravedad si estaba OFF
}
changeGravityDirection(GravityDirection::RIGHT);
showNotificationForAction("Gravity Right");
showNotificationForAction("Gravedad Derecha");
break;
case SDLK_V:
@@ -397,11 +397,11 @@ void Engine::handleEvents() {
toggleShapeMode();
// Mostrar notificación según el modo actual después del toggle
if (current_mode_ == SimulationMode::PHYSICS) {
showNotificationForAction("Physics Mode");
showNotificationForAction("Modo Física");
} else {
// Mostrar nombre de la figura actual (orden debe coincidir con enum ShapeType)
// Índices: 0=NONE, 1=SPHERE, 2=CUBE, 3=HELIX, 4=TORUS, 5=LISSAJOUS, 6=CYLINDER, 7=ICOSAHEDRON, 8=ATOM, 9=PNG_SHAPE
const char* shape_names[] = {"None", "Sphere", "Cube", "Helix", "Torus", "Lissajous", "Cylinder", "Icosahedron", "Atom", "PNG Shape"};
const char* shape_names[] = {"Ninguna", "Esfera", "Cubo", "Hélice", "Toroide", "Lissajous", "Cilindro", "Icosaedro", "Átomo", "Forma PNG"};
showNotificationForAction(shape_names[static_cast<int>(current_shape_type_)]);
}
break;
@@ -409,7 +409,7 @@ void Engine::handleEvents() {
// Selección directa de figuras 3D
case SDLK_Q:
activateShape(ShapeType::SPHERE);
showNotificationForAction("Sphere");
showNotificationForAction("Esfera");
break;
case SDLK_W:
@@ -419,37 +419,37 @@ void Engine::handleEvents() {
case SDLK_E:
activateShape(ShapeType::HELIX);
showNotificationForAction("Helix");
showNotificationForAction("Hélice");
break;
case SDLK_R:
activateShape(ShapeType::TORUS);
showNotificationForAction("Torus");
showNotificationForAction("Toroide");
break;
case SDLK_T:
activateShape(ShapeType::CUBE);
showNotificationForAction("Cube");
showNotificationForAction("Cubo");
break;
case SDLK_Y:
activateShape(ShapeType::CYLINDER);
showNotificationForAction("Cylinder");
showNotificationForAction("Cilindro");
break;
case SDLK_U:
activateShape(ShapeType::ICOSAHEDRON);
showNotificationForAction("Icosahedron");
showNotificationForAction("Icosaedro");
break;
case SDLK_I:
activateShape(ShapeType::ATOM);
showNotificationForAction("Atom");
showNotificationForAction("Átomo");
break;
case SDLK_O:
activateShape(ShapeType::PNG_SHAPE);
showNotificationForAction("PNG Shape");
showNotificationForAction("Forma PNG");
break;
// Ciclar temas de color (movido de T a B)
@@ -595,7 +595,7 @@ void Engine::handleEvents() {
case SDLK_KP_DIVIDE:
if (current_mode_ == SimulationMode::SHAPE) {
depth_zoom_enabled_ = !depth_zoom_enabled_;
showNotificationForAction(depth_zoom_enabled_ ? "Depth Zoom On" : "Depth Zoom Off");
showNotificationForAction(depth_zoom_enabled_ ? "Profundidad On" : "Profundidad Off");
}
break;