refactor: normalizar notificaciones a castellano, title case sin dos puntos

- Todo en castellano (Vinyeta→viñeta, Cromàtica→cromática, Complet→completo, Desactivat→desactivado, Boids→boids)
- Primera letra mayúscula, resto minúscula (MODO SANDBOX→Modo sandbox, etc.)
- Sin dos puntos separador (PostFX: X→PostFX X, Escalado: X→Escalado X, Sprite: X→Textura X)
- Separadores de miles en castellano (1,000→1.000 pelotas)
- Nombres de figura en minúscula via tolower (SPHERE→sphere → "Modo sphere")
- Ajuste valores PostFX por defecto (vignette 1.5→0.8, chroma 1.0→0.2)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-20 18:21:28 +01:00
parent e46c3eb4ba
commit f3b029c5b6
6 changed files with 50 additions and 47 deletions

View File

@@ -472,20 +472,20 @@ void Engine::handleGravityToggle() {
toggleBoidsMode(false); // Cambiar a PHYSICS sin activar gravedad (preserva inercia)
// NO llamar a forceBallsGravityOff() porque aplica impulsos que destruyen la inercia de BOIDS
// La gravedad ya está desactivada por BoidManager::activateBoids() y se mantiene al salir
showNotificationForAction("Modo Física - Gravedad Off");
showNotificationForAction("Modo física, gravedad off");
return;
}
// Si estamos en modo figura, salir a modo física SIN GRAVEDAD
if (current_mode_ == SimulationMode::SHAPE) {
toggleShapeModeInternal(false); // Desactivar figura sin forzar gravedad ON
showNotificationForAction("Gravedad Off");
showNotificationForAction("Gravedad off");
} else {
scene_manager_->switchBallsGravity(); // Toggle normal en modo física
// Determinar estado actual de gravedad (gravity_force_ != 0.0f significa ON)
const Ball* first_ball = scene_manager_->getFirstBall();
bool gravity_on = (first_ball == nullptr) ? true : (first_ball->getGravityForce() != 0.0f);
showNotificationForAction(gravity_on ? "Gravedad On" : "Gravedad Off");
showNotificationForAction(gravity_on ? "Gravedad on" : "Gravedad off");
}
}
@@ -679,9 +679,9 @@ void Engine::toggleDemoMode() {
// Mostrar notificación según el modo resultante
if (new_mode == AppMode::SANDBOX && prev_mode != AppMode::SANDBOX) {
showNotificationForAction("MODO SANDBOX");
showNotificationForAction("Modo sandbox");
} else if (new_mode == AppMode::DEMO && prev_mode != AppMode::DEMO) {
showNotificationForAction("MODO DEMO");
showNotificationForAction("Modo demo");
}
}
@@ -692,9 +692,9 @@ void Engine::toggleDemoLiteMode() {
// Mostrar notificación según el modo resultante
if (new_mode == AppMode::SANDBOX && prev_mode != AppMode::SANDBOX) {
showNotificationForAction("MODO SANDBOX");
showNotificationForAction("Modo sandbox");
} else if (new_mode == AppMode::DEMO_LITE && prev_mode != AppMode::DEMO_LITE) {
showNotificationForAction("MODO DEMO LITE");
showNotificationForAction("Modo demo lite");
}
}
@@ -705,9 +705,9 @@ void Engine::toggleLogoMode() {
// Mostrar notificación según el modo resultante
if (new_mode == AppMode::SANDBOX && prev_mode != AppMode::SANDBOX) {
showNotificationForAction("MODO SANDBOX");
showNotificationForAction("Modo sandbox");
} else if (new_mode == AppMode::LOGO && prev_mode != AppMode::LOGO) {
showNotificationForAction("MODO LOGO");
showNotificationForAction("Modo logo");
}
}
@@ -1052,10 +1052,10 @@ void Engine::toggleRealFullscreen() {
void Engine::applyPostFXPreset(int mode) {
static constexpr float presets[4][3] = {
{1.5f, 0.0f, 0.0f}, // 0: Vinyeta
{1.5f, 0.0f, 0.8f}, // 1: Scanlines
{1.5f, 1.0f, 0.0f}, // 2: Cromàtica
{1.5f, 1.0f, 0.8f}, // 3: Complet
{0.8f, 0.0f, 0.0f}, // 0: Vinyeta
{0.8f, 0.0f, 0.8f}, // 1: Scanlines
{0.8f, 0.2f, 0.0f}, // 2: Cromàtica
{0.8f, 0.2f, 0.8f}, // 3: Complet
};
postfx_uniforms_.vignette_strength = presets[mode][0];
postfx_uniforms_.chroma_strength = presets[mode][1];
@@ -1071,8 +1071,8 @@ void Engine::handlePostFXCycle() {
void Engine::handlePostFXToggle() {
static constexpr const char* names[4] = {
"PostFX: Vinyeta", "PostFX: Scanlines",
"PostFX: Cromàtica", "PostFX: Complet"
"PostFX viñeta", "PostFX scanlines",
"PostFX cromática", "PostFX completo"
};
postfx_enabled_ = !postfx_enabled_;
if (postfx_enabled_) {
@@ -1082,7 +1082,7 @@ void Engine::handlePostFXToggle() {
postfx_uniforms_.vignette_strength = 0.0f;
postfx_uniforms_.chroma_strength = 0.0f;
postfx_uniforms_.scanline_strength = 0.0f;
showNotificationForAction("PostFX: Desactivat");
showNotificationForAction("PostFX desactivado");
}
}
@@ -1103,8 +1103,8 @@ void Engine::setPostFXParamOverrides(float vignette, float chroma) {
void Engine::cycleShader() {
static const char* names[5] = {
"PostFX: Desactivat", "PostFX: Vinyeta", "PostFX: Scanlines",
"PostFX: Cromàtica", "PostFX: Complet"
"PostFX desactivado", "PostFX viñeta", "PostFX scanlines",
"PostFX cromática", "PostFX completo"
};
postfx_cycle_idx_ = (postfx_cycle_idx_ + 1) % 5;
int cycle = postfx_cycle_idx_;
@@ -1136,13 +1136,13 @@ void Engine::toggleIntegerScaling() {
break;
}
const char* mode_name = "INTEGER";
const char* mode_name = "entero";
switch (current_scaling_mode_) {
case ScalingMode::INTEGER: mode_name = "INTEGER"; break;
case ScalingMode::LETTERBOX: mode_name = "LETTERBOX"; break;
case ScalingMode::STRETCH: mode_name = "STRETCH"; break;
case ScalingMode::INTEGER: mode_name = "entero"; break;
case ScalingMode::LETTERBOX: mode_name = "letterbox"; break;
case ScalingMode::STRETCH: mode_name = "stretch"; break;
}
showNotificationForAction(std::string("Escalado: ") + mode_name);
showNotificationForAction(std::string("Escalado ") + mode_name);
}
void Engine::addSpriteToBatch(float x, float y, float w, float h, int r, int g, int b, float scale) {
@@ -1306,8 +1306,8 @@ void Engine::switchTextureInternal(bool show_notification) {
// Mostrar notificación con el nombre de la textura (solo si se solicita)
if (show_notification) {
std::string texture_name = texture_names_[current_texture_index_];
std::transform(texture_name.begin(), texture_name.end(), texture_name.begin(), ::toupper);
showNotificationForAction("Sprite: " + texture_name);
std::transform(texture_name.begin(), texture_name.end(), texture_name.begin(), ::tolower);
showNotificationForAction("Textura " + texture_name);
}
}