Fix es.json translation-catalog parity with en.json

test_every_language_mirrors_the_english_catalog was failing on main
for es (PR #246) independent of this branch. Beyond the 32 keys en.json
gained since #246 merged (the AC/fan preset_mode and fan_mode state
blocks, and the new EHS/zone/auto-clean keys), the file had accumulated
several pre-existing bugs that also broke topology parity:

- climate.airconditioner and fan.air_purifier_fan carried a stray
  "name" key that doesn't exist in en.json's catalog for either (both
  entities are unnamed in code); removed, and their real
  state_attributes blocks added.
- select.buzzer_sound and select.finish_sound were keyed by literal
  on-wire device codes (Volume_Off/Low/Med/High, Finish Sound_1/2/3)
  instead of en.json's actual off/on states -- dead translations, never
  resolved at runtime. finish_sound's values were also unrelated song
  titles, not sound-toggle labels. Replaced both with real off/on
  entries.
- select.dryer_cycle_table_03 had codes 1c/1d/1e (Shirts/Towels/Outdoor)
  rotated by one slot, so a Shirts cycle displayed "Toallas"; realigned
  to the correct codes and added the 2 missing ones (2b, 4c).
- select.washer_cycle_table_02 carried 4 stray codes (06/08/74/A0) not
  present in en.json's table at all, duplicating already-correct
  translations under codes this device never reports; removed.

tests/test_translations.py now passes for every language, and the full
suite is green (1121 passed).
This commit is contained in:
Marc Billow
2026-08-02 22:04:32 +00:00
parent 81b83f4175
commit 547388cc2b
@@ -219,6 +219,9 @@
}, },
"softener_low": { "softener_low": {
"name": "Poco suavizante" "name": "Poco suavizante"
},
"auto_clean_running": {
"name": "Limpieza automática en curso"
} }
}, },
"button": { "button": {
@@ -243,12 +246,44 @@
}, },
"climate": { "climate": {
"airconditioner": { "airconditioner": {
"name": "Aire acondicionado" "state_attributes": {
"fan_mode": {
"state": {
"turbo": "Turbo",
"max": "Máximo"
}
},
"preset_mode": {
"state": {
"ai_comfort": "Confort IA",
"quiet": "Silencioso",
"smart": "Inteligente",
"speed": "Rápido",
"nano": "WindFree",
"nanosleep": "WindFree sueño",
"longwind": "Viento prolongado",
"motionindirect": "Indirecto al movimiento",
"motiondirect": "Directo al movimiento",
"drycomfort": "Confort seco",
"2step": "2 pasos"
}
}
}
} }
}, },
"fan": { "fan": {
"air_purifier_fan": { "air_purifier_fan": {
"name": "Ventilador del purificador de aire" "state_attributes": {
"preset_mode": {
"state": {
"smart": "Inteligente",
"max": "Máximo",
"mid": "Medio",
"windfree": "WindFree",
"sleep": "Reposo"
}
}
}
} }
}, },
"number": { "number": {
@@ -281,6 +316,9 @@
}, },
"tropical_night_mode": { "tropical_night_mode": {
"name": "Modo noche tropical" "name": "Modo noche tropical"
},
"zone_target_temperature": {
"name": "Temperatura objetivo de zona"
} }
}, },
"select": { "select": {
@@ -319,10 +357,8 @@
"buzzer_sound": { "buzzer_sound": {
"name": "Volumen", "name": "Volumen",
"state": { "state": {
"Volume_Off": "Apagado", "off": "Apagado",
"Volume_Low": "Bajo", "on": "Encendido"
"Volume_Med": "Medio",
"Volume_High": "Alto"
} }
}, },
"discharging_time": { "discharging_time": {
@@ -398,10 +434,12 @@
"29": "Secado IA", "29": "Secado IA",
"1a": "Lana", "1a": "Lana",
"1b": "Ropa de cama", "1b": "Ropa de cama",
"1c": "Toallas", "1c": "Camisas",
"1d": "Exterior", "1d": "Toallas",
"1e": "Camisas", "1e": "Exterior",
"1f": "Carga mixta" "1f": "Carga mixta",
"2b": "Secado de tambor",
"4c": "Renovación de aire"
} }
}, },
"favorite_capacity": { "favorite_capacity": {
@@ -422,9 +460,8 @@
"finish_sound": { "finish_sound": {
"name": "Alarma de fin de ciclo", "name": "Alarma de fin de ciclo",
"state": { "state": {
"Finish Sound_1": "Beyond The Horizon", "off": "Apagado",
"Finish Sound_2": "Beyond The Horizon - Corto", "on": "Encendido"
"Finish Sound_3": "La Trucha de Schubert"
} }
}, },
"flex_zone_mode": { "flex_zone_mode": {
@@ -680,11 +717,7 @@
"86": "Lavado profundo", "86": "Lavado profundo",
"87": "Descarga de Programas", "87": "Descarga de Programas",
"8f": "Lavado en frío", "8f": "Lavado en frío",
"96": "Menos microfibras", "96": "Menos microfibras"
"08": "Aclarar + Centrifugar",
"74": "Limpieza de Tambor",
"06": "Ropa de cama",
"A0": "Rápido 15'"
} }
}, },
"washer_dry_level": { "washer_dry_level": {
@@ -699,6 +732,9 @@
"none": "Desactivado", "none": "Desactivado",
"cupboard": "Armario" "cupboard": "Armario"
} }
},
"zone_mode": {
"name": "Modo de zona"
} }
}, },
"sensor": { "sensor": {
@@ -1041,6 +1077,12 @@
"icestatus_stop": "Inactiva", "icestatus_stop": "Inactiva",
"icestatus_run": "Haciendo hielo" "icestatus_run": "Haciendo hielo"
} }
},
"auto_clean_progress": {
"name": "Progreso de limpieza automática"
},
"zone_temperature": {
"name": "Temperatura de zona"
} }
}, },
"switch": { "switch": {
@@ -1202,6 +1244,12 @@
}, },
"wrinkle_prevent": { "wrinkle_prevent": {
"name": "Anti-arrugas" "name": "Anti-arrugas"
},
"away_mode": {
"name": "Modo ausencia"
},
"zone_power": {
"name": "Alimentación de zona"
} }
}, },
"time": { "time": {
@@ -1223,6 +1271,11 @@
"night_start": { "night_start": {
"name": "Inicio de la luz nocturna" "name": "Inicio de la luz nocturna"
} }
},
"water_heater": {
"dhw": {
"name": "Agua caliente"
}
} }
} }
} }