reglas: el panel explica que se incumple y como arreglarlo; stats por etiqueta
- RuleViolation.reasons: el motor devuelve ahora QUE regla rompe cada asignacion (repetido en la semana, maximo por semana superado, no consecutivo, no mismo dia, solo comida/cena, solo entre semana o fin de semana) con su etiqueta y limite - Panel de avisos: bloque con cada regla rota en lenguaje claro + una sugerencia de que hacer, y boton nuevo "Cambiar plato" que abre el selector de ese hueco (antes solo se podia quitar o ignorar) - Estadisticas: matriz "Etiquetas por tipo de comida" (p.ej. cuantas cenas son de pescado) y "Platos por etiqueta" del catalogo - Tests: 4 casos de las razones de incumplimiento; harness que renderiza las secciones nuevas de stats a /tmp/stats_render.png - Strings en 6 idiomas Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013H6bXqGX1ygwib1Dm3n3UG
This commit is contained in:
@@ -445,3 +445,18 @@
|
||||
"shopping_at_home_section" = "Já em casa";
|
||||
"premium_privacy_link" = "Política de privacidade";
|
||||
"premium_terms_link" = "Termos de uso (EULA)";
|
||||
"violation_reason_repeated" = "Este prato já está planejado em outra refeição desta semana";
|
||||
"violation_reason_max_per_week" = "Máximo %1$@: %2$d por semana, e você já passou";
|
||||
"violation_reason_no_consecutive" = "%@ não pode se repetir em dias seguidos";
|
||||
"violation_reason_no_same_day" = "%@ já está em outra refeição deste mesmo dia";
|
||||
"violation_reason_meal_only" = "%1$@ só é permitido no %2$@";
|
||||
"violation_reason_day_scope" = "%1$@ só é permitido %2$@";
|
||||
"violation_scope_weekdays" = "durante a semana";
|
||||
"violation_scope_weekend" = "no fim de semana";
|
||||
"violation_suggestion_repeated" = "Troque por outro prato para variar a semana";
|
||||
"violation_suggestion_swap" = "Troque por um prato de outra etiqueta";
|
||||
"violation_suggestion_move" = "Mova para um dia ou refeição permitidos";
|
||||
"violation_suggestion_generic" = "Mude o prato ou ignore o aviso";
|
||||
"violations_replace" = "Trocar prato";
|
||||
"stats_tag_by_meal_title" = "Etiquetas por tipo de refeição";
|
||||
"stats_dishes_per_tag_title" = "Pratos por etiqueta";
|
||||
|
||||
Reference in New Issue
Block a user