rails_error_dashboard 0.14.3 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +45 -17
- data/app/controllers/rails_error_dashboard/application_controller.rb +28 -4
- data/app/controllers/rails_error_dashboard/errors_controller.rb +68 -2
- data/app/controllers/rails_error_dashboard/health_controller.rb +38 -0
- data/app/helpers/rails_error_dashboard/application_helper.rb +10 -2
- data/app/helpers/rails_error_dashboard/backtrace_helper.rb +56 -2
- data/app/jobs/rails_error_dashboard/baseline_alert_job.rb +20 -2
- data/app/jobs/rails_error_dashboard/cascade_detection_job.rb +30 -0
- data/app/jobs/rails_error_dashboard/concerns/plain_channel_message.rb +33 -6
- data/app/jobs/rails_error_dashboard/discord_error_notification_job.rb +1 -1
- data/app/jobs/rails_error_dashboard/pagerduty_error_notification_job.rb +1 -1
- data/app/jobs/rails_error_dashboard/retention_cleanup_job.rb +26 -0
- data/app/jobs/rails_error_dashboard/scheduled_digest_job.rb +6 -1
- data/app/jobs/rails_error_dashboard/slack_error_notification_job.rb +1 -1
- data/app/jobs/rails_error_dashboard/telegram_error_notification_job.rb +25 -0
- data/app/jobs/rails_error_dashboard/webhook_error_notification_job.rb +2 -18
- data/app/models/rails_error_dashboard/error_log.rb +43 -12
- data/app/models/rails_error_dashboard/missing_translation.rb +43 -0
- data/app/views/layouts/rails_error_dashboard.html.erb +24 -1
- data/app/views/rails_error_dashboard/errors/_error_info.html.erb +3 -1
- data/app/views/rails_error_dashboard/errors/_sidebar_metadata.html.erb +3 -1
- data/app/views/rails_error_dashboard/errors/_source_code.html.erb +3 -9
- data/app/views/rails_error_dashboard/errors/activestorage_health_summary.html.erb +28 -0
- data/app/views/rails_error_dashboard/errors/boot_errors.html.erb +130 -0
- data/app/views/rails_error_dashboard/errors/index.html.erb +1 -1
- data/app/views/rails_error_dashboard/errors/missing_translations.html.erb +143 -0
- data/app/views/rails_error_dashboard/errors/settings/_value_badge.html.erb +7 -4
- data/app/views/rails_error_dashboard/errors/settings.html.erb +19 -5
- data/config/locales/de.yml +72 -5
- data/config/locales/en.yml +83 -4
- data/config/locales/es.yml +72 -5
- data/config/locales/fr.yml +72 -5
- data/config/locales/it.yml +72 -5
- data/config/locales/ja.yml +72 -4
- data/config/locales/pl.yml +72 -5
- data/config/locales/pt-BR.yml +72 -5
- data/config/locales/ru.yml +72 -5
- data/config/locales/uk.yml +72 -5
- data/config/locales/zh-CN.yml +72 -4
- data/config/routes.rb +6 -0
- data/db/migrate/20251223000000_create_rails_error_dashboard_complete_schema.rb +10 -2
- data/db/migrate/20251225074653_remove_environment_from_error_logs.rb +9 -0
- data/db/migrate/20261010000001_create_missing_translations.rb +50 -0
- data/lib/generators/rails_error_dashboard/install/install_generator.rb +40 -38
- data/lib/generators/rails_error_dashboard/install/templates/initializer.rb +31 -3
- data/lib/generators/rails_error_dashboard/uninstall/uninstall_generator.rb +11 -2
- data/lib/rails_error_dashboard/commands/assign_error.rb +24 -1
- data/lib/rails_error_dashboard/commands/batch_resolve_errors.rb +9 -1
- data/lib/rails_error_dashboard/commands/flush_missing_translations.rb +103 -0
- data/lib/rails_error_dashboard/commands/log_error.rb +6 -3
- data/lib/rails_error_dashboard/commands/resolve_error.rb +2 -15
- data/lib/rails_error_dashboard/commands/update_error_status.rb +7 -0
- data/lib/rails_error_dashboard/configuration.rb +75 -2
- data/lib/rails_error_dashboard/engine.rb +52 -5
- data/lib/rails_error_dashboard/middleware/rate_limiter.rb +21 -43
- data/lib/rails_error_dashboard/plugin.rb +49 -3
- data/lib/rails_error_dashboard/plugin_registry.rb +61 -12
- data/lib/rails_error_dashboard/queries/boot_errors.rb +76 -0
- data/lib/rails_error_dashboard/queries/dashboard_stats.rb +3 -11
- data/lib/rails_error_dashboard/queries/errors_list.rb +11 -17
- data/lib/rails_error_dashboard/queries/health_status.rb +191 -0
- data/lib/rails_error_dashboard/queries/missing_translation_summary.rb +82 -0
- data/lib/rails_error_dashboard/services/active_storage_probe.rb +91 -0
- data/lib/rails_error_dashboard/services/backtrace_parser.rb +13 -7
- data/lib/rails_error_dashboard/services/backtrace_processor.rb +15 -0
- data/lib/rails_error_dashboard/services/baseline_alert_payload_builder.rb +30 -0
- data/lib/rails_error_dashboard/services/crash_capture.rb +85 -2
- data/lib/rails_error_dashboard/services/digest_builder.rb +9 -6
- data/lib/rails_error_dashboard/services/error_notification_dispatcher.rb +6 -0
- data/lib/rails_error_dashboard/services/exception_filter.rb +4 -1
- data/lib/rails_error_dashboard/services/github_link_generator.rb +25 -9
- data/lib/rails_error_dashboard/services/missing_translation_handler.rb +152 -0
- data/lib/rails_error_dashboard/services/missing_translation_tracker.rb +316 -0
- data/lib/rails_error_dashboard/services/resolution_callbacks.rb +44 -0
- data/lib/rails_error_dashboard/services/severity_classifier.rb +52 -0
- data/lib/rails_error_dashboard/services/solid_queue_config_check.rb +47 -0
- data/lib/rails_error_dashboard/services/source_code_reader.rb +23 -3
- data/lib/rails_error_dashboard/services/telegram_delivery.rb +134 -0
- data/lib/rails_error_dashboard/services/telegram_payload_builder.rb +105 -0
- data/lib/rails_error_dashboard/services/webhook_delivery.rb +63 -0
- data/lib/rails_error_dashboard/services/webhook_signer.rb +80 -0
- data/lib/rails_error_dashboard/version.rb +1 -1
- data/lib/rails_error_dashboard.rb +12 -0
- data/lib/tasks/error_dashboard.rake +43 -2
- metadata +21 -2
data/config/locales/es.yml
CHANGED
|
@@ -60,6 +60,8 @@ es:
|
|
|
60
60
|
llm: LLM
|
|
61
61
|
n_plus_one: Consultas N+1
|
|
62
62
|
deprecations: Deprecations
|
|
63
|
+
missing_translations: "Traducciones"
|
|
64
|
+
boot_errors: "Errores de arranque"
|
|
63
65
|
swallowed: Silenciadas
|
|
64
66
|
diagnostic_dumps: Diagnóstico
|
|
65
67
|
storms: Tormentas
|
|
@@ -86,6 +88,10 @@ es:
|
|
|
86
88
|
Defina las variables de entorno <code>ERROR_DASHBOARD_USER</code> y <code>ERROR_DASHBOARD_PASSWORD</code>,
|
|
87
89
|
o configure <code>authenticate_with</code> en su initializer.
|
|
88
90
|
dismiss: Ocultar durante esta sesión
|
|
91
|
+
solid_queue:
|
|
92
|
+
label: "Solid Queue no ejecutará los trabajos de RED."
|
|
93
|
+
body_html: "Los errores capturados en segundo plano y las notificaciones esperan en la cola hasta que se corrija <code>config/queue.yml</code>. Ejecute <code>bin/rails error_dashboard:verify</code> para ver la corrección y luego reinicie."
|
|
94
|
+
guide: "Lo que RED necesita de Solid Queue"
|
|
89
95
|
storm:
|
|
90
96
|
active_title: Tormenta de errores en curso
|
|
91
97
|
recent_title: La protección ante tormentas se activó recientemente
|
|
@@ -854,6 +860,53 @@ es:
|
|
|
854
860
|
error_log
|
|
855
861
|
footer_tip: Las excepciones silenciadas se lanzan y luego se capturan sin
|
|
856
862
|
aviso. Pueden ocultar errores reales.
|
|
863
|
+
missing_translations_page:
|
|
864
|
+
title: "Traducciones faltantes"
|
|
865
|
+
empty_title: "No se registraron traducciones faltantes"
|
|
866
|
+
empty_body: "No se registraron claves de traducción faltantes en los últimos %{days} días."
|
|
867
|
+
how_title: "Cómo se registran las traducciones faltantes:"
|
|
868
|
+
how_enabled_html: "El seguimiento debe estar activado (%{option})"
|
|
869
|
+
how_hooked: "RED envuelve I18n.exception_handler y delega en el handler que su aplicación ya tenía; nada más cambia en su configuración de I18n"
|
|
870
|
+
how_recorded: "Cada búsqueda que llega al handler — tanto I18n.t como el helper de vista t() — se cuenta por locale y clave, junto con el primer punto de llamada visto"
|
|
871
|
+
how_not_seen: "Una búsqueda con :default nunca falla, y una hecha con raise_on_missing_translations lanza una excepción antes de que se ejecute cualquier handler, así que ninguna se cuenta aquí"
|
|
872
|
+
how_buffered: "Los fallos se cuentan en memoria y se escriben al final de la petición o del job, así que espere un breve retraso antes de que aparezcan"
|
|
873
|
+
missing_keys: "Claves faltantes"
|
|
874
|
+
total_misses: "Fallos totales"
|
|
875
|
+
locales_affected: "Locales afectados"
|
|
876
|
+
all_title: "Claves de traducción faltantes"
|
|
877
|
+
column_key: "Clave"
|
|
878
|
+
column_locale: "Locale"
|
|
879
|
+
column_source: "Visto primero en"
|
|
880
|
+
column_misses: "Fallos"
|
|
881
|
+
column_first_seen: "Visto por primera vez"
|
|
882
|
+
overflow_notice: "%{count} fallos no pudieron atribuirse a una clave porque el búfer del rastreador (%{limit} claves por hilo) estaba lleno."
|
|
883
|
+
footer_tip: "Añada la clave al archivo de locale o pase un :default. Las claves que los usuarios realmente encontraron aparecen primero."
|
|
884
|
+
docs: "Guía i18n de Rails"
|
|
885
|
+
|
|
886
|
+
boot_errors_page:
|
|
887
|
+
title: "Errores de arranque"
|
|
888
|
+
empty_title: "No se registraron errores de arranque"
|
|
889
|
+
empty_body: "Ningún proceso murió al arrancar en los últimos %{days} días."
|
|
890
|
+
how_title: "Cómo se capturan los errores de arranque:"
|
|
891
|
+
how_enabled_html: "La captura de fallos debe estar activada (%{option})"
|
|
892
|
+
how_hooked: "RED registra su hook at_exit justo después de sus initializers y antes del eager loading de Rails, así que un fallo durante el arranque se ve aunque la app nunca termine de arrancar"
|
|
893
|
+
how_captured_html: "Un %{zeitwerk} por un archivo que define la constante equivocada, un %{syntax} en un modelo, un initializer que lanza una excepción: cualquier cosa que mate el proceso antes de atender una petición"
|
|
894
|
+
how_imported: "El fallo se escribe en disco, porque aún no hay base de datos, y se importa en el siguiente arranque que tenga éxito"
|
|
895
|
+
how_never: "Un proceso terminado con SIGKILL o por un segfault nunca es visto por at_exit, en ninguna herramienta"
|
|
896
|
+
unresolved: "Sin resolver"
|
|
897
|
+
boot_crashes: "Fallos de arranque"
|
|
898
|
+
failed_boots: "Arranques fallidos"
|
|
899
|
+
all_title: "Fallos de arranque por error"
|
|
900
|
+
column_error: "Error"
|
|
901
|
+
column_file: "Archivo"
|
|
902
|
+
column_constant: "Constante"
|
|
903
|
+
column_boots: "Arranques"
|
|
904
|
+
column_first_seen: "Visto por primera vez"
|
|
905
|
+
column_status: "Estado"
|
|
906
|
+
status_open: "Abierto"
|
|
907
|
+
status_resolved: "Resuelto"
|
|
908
|
+
footer_tip: "Un fallo de arranque significa que el proceso nunca atendió una petición. Corríjalo antes del próximo despliegue; la fila se resuelve como cualquier otro error."
|
|
909
|
+
|
|
857
910
|
rack_attack_page:
|
|
858
911
|
title: Eventos de límite de tasa
|
|
859
912
|
missing_title: Rack Attack no está instalado
|
|
@@ -1125,7 +1178,7 @@ es:
|
|
|
1125
1178
|
unable_to_detect: No se pudo detectar
|
|
1126
1179
|
no_user_model: No se detectó ningún modelo User
|
|
1127
1180
|
unable_to_query_count: No se pudo consultar la cantidad
|
|
1128
|
-
|
|
1181
|
+
retention_enforced_by_job: "Eliminados por RetentionCleanupJob cuando su planificador lo ejecute"
|
|
1129
1182
|
keep_forever: Conservar indefinidamente
|
|
1130
1183
|
no_automatic_deletion: Sin eliminación automática
|
|
1131
1184
|
run_command: 'Ejecutar:'
|
|
@@ -1133,8 +1186,7 @@ es:
|
|
|
1133
1186
|
options:
|
|
1134
1187
|
enable_middleware: Captura las excepciones no gestionadas
|
|
1135
1188
|
enable_error_subscriber: Se suscribe a los eventos de error de Rails
|
|
1136
|
-
retention_days:
|
|
1137
|
-
DAYS=90)'
|
|
1189
|
+
retention_days: "Eliminar errores no vistos durante estos días. Lo aplica RetentionCleanupJob, que la gema no programa por sí misma"
|
|
1138
1190
|
max_backtrace_lines: Profundidad máxima del backtrace
|
|
1139
1191
|
sampling_rate: Porcentaje de errores capturados
|
|
1140
1192
|
application_name: Nombre de esta aplicación (se detecta automáticamente si
|
|
@@ -1153,7 +1205,7 @@ es:
|
|
|
1153
1205
|
si no se define)
|
|
1154
1206
|
async_logging: Procesamiento mediante jobs en segundo plano
|
|
1155
1207
|
async_adapter: Adaptador de la cola de jobs
|
|
1156
|
-
enable_rate_limiting: Limitar las solicitudes
|
|
1208
|
+
enable_rate_limiting: "Limitar las solicitudes del panel por IP y ruta"
|
|
1157
1209
|
rate_limit_per_minute: Solicitudes por minuto y por IP
|
|
1158
1210
|
enable_slack_notifications: Notificaciones en tiempo real
|
|
1159
1211
|
slack_webhook_url: Endpoint del webhook de Slack
|
|
@@ -1162,10 +1214,15 @@ es:
|
|
|
1162
1214
|
notification_email_from: Dirección del remitente
|
|
1163
1215
|
enable_discord_notifications: Notificaciones por webhook de Discord
|
|
1164
1216
|
discord_webhook_url: Endpoint del webhook de Discord
|
|
1217
|
+
enable_telegram_notifications: "Notificaciones de Telegram mediante la Bot API"
|
|
1218
|
+
telegram_bot_token: "Token del bot de @BotFather (configure la variable de entorno TELEGRAM_BOT_TOKEN)"
|
|
1219
|
+
telegram_chat_id: "Chat, grupo o canal donde publica el bot"
|
|
1220
|
+
telegram_api_base_url: "Servidor de la Bot API (cámbielo solo para un proxy o un servidor propio)"
|
|
1165
1221
|
enable_pagerduty_notifications: Escalado de errores críticos
|
|
1166
1222
|
pagerduty_integration_key: Clave de API de PagerDuty
|
|
1167
1223
|
enable_webhook_notifications: Endpoints de webhook genéricos
|
|
1168
1224
|
webhook_urls: Endpoints de webhook personalizados
|
|
1225
|
+
webhook_signing_secret: Firma los webhooks salientes con HMAC-SHA256 (defina la variable de entorno WEBHOOK_SIGNING_SECRET)
|
|
1169
1226
|
enable_scheduled_digests: Correos de resumen diarios/semanales. Programación
|
|
1170
1227
|
mediante SolidQueue, Sidekiq o cron
|
|
1171
1228
|
digest_frequency: Frecuencia de envío de los correos de resumen
|
|
@@ -1185,7 +1242,7 @@ es:
|
|
|
1185
1242
|
source_code_context_lines: Líneas antes y después de la línea de destino
|
|
1186
1243
|
enable_git_blame: Mostrar la información de git blame
|
|
1187
1244
|
source_code_cache_ttl: Duración de la caché del código fuente
|
|
1188
|
-
only_show_app_code_source: Ocultar gems y
|
|
1245
|
+
only_show_app_code_source: "Ocultar el código de gems y vendor en el visor de código"
|
|
1189
1246
|
git_branch_strategy: Estrategia de resolución de la rama
|
|
1190
1247
|
enable_breadcrumbs: Capturar el rastro de actividad de la solicitud
|
|
1191
1248
|
breadcrumb_buffer_size: Número máximo de breadcrumbs por solicitud
|
|
@@ -1220,6 +1277,7 @@ es:
|
|
|
1220
1277
|
enable_crash_capture: Hook at_exit para caídas no gestionadas
|
|
1221
1278
|
enable_coverage_tracking: 'Modo diagnóstico: actívelo desde el panel para
|
|
1222
1279
|
ver las líneas ejecutadas en la vista del código fuente (Ruby 3.2+)'
|
|
1280
|
+
enable_missing_translation_tracking: "Cuenta los fallos de I18n de la app por locale y clave (envuelve I18n.exception_handler)"
|
|
1223
1281
|
enable_rack_attack_tracking: Registrar los eventos throttle/blocklist en su
|
|
1224
1282
|
propia tabla
|
|
1225
1283
|
enable_actioncable_tracking: Seguir los eventos de canal de WebSocket como
|
|
@@ -1277,6 +1335,8 @@ es:
|
|
|
1277
1335
|
breadcrumbs: Breadcrumbs
|
|
1278
1336
|
system_health: Estado del sistema
|
|
1279
1337
|
swallowed_exceptions: Detección de excepciones silenciadas
|
|
1338
|
+
missing_translations: "Seguimiento de traducciones faltantes"
|
|
1339
|
+
boot_errors: "Captura de errores de arranque"
|
|
1280
1340
|
rack_attack: Seguimiento de Rack Attack
|
|
1281
1341
|
actioncable: Seguimiento de ActionCable
|
|
1282
1342
|
activestorage: Seguimiento de ActiveStorage
|
|
@@ -1690,6 +1750,13 @@ es:
|
|
|
1690
1750
|
guide_link: Guía de ActionCable
|
|
1691
1751
|
activestorage:
|
|
1692
1752
|
title: Estado de ActiveStorage
|
|
1753
|
+
probe:
|
|
1754
|
+
title: "Accesibilidad del servicio"
|
|
1755
|
+
reachable: "Accesible"
|
|
1756
|
+
unreachable: "Inaccesible"
|
|
1757
|
+
service: "Servicio: %{name}"
|
|
1758
|
+
latency: "%{ms} ms de ida y vuelta"
|
|
1759
|
+
how: "Una comprobación de existencia de una clave que nunca se almacena, hecha al cargar esta página. GET /health ejecuta la misma comprobación."
|
|
1693
1760
|
empty:
|
|
1694
1761
|
title: No se encontraron eventos de ActiveStorage
|
|
1695
1762
|
message: No se detectaron operaciones del servicio ActiveStorage en los
|
data/config/locales/fr.yml
CHANGED
|
@@ -60,6 +60,8 @@ fr:
|
|
|
60
60
|
llm: LLM
|
|
61
61
|
n_plus_one: Requêtes N+1
|
|
62
62
|
deprecations: Dépréciations
|
|
63
|
+
missing_translations: "Traductions"
|
|
64
|
+
boot_errors: "Erreurs de démarrage"
|
|
63
65
|
swallowed: Avalées
|
|
64
66
|
diagnostic_dumps: Diagnostics
|
|
65
67
|
storms: Tempêtes
|
|
@@ -87,6 +89,10 @@ fr:
|
|
|
87
89
|
et <code>ERROR_DASHBOARD_PASSWORD</code>, ou configurez <code>authenticate_with</code>
|
|
88
90
|
dans votre initializer.
|
|
89
91
|
dismiss: Masquer pour cette session
|
|
92
|
+
solid_queue:
|
|
93
|
+
label: "Solid Queue n'exécutera pas les tâches de RED."
|
|
94
|
+
body_html: "Les erreurs capturées en arrière-plan et les notifications restent en file d'attente tant que <code>config/queue.yml</code> n'est pas corrigé. Lancez <code>bin/rails error_dashboard:verify</code> pour voir la correction, puis redémarrez."
|
|
95
|
+
guide: "Ce dont RED a besoin de Solid Queue"
|
|
90
96
|
storm:
|
|
91
97
|
active_title: Tempête d'erreurs en cours
|
|
92
98
|
recent_title: La protection anti-tempête s'est déclenchée récemment
|
|
@@ -853,6 +859,53 @@ fr:
|
|
|
853
859
|
dans error_log
|
|
854
860
|
footer_tip: Les exceptions avalées sont levées puis rattrapées silencieusement.
|
|
855
861
|
Elles peuvent masquer de vrais bugs.
|
|
862
|
+
missing_translations_page:
|
|
863
|
+
title: "Traductions manquantes"
|
|
864
|
+
empty_title: "Aucune traduction manquante enregistrée"
|
|
865
|
+
empty_body: "Aucune clé de traduction manquante n'a été enregistrée au cours des %{days} derniers jours."
|
|
866
|
+
how_title: "Comment les traductions manquantes sont suivies :"
|
|
867
|
+
how_enabled_html: "Le suivi doit être activé (%{option})"
|
|
868
|
+
how_hooked: "RED enveloppe I18n.exception_handler et délègue au handler que votre application avait déjà ; rien d'autre ne change dans votre configuration I18n"
|
|
869
|
+
how_recorded: "Chaque recherche qui aboutit au handler — via I18n.t comme via le helper de vue t() — est comptée par locale et par clé, avec le premier point d'appel observé"
|
|
870
|
+
how_not_seen: "Une recherche avec :default n'échoue jamais, et une recherche avec raise_on_missing_translations lève une exception avant tout handler ; aucune des deux n'est comptée ici"
|
|
871
|
+
how_buffered: "Les échecs sont comptés en mémoire et écrits à la fin de la requête ou du job ; comptez un court délai avant qu'ils n'apparaissent"
|
|
872
|
+
missing_keys: "Clés manquantes"
|
|
873
|
+
total_misses: "Échecs au total"
|
|
874
|
+
locales_affected: "Locales concernées"
|
|
875
|
+
all_title: "Clés de traduction manquantes"
|
|
876
|
+
column_key: "Clé"
|
|
877
|
+
column_locale: "Locale"
|
|
878
|
+
column_source: "Vu d'abord dans"
|
|
879
|
+
column_misses: "Échecs"
|
|
880
|
+
column_first_seen: "Première occurrence"
|
|
881
|
+
overflow_notice: "%{count} échecs n'ont pas pu être attribués à une clé parce que le tampon du suivi (%{limit} clés par thread) était plein."
|
|
882
|
+
footer_tip: "Ajoutez la clé au fichier de locale, ou passez un :default. Les clés réellement rencontrées par les utilisateurs sont listées en premier."
|
|
883
|
+
docs: "Guide i18n de Rails"
|
|
884
|
+
|
|
885
|
+
boot_errors_page:
|
|
886
|
+
title: "Erreurs de démarrage"
|
|
887
|
+
empty_title: "Aucune erreur de démarrage enregistrée"
|
|
888
|
+
empty_body: "Aucun processus n’est mort au démarrage au cours des %{days} derniers jours."
|
|
889
|
+
how_title: "Comment les erreurs de démarrage sont capturées :"
|
|
890
|
+
how_enabled_html: "La capture des plantages doit être activée (%{option})"
|
|
891
|
+
how_hooked: "RED enregistre son hook at_exit juste après vos initializers et avant l’eager loading de Rails, si bien qu’un plantage au démarrage est vu même si l’application n’a jamais fini de démarrer"
|
|
892
|
+
how_captured_html: "Une %{zeitwerk} due à un fichier qui définit la mauvaise constante, une %{syntax} dans un modèle, un initializer qui lève une exception : tout ce qui tue le processus avant qu’il serve une requête"
|
|
893
|
+
how_imported: "Le plantage est écrit sur disque, faute de base de données à ce stade, puis importé au prochain démarrage réussi"
|
|
894
|
+
how_never: "Un processus tué par SIGKILL ou un segfault n’est jamais vu par at_exit, dans aucun outil"
|
|
895
|
+
unresolved: "Non résolus"
|
|
896
|
+
boot_crashes: "Plantages au démarrage"
|
|
897
|
+
failed_boots: "Démarrages échoués"
|
|
898
|
+
all_title: "Plantages au démarrage par erreur"
|
|
899
|
+
column_error: "Erreur"
|
|
900
|
+
column_file: "Fichier"
|
|
901
|
+
column_constant: "Constante"
|
|
902
|
+
column_boots: "Démarrages"
|
|
903
|
+
column_first_seen: "Première occurrence"
|
|
904
|
+
column_status: "Statut"
|
|
905
|
+
status_open: "Ouvert"
|
|
906
|
+
status_resolved: "Résolu"
|
|
907
|
+
footer_tip: "Un plantage au démarrage signifie que le processus n’a jamais servi de requête. Corrigez-le avant le prochain déploiement ; la ligne se résout comme n’importe quelle autre erreur."
|
|
908
|
+
|
|
856
909
|
rack_attack_page:
|
|
857
910
|
title: Événements de limitation de débit
|
|
858
911
|
missing_title: Rack Attack n'est pas installé
|
|
@@ -1126,7 +1179,7 @@ fr:
|
|
|
1126
1179
|
unable_to_detect: Détection impossible
|
|
1127
1180
|
no_user_model: Aucun modèle User détecté
|
|
1128
1181
|
unable_to_query_count: Impossible d'interroger le nombre
|
|
1129
|
-
|
|
1182
|
+
retention_enforced_by_job: "Supprimés par RetentionCleanupJob dès que votre planificateur l'exécute"
|
|
1130
1183
|
keep_forever: Conserver indéfiniment
|
|
1131
1184
|
no_automatic_deletion: Aucune suppression automatique
|
|
1132
1185
|
run_command: 'Exécuter :'
|
|
@@ -1134,8 +1187,7 @@ fr:
|
|
|
1134
1187
|
options:
|
|
1135
1188
|
enable_middleware: Intercepte les exceptions non gérées
|
|
1136
1189
|
enable_error_subscriber: S'abonne aux événements d'erreur de Rails
|
|
1137
|
-
retention_days:
|
|
1138
|
-
DAYS=90)'
|
|
1190
|
+
retention_days: "Supprimer les erreurs non vues depuis ce nombre de jours. Appliqué par RetentionCleanupJob, que la gem ne planifie pas elle-même"
|
|
1139
1191
|
max_backtrace_lines: Profondeur maximale du backtrace
|
|
1140
1192
|
sampling_rate: Pourcentage d'erreurs capturées
|
|
1141
1193
|
application_name: Nom de cette application (détecté automatiquement si non
|
|
@@ -1154,7 +1206,7 @@ fr:
|
|
|
1154
1206
|
si non défini)
|
|
1155
1207
|
async_logging: Traitement par jobs en arrière-plan
|
|
1156
1208
|
async_adapter: Adaptateur de file d'attente des jobs
|
|
1157
|
-
enable_rate_limiting: Limiter
|
|
1209
|
+
enable_rate_limiting: "Limiter les requêtes du tableau de bord par IP et par chemin"
|
|
1158
1210
|
rate_limit_per_minute: Requêtes par minute et par IP
|
|
1159
1211
|
enable_slack_notifications: Notifications en temps réel
|
|
1160
1212
|
slack_webhook_url: Point de terminaison du webhook Slack
|
|
@@ -1163,10 +1215,15 @@ fr:
|
|
|
1163
1215
|
notification_email_from: Adresse de l'expéditeur
|
|
1164
1216
|
enable_discord_notifications: Notifications par webhook Discord
|
|
1165
1217
|
discord_webhook_url: Point de terminaison du webhook Discord
|
|
1218
|
+
enable_telegram_notifications: "Notifications Telegram via l'API Bot"
|
|
1219
|
+
telegram_bot_token: "Jeton du bot fourni par @BotFather (définir la variable d'environnement TELEGRAM_BOT_TOKEN)"
|
|
1220
|
+
telegram_chat_id: "Discussion, groupe ou canal où le bot publie"
|
|
1221
|
+
telegram_api_base_url: "Serveur de l'API Bot (à modifier seulement pour un proxy ou un serveur auto-hébergé)"
|
|
1166
1222
|
enable_pagerduty_notifications: Escalade des erreurs critiques
|
|
1167
1223
|
pagerduty_integration_key: Clé API PagerDuty
|
|
1168
1224
|
enable_webhook_notifications: Points de terminaison webhook génériques
|
|
1169
1225
|
webhook_urls: Points de terminaison webhook personnalisés
|
|
1226
|
+
webhook_signing_secret: Signe les webhooks sortants en HMAC-SHA256 (définir la variable d’environnement WEBHOOK_SIGNING_SECRET)
|
|
1170
1227
|
enable_scheduled_digests: E-mails de résumé quotidiens/hebdomadaires. Planification
|
|
1171
1228
|
via SolidQueue, Sidekiq ou cron
|
|
1172
1229
|
digest_frequency: Fréquence d'envoi des e-mails de résumé
|
|
@@ -1186,7 +1243,7 @@ fr:
|
|
|
1186
1243
|
source_code_context_lines: Lignes avant et après la ligne ciblée
|
|
1187
1244
|
enable_git_blame: Afficher les informations git blame
|
|
1188
1245
|
source_code_cache_ttl: Durée de mise en cache du code source
|
|
1189
|
-
only_show_app_code_source: Masquer
|
|
1246
|
+
only_show_app_code_source: "Masquer le code des gems et de vendor dans le visualiseur de code"
|
|
1190
1247
|
git_branch_strategy: Stratégie de résolution de la branche
|
|
1191
1248
|
enable_breadcrumbs: Capturer le fil d'activité de la requête
|
|
1192
1249
|
breadcrumb_buffer_size: Nombre maximal de breadcrumbs par requête
|
|
@@ -1220,6 +1277,7 @@ fr:
|
|
|
1220
1277
|
enable_crash_capture: Hook at_exit pour les plantages non gérés
|
|
1221
1278
|
enable_coverage_tracking: Mode diagnostic — à activer depuis le tableau de
|
|
1222
1279
|
bord pour voir les lignes exécutées dans la vue du code source (Ruby 3.2+)
|
|
1280
|
+
enable_missing_translation_tracking: "Compte les échecs I18n de l'app par locale et par clé (enveloppe I18n.exception_handler)"
|
|
1223
1281
|
enable_rack_attack_tracking: Enregistrer les événements throttle/blocklist
|
|
1224
1282
|
dans leur propre table
|
|
1225
1283
|
enable_actioncable_tracking: Suivre les événements des canaux WebSocket sous
|
|
@@ -1277,6 +1335,8 @@ fr:
|
|
|
1277
1335
|
breadcrumbs: Breadcrumbs
|
|
1278
1336
|
system_health: État du système
|
|
1279
1337
|
swallowed_exceptions: Détection des exceptions avalées
|
|
1338
|
+
missing_translations: "Suivi des traductions manquantes"
|
|
1339
|
+
boot_errors: "Capture des erreurs de démarrage"
|
|
1280
1340
|
rack_attack: Suivi de Rack Attack
|
|
1281
1341
|
actioncable: Suivi d'ActionCable
|
|
1282
1342
|
activestorage: Suivi d'ActiveStorage
|
|
@@ -1693,6 +1753,13 @@ fr:
|
|
|
1693
1753
|
guide_link: Guide d'ActionCable
|
|
1694
1754
|
activestorage:
|
|
1695
1755
|
title: État d'ActiveStorage
|
|
1756
|
+
probe:
|
|
1757
|
+
title: "Joignabilité du service"
|
|
1758
|
+
reachable: "Joignable"
|
|
1759
|
+
unreachable: "Injoignable"
|
|
1760
|
+
service: "Service : %{name}"
|
|
1761
|
+
latency: "%{ms} ms aller-retour"
|
|
1762
|
+
how: "Une vérification d’existence d’une clé jamais stockée, faite au chargement de cette page. GET /health exécute la même sonde."
|
|
1696
1763
|
empty:
|
|
1697
1764
|
title: Aucun événement ActiveStorage trouvé
|
|
1698
1765
|
message: Aucune opération de service ActiveStorage n'a été détectée dans
|
data/config/locales/it.yml
CHANGED
|
@@ -60,6 +60,8 @@ it:
|
|
|
60
60
|
llm: LLM
|
|
61
61
|
n_plus_one: Query N+1
|
|
62
62
|
deprecations: Deprecations
|
|
63
|
+
missing_translations: "Traduzioni"
|
|
64
|
+
boot_errors: "Errori di avvio"
|
|
63
65
|
swallowed: Soppresse
|
|
64
66
|
diagnostic_dumps: Diagnostica
|
|
65
67
|
storms: Tempeste
|
|
@@ -86,6 +88,10 @@ it:
|
|
|
86
88
|
Imposta le variabili d'ambiente <code>ERROR_DASHBOARD_USER</code> e <code>ERROR_DASHBOARD_PASSWORD</code>
|
|
87
89
|
oppure configura <code>authenticate_with</code> nel tuo inizializzatore.
|
|
88
90
|
dismiss: Nascondi per questa sessione
|
|
91
|
+
solid_queue:
|
|
92
|
+
label: "Solid Queue non eseguirà i job di RED."
|
|
93
|
+
body_html: "Gli errori acquisiti in background e le notifiche restano in coda finché <code>config/queue.yml</code> non viene corretto. Esegui <code>bin/rails error_dashboard:verify</code> per vedere la correzione, poi riavvia."
|
|
94
|
+
guide: "Cosa serve a RED da Solid Queue"
|
|
89
95
|
storm:
|
|
90
96
|
active_title: Tempesta di errori in corso
|
|
91
97
|
recent_title: Protezione dalle tempeste attivata di recente
|
|
@@ -846,6 +852,53 @@ it:
|
|
|
846
852
|
view_unrescued: Vedi gli errori %{exception} non intercettati finiti in error_log
|
|
847
853
|
footer_tip: Le eccezioni soppresse vengono sollevate e poi intercettate in
|
|
848
854
|
silenzio. Possono nascondere bug reali.
|
|
855
|
+
missing_translations_page:
|
|
856
|
+
title: "Traduzioni mancanti"
|
|
857
|
+
empty_title: "Nessuna traduzione mancante registrata"
|
|
858
|
+
empty_body: "Nessuna chiave di traduzione mancante è stata registrata negli ultimi %{days} giorni."
|
|
859
|
+
how_title: "Come vengono tracciate le traduzioni mancanti:"
|
|
860
|
+
how_enabled_html: "Il tracciamento deve essere attivo (%{option})"
|
|
861
|
+
how_hooked: "RED avvolge I18n.exception_handler e delega all'handler che la tua app aveva già; nient'altro cambia nella tua configurazione I18n"
|
|
862
|
+
how_recorded: "Ogni ricerca che arriva all'handler — sia da I18n.t sia dall'helper di vista t() — viene contata per locale e chiave, insieme al primo punto di chiamata osservato"
|
|
863
|
+
how_not_seen: "Una ricerca con :default non fallisce mai, e una fatta con raise_on_missing_translations solleva un'eccezione prima che qualsiasi handler venga eseguito, quindi nessuna delle due è contata qui"
|
|
864
|
+
how_buffered: "I fallimenti vengono contati in memoria e scritti alla fine della richiesta o del job, quindi attendi un breve ritardo prima che compaiano"
|
|
865
|
+
missing_keys: "Chiavi mancanti"
|
|
866
|
+
total_misses: "Fallimenti totali"
|
|
867
|
+
locales_affected: "Locale interessati"
|
|
868
|
+
all_title: "Chiavi di traduzione mancanti"
|
|
869
|
+
column_key: "Chiave"
|
|
870
|
+
column_locale: "Locale"
|
|
871
|
+
column_source: "Visto prima in"
|
|
872
|
+
column_misses: "Fallimenti"
|
|
873
|
+
column_first_seen: "Prima occorrenza"
|
|
874
|
+
overflow_notice: "%{count} fallimenti non sono stati attribuiti a una chiave perché il buffer del tracker (%{limit} chiavi per thread) era pieno."
|
|
875
|
+
footer_tip: "Aggiungi la chiave al file di locale, oppure passa un :default. Le chiavi effettivamente incontrate dagli utenti sono elencate per prime."
|
|
876
|
+
docs: "Guida i18n di Rails"
|
|
877
|
+
|
|
878
|
+
boot_errors_page:
|
|
879
|
+
title: "Errori di avvio"
|
|
880
|
+
empty_title: "Nessun errore di avvio registrato"
|
|
881
|
+
empty_body: "Nessun processo è morto durante l’avvio negli ultimi %{days} giorni."
|
|
882
|
+
how_title: "Come vengono catturati gli errori di avvio:"
|
|
883
|
+
how_enabled_html: "La cattura dei crash deve essere attiva (%{option})"
|
|
884
|
+
how_hooked: "RED registra il suo hook at_exit subito dopo i tuoi initializer e prima dell’eager loading di Rails, così un crash durante l’avvio viene visto anche se l’app non ha mai finito di partire"
|
|
885
|
+
how_captured_html: "Un %{zeitwerk} da un file che definisce la costante sbagliata, un %{syntax} in un modello, un initializer che solleva un’eccezione: qualsiasi cosa uccida il processo prima che serva una richiesta"
|
|
886
|
+
how_imported: "Il crash viene scritto su disco, perché non c’è ancora un database, e importato al successivo avvio riuscito"
|
|
887
|
+
how_never: "Un processo terminato da SIGKILL o da un segfault non viene mai visto da at_exit, in nessuno strumento"
|
|
888
|
+
unresolved: "Non risolti"
|
|
889
|
+
boot_crashes: "Crash all’avvio"
|
|
890
|
+
failed_boots: "Avvii falliti"
|
|
891
|
+
all_title: "Crash all’avvio per errore"
|
|
892
|
+
column_error: "Errore"
|
|
893
|
+
column_file: "File"
|
|
894
|
+
column_constant: "Costante"
|
|
895
|
+
column_boots: "Avvii"
|
|
896
|
+
column_first_seen: "Prima occorrenza"
|
|
897
|
+
column_status: "Stato"
|
|
898
|
+
status_open: "Aperto"
|
|
899
|
+
status_resolved: "Risolto"
|
|
900
|
+
footer_tip: "Un crash all’avvio significa che il processo non ha mai servito una richiesta. Correggilo prima del prossimo deploy; la riga si risolve come qualsiasi altro errore."
|
|
901
|
+
|
|
849
902
|
rack_attack_page:
|
|
850
903
|
title: Eventi di limite di richieste
|
|
851
904
|
missing_title: Rack Attack non è installato
|
|
@@ -1116,7 +1169,7 @@ it:
|
|
|
1116
1169
|
unable_to_detect: Impossibile rilevare
|
|
1117
1170
|
no_user_model: Nessun modello User rilevato
|
|
1118
1171
|
unable_to_query_count: Impossibile ottenere il conteggio
|
|
1119
|
-
|
|
1172
|
+
retention_enforced_by_job: "Eliminati da RetentionCleanupJob quando lo scheduler lo esegue"
|
|
1120
1173
|
keep_forever: Conserva per sempre
|
|
1121
1174
|
no_automatic_deletion: Nessuna eliminazione automatica
|
|
1122
1175
|
run_command: 'Esegui:'
|
|
@@ -1124,8 +1177,7 @@ it:
|
|
|
1124
1177
|
options:
|
|
1125
1178
|
enable_middleware: Intercetta le eccezioni non gestite
|
|
1126
1179
|
enable_error_subscriber: Si iscrive agli eventi di errore di Rails
|
|
1127
|
-
retention_days:
|
|
1128
|
-
DAYS=90)'
|
|
1180
|
+
retention_days: "Elimina gli errori non visti da questo numero di giorni. Applicato da RetentionCleanupJob, che la gem non pianifica da sola"
|
|
1129
1181
|
max_backtrace_lines: Limite di profondità dello stack trace
|
|
1130
1182
|
sampling_rate: Percentuale di errori acquisiti
|
|
1131
1183
|
application_name: Nome di questa applicazione (rilevato automaticamente se
|
|
@@ -1144,7 +1196,7 @@ it:
|
|
|
1144
1196
|
se non impostato)
|
|
1145
1197
|
async_logging: Elaborazione in job in background
|
|
1146
1198
|
async_adapter: Adapter della coda dei job
|
|
1147
|
-
enable_rate_limiting: Limita le richieste
|
|
1199
|
+
enable_rate_limiting: "Limita le richieste della dashboard per IP e percorso"
|
|
1148
1200
|
rate_limit_per_minute: Richieste al minuto per IP
|
|
1149
1201
|
enable_slack_notifications: Notifiche in tempo reale
|
|
1150
1202
|
slack_webhook_url: Endpoint del webhook di Slack
|
|
@@ -1153,10 +1205,15 @@ it:
|
|
|
1153
1205
|
notification_email_from: Indirizzo del mittente
|
|
1154
1206
|
enable_discord_notifications: Notifiche tramite webhook di Discord
|
|
1155
1207
|
discord_webhook_url: Endpoint del webhook di Discord
|
|
1208
|
+
enable_telegram_notifications: "Notifiche Telegram tramite la Bot API"
|
|
1209
|
+
telegram_bot_token: "Token del bot da @BotFather (impostare la variabile d'ambiente TELEGRAM_BOT_TOKEN)"
|
|
1210
|
+
telegram_chat_id: "Chat, gruppo o canale in cui scrive il bot"
|
|
1211
|
+
telegram_api_base_url: "Server della Bot API (da cambiare solo per un proxy o un server self-hosted)"
|
|
1156
1212
|
enable_pagerduty_notifications: Escalation degli errori critici
|
|
1157
1213
|
pagerduty_integration_key: Chiave API di PagerDuty
|
|
1158
1214
|
enable_webhook_notifications: Endpoint webhook generici
|
|
1159
1215
|
webhook_urls: Endpoint webhook personalizzati
|
|
1216
|
+
webhook_signing_secret: Firma i webhook in uscita con HMAC-SHA256 (imposta la variabile d’ambiente WEBHOOK_SIGNING_SECRET)
|
|
1160
1217
|
enable_scheduled_digests: E-mail di riepilogo giornaliere/settimanali. Pianifica
|
|
1161
1218
|
tramite SolidQueue, Sidekiq o cron
|
|
1162
1219
|
digest_frequency: Con quale frequenza inviare le e-mail di riepilogo
|
|
@@ -1177,7 +1234,7 @@ it:
|
|
|
1177
1234
|
source_code_context_lines: Righe prima e dopo quella di riferimento
|
|
1178
1235
|
enable_git_blame: Mostra le informazioni di git blame
|
|
1179
1236
|
source_code_cache_ttl: Durata della cache del codice sorgente
|
|
1180
|
-
only_show_app_code_source: Nascondi
|
|
1237
|
+
only_show_app_code_source: "Nascondi il codice di gem e vendor nel visualizzatore del codice"
|
|
1181
1238
|
git_branch_strategy: Strategia di risoluzione del branch
|
|
1182
1239
|
enable_breadcrumbs: Acquisisci la traccia delle attività della richiesta
|
|
1183
1240
|
breadcrumb_buffer_size: Numero massimo di breadcrumbs per richiesta
|
|
@@ -1210,6 +1267,7 @@ it:
|
|
|
1210
1267
|
enable_crash_capture: Hook at_exit per i crash non gestiti
|
|
1211
1268
|
enable_coverage_tracking: Modalità diagnostica — abilitala dal pannello per
|
|
1212
1269
|
vedere le righe eseguite nella vista del codice (Ruby 3.2+)
|
|
1270
|
+
enable_missing_translation_tracking: "Conta i fallimenti I18n dell'app per locale e chiave (avvolge I18n.exception_handler)"
|
|
1213
1271
|
enable_rack_attack_tracking: Registra gli eventi throttle/blocklist in una
|
|
1214
1272
|
tabella dedicata
|
|
1215
1273
|
enable_actioncable_tracking: Traccia gli eventi dei canali WebSocket come
|
|
@@ -1267,6 +1325,8 @@ it:
|
|
|
1267
1325
|
breadcrumbs: Breadcrumbs
|
|
1268
1326
|
system_health: Stato del sistema
|
|
1269
1327
|
swallowed_exceptions: Rilevamento delle eccezioni soppresse
|
|
1328
|
+
missing_translations: "Tracciamento delle traduzioni mancanti"
|
|
1329
|
+
boot_errors: "Cattura degli errori di avvio"
|
|
1270
1330
|
rack_attack: Tracciamento di Rack Attack
|
|
1271
1331
|
actioncable: Tracciamento di ActionCable
|
|
1272
1332
|
activestorage: Tracciamento di ActiveStorage
|
|
@@ -1678,6 +1738,13 @@ it:
|
|
|
1678
1738
|
guide_link: Guida ad ActionCable
|
|
1679
1739
|
activestorage:
|
|
1680
1740
|
title: Stato di ActiveStorage
|
|
1741
|
+
probe:
|
|
1742
|
+
title: "Raggiungibilità del servizio"
|
|
1743
|
+
reachable: "Raggiungibile"
|
|
1744
|
+
unreachable: "Non raggiungibile"
|
|
1745
|
+
service: "Servizio: %{name}"
|
|
1746
|
+
latency: "%{ms} ms andata e ritorno"
|
|
1747
|
+
how: "Un controllo di esistenza su una chiave mai memorizzata, eseguito al caricamento di questa pagina. GET /health esegue la stessa verifica."
|
|
1681
1748
|
empty:
|
|
1682
1749
|
title: Nessun evento ActiveStorage trovato
|
|
1683
1750
|
message: Negli ultimi %{days} giorni non sono state rilevate operazioni
|
data/config/locales/ja.yml
CHANGED
|
@@ -60,6 +60,8 @@ ja:
|
|
|
60
60
|
llm: LLM
|
|
61
61
|
n_plus_one: N+1 クエリ
|
|
62
62
|
deprecations: 非推奨
|
|
63
|
+
missing_translations: "翻訳"
|
|
64
|
+
boot_errors: "起動エラー"
|
|
63
65
|
swallowed: 握りつぶし
|
|
64
66
|
diagnostic_dumps: 診断
|
|
65
67
|
storms: ストーム
|
|
@@ -86,6 +88,10 @@ ja:
|
|
|
86
88
|
と <code>ERROR_DASHBOARD_PASSWORD</code> を設定するか、イニシャライザで <code>authenticate_with</code>
|
|
87
89
|
を設定してください。
|
|
88
90
|
dismiss: このセッションでは表示しない
|
|
91
|
+
solid_queue:
|
|
92
|
+
label: "Solid Queue は RED のジョブを実行しません。"
|
|
93
|
+
body_html: "<code>config/queue.yml</code> を修正するまで、バックグラウンドで記録されたエラーと通知はキューで待機します。<code>bin/rails error_dashboard:verify</code> を実行して修正方法を確認し、再起動してください。"
|
|
94
|
+
guide: "RED が Solid Queue に必要とするもの"
|
|
89
95
|
storm:
|
|
90
96
|
active_title: エラーストームが発生中です
|
|
91
97
|
recent_title: ストーム保護が最近作動しました
|
|
@@ -752,6 +758,53 @@ ja:
|
|
|
752
758
|
column_ratio: 比率
|
|
753
759
|
view_unrescued: error_log に記録された未 rescue の%{exception}エラーを表示
|
|
754
760
|
footer_tip: 握りつぶされた例外とは、raise された後に暗黙的に rescue された例外です。実際の不具合を隠している可能性があります。
|
|
761
|
+
missing_translations_page:
|
|
762
|
+
title: "翻訳の欠落"
|
|
763
|
+
empty_title: "欠落した翻訳は記録されていません"
|
|
764
|
+
empty_body: "過去 %{days} 日間に欠落した翻訳キーは記録されていません。"
|
|
765
|
+
how_title: "翻訳の欠落を追跡する仕組み:"
|
|
766
|
+
how_enabled_html: "追跡を有効にする必要があります(%{option})"
|
|
767
|
+
how_hooked: "RED は I18n.exception_handler をラップし、アプリが元々使っていたハンドラーに処理を委譲します。それ以外の I18n 設定は変更しません"
|
|
768
|
+
how_recorded: "ハンドラーに到達した検索は、I18n.t でもビューヘルパー t() でも、ロケールとキーごとに、最初に観測された呼び出し元とともに数えられます"
|
|
769
|
+
how_not_seen: ":default を指定した検索は欠落になりません。raise_on_missing_translations を使った検索はハンドラーが動く前に例外を投げるため、どちらもここでは数えられません"
|
|
770
|
+
how_buffered: "欠落はメモリ上で数えられ、リクエストまたはジョブの終了時に書き込まれるため、表示されるまで少し時間がかかります"
|
|
771
|
+
missing_keys: "欠落キー"
|
|
772
|
+
total_misses: "欠落の合計"
|
|
773
|
+
locales_affected: "影響を受けたロケール"
|
|
774
|
+
all_title: "欠落している翻訳キー"
|
|
775
|
+
column_key: "キー"
|
|
776
|
+
column_locale: "ロケール"
|
|
777
|
+
column_source: "最初の検出箇所"
|
|
778
|
+
column_misses: "欠落数"
|
|
779
|
+
column_first_seen: "初回検出"
|
|
780
|
+
overflow_notice: "トラッカーのバッファ(スレッドあたり %{limit} キー)が満杯だったため、%{count} 件の欠落をキーに割り当てられませんでした。"
|
|
781
|
+
footer_tip: "ロケールファイルにキーを追加するか、:default を渡してください。実際にユーザーが遭遇したキーが先に表示されます。"
|
|
782
|
+
docs: "Rails i18n ガイド"
|
|
783
|
+
|
|
784
|
+
boot_errors_page:
|
|
785
|
+
title: "起動エラー"
|
|
786
|
+
empty_title: "起動エラーは記録されていません"
|
|
787
|
+
empty_body: "過去 %{days} 日間に起動中に終了したプロセスはありません。"
|
|
788
|
+
how_title: "起動エラーを捕捉する仕組み:"
|
|
789
|
+
how_enabled_html: "クラッシュ捕捉を有効にする必要があります(%{option})"
|
|
790
|
+
how_hooked: "RED は initializer の直後、Rails の eager load の前に at_exit フックを登録するため、アプリが起動し切る前のクラッシュも捕捉されます"
|
|
791
|
+
how_captured_html: "誤った定数を定義したファイルによる %{zeitwerk}、モデル内の %{syntax}、例外を投げた initializer など、リクエストを処理する前にプロセスを終了させるもの"
|
|
792
|
+
how_imported: "この時点ではデータベースがないためクラッシュはディスクに書き込まれ、次に起動が成功したときに取り込まれます"
|
|
793
|
+
how_never: "SIGKILL やセグメンテーション違反で終了したプロセスは、どのツールでも at_exit では捕捉できません"
|
|
794
|
+
unresolved: "未解決"
|
|
795
|
+
boot_crashes: "起動クラッシュ"
|
|
796
|
+
failed_boots: "失敗した起動"
|
|
797
|
+
all_title: "エラー別の起動クラッシュ"
|
|
798
|
+
column_error: "エラー"
|
|
799
|
+
column_file: "ファイル"
|
|
800
|
+
column_constant: "定数"
|
|
801
|
+
column_boots: "起動回数"
|
|
802
|
+
column_first_seen: "初回検出"
|
|
803
|
+
column_status: "状態"
|
|
804
|
+
status_open: "未対応"
|
|
805
|
+
status_resolved: "解決済み"
|
|
806
|
+
footer_tip: "起動クラッシュはプロセスが一度もリクエストを処理しなかったことを意味します。次のデプロイ前に修正してください。行は他のエラーと同様に解決できます。"
|
|
807
|
+
|
|
755
808
|
rack_attack_page:
|
|
756
809
|
title: レート制限イベント
|
|
757
810
|
missing_title: Rack Attack がインストールされていません
|
|
@@ -968,7 +1021,7 @@ ja:
|
|
|
968
1021
|
unable_to_detect: 検出できません
|
|
969
1022
|
no_user_model: User モデルが見つかりません
|
|
970
1023
|
unable_to_query_count: 件数を取得できません
|
|
971
|
-
|
|
1024
|
+
retention_enforced_by_job: "スケジューラーが RetentionCleanupJob を実行すると削除されます"
|
|
972
1025
|
keep_forever: 無期限に保持
|
|
973
1026
|
no_automatic_deletion: 自動削除は行いません
|
|
974
1027
|
run_command: '実行:'
|
|
@@ -976,7 +1029,7 @@ ja:
|
|
|
976
1029
|
options:
|
|
977
1030
|
enable_middleware: 未処理の例外を捕捉します
|
|
978
1031
|
enable_error_subscriber: Rails のエラーイベントを購読します
|
|
979
|
-
retention_days:
|
|
1032
|
+
retention_days: "この日数の間発生しなかったエラーを削除します。RetentionCleanupJob が実行しますが、gem 自体はスケジュールしません"
|
|
980
1033
|
max_backtrace_lines: スタックトレースの深さの上限
|
|
981
1034
|
sampling_rate: エラーを記録する割合
|
|
982
1035
|
application_name: このアプリケーションの名前 (未設定の場合は自動検出)
|
|
@@ -990,7 +1043,7 @@ ja:
|
|
|
990
1043
|
total_users_for_impact: 影響率の算出に使用 (未設定の場合は自動検出)
|
|
991
1044
|
async_logging: バックグラウンドジョブで処理します
|
|
992
1045
|
async_adapter: ジョブキューのアダプタ
|
|
993
|
-
enable_rate_limiting:
|
|
1046
|
+
enable_rate_limiting: "ダッシュボードへのリクエストを IP とパスごとに制限します"
|
|
994
1047
|
rate_limit_per_minute: IP ごとの1分あたりのリクエスト数
|
|
995
1048
|
enable_slack_notifications: リアルタイム通知
|
|
996
1049
|
slack_webhook_url: Slack の webhook エンドポイント
|
|
@@ -999,10 +1052,15 @@ ja:
|
|
|
999
1052
|
notification_email_from: 送信元アドレス
|
|
1000
1053
|
enable_discord_notifications: Discord の webhook 通知
|
|
1001
1054
|
discord_webhook_url: Discord の webhook エンドポイント
|
|
1055
|
+
enable_telegram_notifications: "Telegram Bot API 通知"
|
|
1056
|
+
telegram_bot_token: "@BotFather のボットトークン(環境変数 TELEGRAM_BOT_TOKEN を設定)"
|
|
1057
|
+
telegram_chat_id: "ボットが投稿するチャット・グループ・チャンネル"
|
|
1058
|
+
telegram_api_base_url: "Bot API サーバー(プロキシやセルフホストの場合のみ変更)"
|
|
1002
1059
|
enable_pagerduty_notifications: 重大なエラーのエスカレーション
|
|
1003
1060
|
pagerduty_integration_key: PagerDuty の API キー
|
|
1004
1061
|
enable_webhook_notifications: 汎用の webhook エンドポイント
|
|
1005
1062
|
webhook_urls: カスタム webhook エンドポイント
|
|
1063
|
+
webhook_signing_secret: 送信 webhook に HMAC-SHA256 署名を付けます(環境変数 WEBHOOK_SIGNING_SECRET を設定)
|
|
1006
1064
|
enable_scheduled_digests: 日次/週次のサマリーメール。SolidQueue、Sidekiq、cron でスケジュールします
|
|
1007
1065
|
digest_frequency: ダイジェストメールの送信頻度
|
|
1008
1066
|
digest_recipients: メールアドレス (未設定の場合は通知の宛先を使用)
|
|
@@ -1020,7 +1078,7 @@ ja:
|
|
|
1020
1078
|
source_code_context_lines: 対象行の前後に表示する行数
|
|
1021
1079
|
enable_git_blame: git blame の情報を表示します
|
|
1022
1080
|
source_code_cache_ttl: ソースコードのキャッシュ保持時間
|
|
1023
|
-
only_show_app_code_source:
|
|
1081
|
+
only_show_app_code_source: "ソースビューアーで gem と vendor のコードを非表示にします"
|
|
1024
1082
|
git_branch_strategy: ブランチの解決方法
|
|
1025
1083
|
enable_breadcrumbs: リクエストの操作履歴を記録します
|
|
1026
1084
|
breadcrumb_buffer_size: リクエストあたりの breadcrumb の最大数
|
|
@@ -1045,6 +1103,7 @@ ja:
|
|
|
1045
1103
|
enable_crash_capture: 未処理のクラッシュを捕捉する at_exit フック
|
|
1046
1104
|
enable_coverage_tracking: 診断モード — ダッシュボードから有効にすると、ソース表示で実行された行を確認できます (Ruby
|
|
1047
1105
|
3.2 以上)
|
|
1106
|
+
enable_missing_translation_tracking: "アプリの I18n 欠落をロケールとキーごとに数えます(I18n.exception_handler をラップ)"
|
|
1048
1107
|
enable_rack_attack_tracking: throttle/blocklist イベントを専用テーブルに記録します
|
|
1049
1108
|
enable_actioncable_tracking: WebSocket のチャネルイベントを breadcrumb として記録します
|
|
1050
1109
|
enable_activestorage_tracking: アップロード/ダウンロード/削除を breadcrumb として記録します
|
|
@@ -1090,6 +1149,8 @@ ja:
|
|
|
1090
1149
|
breadcrumbs: Breadcrumb
|
|
1091
1150
|
system_health: システムヘルス
|
|
1092
1151
|
swallowed_exceptions: 握りつぶされた例外の検出
|
|
1152
|
+
missing_translations: "翻訳欠落の追跡"
|
|
1153
|
+
boot_errors: "起動エラーの捕捉"
|
|
1093
1154
|
rack_attack: Rack Attack トラッキング
|
|
1094
1155
|
actioncable: ActionCable トラッキング
|
|
1095
1156
|
activestorage: ActiveStorage トラッキング
|
|
@@ -1458,6 +1519,13 @@ ja:
|
|
|
1458
1519
|
guide_link: ActionCable ガイド
|
|
1459
1520
|
activestorage:
|
|
1460
1521
|
title: ActiveStorage の状態
|
|
1522
|
+
probe:
|
|
1523
|
+
title: "サービスの到達性"
|
|
1524
|
+
reachable: "到達可能"
|
|
1525
|
+
unreachable: "到達不能"
|
|
1526
|
+
service: "サービス: %{name}"
|
|
1527
|
+
latency: "往復 %{ms} ms"
|
|
1528
|
+
how: "このページの読み込み時に、保存されることのないキーの存在確認を 1 回行います。GET /health も同じ検査を実行します。"
|
|
1461
1529
|
empty:
|
|
1462
1530
|
title: ActiveStorage のイベントが見つかりません
|
|
1463
1531
|
message: 過去%{days}日間、エラーの breadcrumb から ActiveStorage のサービス操作は検出されませんでした。
|