rails_error_dashboard 0.14.4 → 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 +12 -5
- 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 +2 -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 +11 -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 +68 -5
- data/config/locales/en.yml +78 -4
- data/config/locales/es.yml +68 -5
- data/config/locales/fr.yml +68 -5
- data/config/locales/it.yml +68 -5
- data/config/locales/ja.yml +68 -4
- data/config/locales/pl.yml +68 -5
- data/config/locales/pt-BR.yml +68 -5
- data/config/locales/ru.yml +68 -5
- data/config/locales/uk.yml +68 -5
- data/config/locales/zh-CN.yml +68 -4
- data/config/routes.rb +6 -0
- data/db/migrate/20251223000000_create_rails_error_dashboard_complete_schema.rb +10 -2
- data/db/migrate/20261010000001_create_missing_translations.rb +50 -0
- data/lib/generators/rails_error_dashboard/install/install_generator.rb +9 -4
- data/lib/generators/rails_error_dashboard/install/templates/initializer.rb +27 -0
- 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 +1 -1
- 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 +42 -1
- data/lib/rails_error_dashboard/engine.rb +42 -1
- data/lib/rails_error_dashboard/middleware/rate_limiter.rb +7 -1
- data/lib/rails_error_dashboard/plugin.rb +19 -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 +8 -16
- 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/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/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
- metadata +21 -2
data/config/locales/de.yml
CHANGED
|
@@ -60,6 +60,8 @@ de:
|
|
|
60
60
|
llm: LLM
|
|
61
61
|
n_plus_one: N+1-Abfragen
|
|
62
62
|
deprecations: Deprecations
|
|
63
|
+
missing_translations: "Übersetzungen"
|
|
64
|
+
boot_errors: "Startfehler"
|
|
63
65
|
swallowed: Verschluckt
|
|
64
66
|
diagnostic_dumps: Diagnose
|
|
65
67
|
storms: Fehlerstürme
|
|
@@ -828,6 +830,53 @@ de:
|
|
|
828
830
|
gelangt sind
|
|
829
831
|
footer_tip: Verschluckte Exceptions werden ausgelöst und dann still abgefangen.
|
|
830
832
|
Sie können echte Fehler verbergen.
|
|
833
|
+
missing_translations_page:
|
|
834
|
+
title: "Fehlende Übersetzungen"
|
|
835
|
+
empty_title: "Keine fehlenden Übersetzungen erfasst"
|
|
836
|
+
empty_body: "In den letzten %{days} Tagen wurden keine fehlenden Übersetzungsschlüssel erfasst."
|
|
837
|
+
how_title: "So werden fehlende Übersetzungen erfasst:"
|
|
838
|
+
how_enabled_html: "Die Erfassung muss aktiviert sein (%{option})"
|
|
839
|
+
how_hooked: "RED umhüllt I18n.exception_handler und reicht an den Handler weiter, den Ihre App bereits hatte; sonst ändert sich nichts an Ihrer I18n-Konfiguration"
|
|
840
|
+
how_recorded: "Jede Abfrage, die beim Handler landet – über I18n.t ebenso wie über den View-Helper t() – wird nach Locale und Schlüssel gezählt, zusammen mit der zuerst gesehenen Aufrufstelle"
|
|
841
|
+
how_not_seen: "Eine Abfrage mit :default schlägt nie fehl, und eine mit raise_on_missing_translations löst eine Ausnahme aus, bevor ein Handler läuft; beide werden hier nicht gezählt"
|
|
842
|
+
how_buffered: "Fehlschläge werden im Speicher gezählt und am Ende der Anfrage oder des Jobs geschrieben; rechnen Sie mit einer kurzen Verzögerung, bis sie erscheinen"
|
|
843
|
+
missing_keys: "Fehlende Schlüssel"
|
|
844
|
+
total_misses: "Fehlschläge gesamt"
|
|
845
|
+
locales_affected: "Betroffene Locales"
|
|
846
|
+
all_title: "Fehlende Übersetzungsschlüssel"
|
|
847
|
+
column_key: "Schlüssel"
|
|
848
|
+
column_locale: "Locale"
|
|
849
|
+
column_source: "Zuerst gesehen in"
|
|
850
|
+
column_misses: "Fehlschläge"
|
|
851
|
+
column_first_seen: "Zuerst gesehen"
|
|
852
|
+
overflow_notice: "%{count} Fehlschläge konnten keinem Schlüssel zugeordnet werden, weil der Puffer des Trackers (%{limit} Schlüssel pro Thread) voll war."
|
|
853
|
+
footer_tip: "Fügen Sie den Schlüssel der Locale-Datei hinzu oder übergeben Sie ein :default. Schlüssel, auf die Nutzer tatsächlich gestoßen sind, stehen zuerst."
|
|
854
|
+
docs: "Rails-i18n-Leitfaden"
|
|
855
|
+
|
|
856
|
+
boot_errors_page:
|
|
857
|
+
title: "Startfehler"
|
|
858
|
+
empty_title: "Keine Startfehler erfasst"
|
|
859
|
+
empty_body: "In den letzten %{days} Tagen ist kein Prozess beim Starten abgestürzt."
|
|
860
|
+
how_title: "So werden Startfehler erfasst:"
|
|
861
|
+
how_enabled_html: "Die Absturzerfassung muss aktiviert sein (%{option})"
|
|
862
|
+
how_hooked: "RED registriert seinen at_exit-Hook direkt nach Ihren Initializern und vor dem Eager Loading von Rails, sodass ein Absturz beim Start erfasst wird, obwohl die App nie fertig gestartet ist"
|
|
863
|
+
how_captured_html: "%{zeitwerk} aus einer Datei, die die falsche Konstante definiert, ein %{syntax} in einem Model, ein Initializer, der eine Ausnahme auslöst: alles, was den Prozess beendet, bevor er eine Anfrage bedient"
|
|
864
|
+
how_imported: "Der Absturz wird auf die Festplatte geschrieben, weil es noch keine Datenbank gibt, und beim nächsten erfolgreichen Start importiert"
|
|
865
|
+
how_never: "Ein per SIGKILL beendeter oder abgestürzter (Segfault) Prozess wird von at_exit nie gesehen, in keinem Werkzeug"
|
|
866
|
+
unresolved: "Ungelöst"
|
|
867
|
+
boot_crashes: "Startabstürze"
|
|
868
|
+
failed_boots: "Fehlgeschlagene Starts"
|
|
869
|
+
all_title: "Startabstürze nach Fehler"
|
|
870
|
+
column_error: "Fehler"
|
|
871
|
+
column_file: "Datei"
|
|
872
|
+
column_constant: "Konstante"
|
|
873
|
+
column_boots: "Starts"
|
|
874
|
+
column_first_seen: "Zuerst gesehen"
|
|
875
|
+
column_status: "Status"
|
|
876
|
+
status_open: "Offen"
|
|
877
|
+
status_resolved: "Gelöst"
|
|
878
|
+
footer_tip: "Ein Startabsturz bedeutet, dass der Prozess nie eine Anfrage bedient hat. Beheben Sie ihn vor dem nächsten Deploy; die Zeile wird wie jeder andere Fehler gelöst."
|
|
879
|
+
|
|
831
880
|
rack_attack_page:
|
|
832
881
|
title: Rate-Limit-Ereignisse
|
|
833
882
|
missing_title: Rack Attack ist nicht installiert
|
|
@@ -1087,7 +1136,7 @@ de:
|
|
|
1087
1136
|
unable_to_detect: Erkennung nicht möglich
|
|
1088
1137
|
no_user_model: Kein User-Modell erkannt
|
|
1089
1138
|
unable_to_query_count: Anzahl konnte nicht abgefragt werden
|
|
1090
|
-
|
|
1139
|
+
retention_enforced_by_job: "Wird vom RetentionCleanupJob gelöscht, sobald Ihr Scheduler ihn ausführt"
|
|
1091
1140
|
keep_forever: Dauerhaft behalten
|
|
1092
1141
|
no_automatic_deletion: Keine automatische Löschung
|
|
1093
1142
|
run_command: 'Ausführen:'
|
|
@@ -1095,8 +1144,7 @@ de:
|
|
|
1095
1144
|
options:
|
|
1096
1145
|
enable_middleware: Fängt unbehandelte Exceptions ab
|
|
1097
1146
|
enable_error_subscriber: Abonniert Rails-Fehlerereignisse
|
|
1098
|
-
retention_days:
|
|
1099
|
-
DAYS=90)'
|
|
1147
|
+
retention_days: "Fehler löschen, die so viele Tage nicht mehr aufgetreten sind. Durchgesetzt vom RetentionCleanupJob, den das Gem selbst nicht einplant"
|
|
1100
1148
|
max_backtrace_lines: Maximale Backtrace-Tiefe
|
|
1101
1149
|
sampling_rate: Anteil der erfassten Fehler
|
|
1102
1150
|
application_name: Name dieser Anwendung (wird automatisch erkannt, wenn nicht
|
|
@@ -1115,7 +1163,7 @@ de:
|
|
|
1115
1163
|
erkannt, wenn nicht gesetzt)
|
|
1116
1164
|
async_logging: Verarbeitung über Hintergrund-Jobs
|
|
1117
1165
|
async_adapter: Adapter für die Job-Warteschlange
|
|
1118
|
-
enable_rate_limiting:
|
|
1166
|
+
enable_rate_limiting: "Dashboard-Anfragen pro IP und Pfad drosseln"
|
|
1119
1167
|
rate_limit_per_minute: Anfragen pro Minute und IP
|
|
1120
1168
|
enable_slack_notifications: Echtzeit-Benachrichtigungen
|
|
1121
1169
|
slack_webhook_url: Slack-Webhook-Endpunkt
|
|
@@ -1124,10 +1172,15 @@ de:
|
|
|
1124
1172
|
notification_email_from: Absenderadresse
|
|
1125
1173
|
enable_discord_notifications: Discord-Webhook-Benachrichtigungen
|
|
1126
1174
|
discord_webhook_url: Discord-Webhook-Endpunkt
|
|
1175
|
+
enable_telegram_notifications: "Telegram-Benachrichtigungen über die Bot-API"
|
|
1176
|
+
telegram_bot_token: "Bot-Token von @BotFather (Umgebungsvariable TELEGRAM_BOT_TOKEN setzen)"
|
|
1177
|
+
telegram_chat_id: "Chat, Gruppe oder Kanal, in den der Bot schreibt"
|
|
1178
|
+
telegram_api_base_url: "Bot-API-Server (nur für einen Proxy oder selbst gehosteten Server ändern)"
|
|
1127
1179
|
enable_pagerduty_notifications: Eskalation bei kritischen Fehlern
|
|
1128
1180
|
pagerduty_integration_key: PagerDuty-API-Schlüssel
|
|
1129
1181
|
enable_webhook_notifications: Allgemeine Webhook-Endpunkte
|
|
1130
1182
|
webhook_urls: Eigene Webhook-Endpunkte
|
|
1183
|
+
webhook_signing_secret: Signiert ausgehende Webhooks mit HMAC-SHA256 (Umgebungsvariable WEBHOOK_SIGNING_SECRET setzen)
|
|
1131
1184
|
enable_scheduled_digests: Tägliche/wöchentliche Zusammenfassungs-E-Mails.
|
|
1132
1185
|
Planung über SolidQueue, Sidekiq oder cron
|
|
1133
1186
|
digest_frequency: Wie oft Zusammenfassungs-E-Mails gesendet werden
|
|
@@ -1148,7 +1201,7 @@ de:
|
|
|
1148
1201
|
source_code_context_lines: Zeilen vor und nach der Zielzeile
|
|
1149
1202
|
enable_git_blame: git-blame-Informationen anzeigen
|
|
1150
1203
|
source_code_cache_ttl: Cache-Dauer für den Quellcode
|
|
1151
|
-
only_show_app_code_source:
|
|
1204
|
+
only_show_app_code_source: "Gem- und Vendor-Code im Quelltext-Viewer ausblenden"
|
|
1152
1205
|
git_branch_strategy: Strategie zur Branch-Auflösung
|
|
1153
1206
|
enable_breadcrumbs: Aktivitätsverlauf der Anfrage erfassen
|
|
1154
1207
|
breadcrumb_buffer_size: Maximale Anzahl Breadcrumbs pro Anfrage
|
|
@@ -1180,6 +1233,7 @@ de:
|
|
|
1180
1233
|
enable_crash_capture: at_exit-Hook für unbehandelte Abstürze
|
|
1181
1234
|
enable_coverage_tracking: Diagnosemodus — über das Dashboard aktivieren, um
|
|
1182
1235
|
ausgeführte Zeilen in der Quellcodeansicht zu sehen (Ruby 3.2+)
|
|
1236
|
+
enable_missing_translation_tracking: "Zählt die I18n-Fehlschläge der App nach Locale und Schlüssel (umhüllt I18n.exception_handler)"
|
|
1183
1237
|
enable_rack_attack_tracking: Throttle- und Blocklist-Ereignisse in einer eigenen
|
|
1184
1238
|
Tabelle erfassen
|
|
1185
1239
|
enable_actioncable_tracking: WebSocket-Kanalereignisse als Breadcrumbs erfassen
|
|
@@ -1235,6 +1289,8 @@ de:
|
|
|
1235
1289
|
breadcrumbs: Breadcrumbs
|
|
1236
1290
|
system_health: Systemzustand
|
|
1237
1291
|
swallowed_exceptions: Erkennung verschluckter Exceptions
|
|
1292
|
+
missing_translations: "Erfassung fehlender Übersetzungen"
|
|
1293
|
+
boot_errors: "Erfassung von Startfehlern"
|
|
1238
1294
|
rack_attack: Rack-Attack-Erfassung
|
|
1239
1295
|
actioncable: ActionCable-Erfassung
|
|
1240
1296
|
activestorage: ActiveStorage-Erfassung
|
|
@@ -1640,6 +1696,13 @@ de:
|
|
|
1640
1696
|
guide_link: ActionCable-Leitfaden
|
|
1641
1697
|
activestorage:
|
|
1642
1698
|
title: ActiveStorage-Zustand
|
|
1699
|
+
probe:
|
|
1700
|
+
title: "Erreichbarkeit des Dienstes"
|
|
1701
|
+
reachable: "Erreichbar"
|
|
1702
|
+
unreachable: "Nicht erreichbar"
|
|
1703
|
+
service: "Dienst: %{name}"
|
|
1704
|
+
latency: "%{ms} ms Umlaufzeit"
|
|
1705
|
+
how: "Eine Existenzprüfung für einen Schlüssel, der nie gespeichert wird, beim Laden dieser Seite. GET /health führt dieselbe Prüfung aus."
|
|
1643
1706
|
empty:
|
|
1644
1707
|
title: Keine ActiveStorage-Ereignisse gefunden
|
|
1645
1708
|
message: In den Fehler-Breadcrumbs der letzten %{days} Tage wurden keine
|
data/config/locales/en.yml
CHANGED
|
@@ -116,6 +116,8 @@ en:
|
|
|
116
116
|
llm: "LLM"
|
|
117
117
|
n_plus_one: "N+1 Queries"
|
|
118
118
|
deprecations: "Deprecations"
|
|
119
|
+
missing_translations: "Translations"
|
|
120
|
+
boot_errors: "Boot Errors"
|
|
119
121
|
swallowed: "Swallowed"
|
|
120
122
|
diagnostic_dumps: "Diagnostics"
|
|
121
123
|
storms: "Storms"
|
|
@@ -1185,6 +1187,61 @@ en:
|
|
|
1185
1187
|
view_unrescued: "View any unrescued %{exception} errors that leaked into error_log"
|
|
1186
1188
|
footer_tip: "Swallowed exceptions are raised then silently rescued. They may hide real bugs."
|
|
1187
1189
|
|
|
1190
|
+
missing_translations_page:
|
|
1191
|
+
title: "Missing Translations"
|
|
1192
|
+
empty_title: "No Missing Translations Recorded"
|
|
1193
|
+
# %{days} is the selected day range.
|
|
1194
|
+
empty_body: "No missing translation keys were recorded over the last %{days} days."
|
|
1195
|
+
how_title: "How missing translations are tracked:"
|
|
1196
|
+
# %{option} is a config option name as a <code> element.
|
|
1197
|
+
how_enabled_html: "Tracking must be enabled (%{option})"
|
|
1198
|
+
# I18n.exception_handler, I18n.t, t(), :default and raise_on_missing_translations are Ruby/Rails API names, not prose.
|
|
1199
|
+
how_hooked: "RED wraps I18n.exception_handler and delegates to the handler your app already had; nothing else in your I18n configuration changes"
|
|
1200
|
+
how_recorded: "Every lookup that falls through to the handler — I18n.t and the t() view helper alike — is counted by locale and key, with the first call site seen"
|
|
1201
|
+
how_not_seen: "A lookup given a :default never misses, and one made with raise_on_missing_translations raises before any handler runs, so neither is counted here"
|
|
1202
|
+
how_buffered: "Misses are counted in memory and written at the end of the request or job, so allow a short delay before they appear"
|
|
1203
|
+
missing_keys: "Missing Keys"
|
|
1204
|
+
total_misses: "Total Misses"
|
|
1205
|
+
locales_affected: "Locales Affected"
|
|
1206
|
+
all_title: "Missing Translation Keys"
|
|
1207
|
+
column_key: "Key"
|
|
1208
|
+
column_locale: "Locale"
|
|
1209
|
+
column_source: "First Seen In"
|
|
1210
|
+
column_misses: "Misses"
|
|
1211
|
+
column_first_seen: "First Seen"
|
|
1212
|
+
# %{count} is a number of misses, %{limit} the per-thread buffer size.
|
|
1213
|
+
overflow_notice: "%{count} misses could not be attributed to a key because the tracker's buffer (%{limit} keys per thread) was full."
|
|
1214
|
+
footer_tip: "Add the key to the locale file, or pass a :default. Keys users actually hit are listed first."
|
|
1215
|
+
docs: "Rails i18n guide"
|
|
1216
|
+
|
|
1217
|
+
boot_errors_page:
|
|
1218
|
+
title: "Boot Errors"
|
|
1219
|
+
empty_title: "No Boot Errors Recorded"
|
|
1220
|
+
# %{days} is the selected day range.
|
|
1221
|
+
empty_body: "No process died while booting over the last %{days} days."
|
|
1222
|
+
how_title: "How boot errors are captured:"
|
|
1223
|
+
# %{option} is a config option name as a <code> element.
|
|
1224
|
+
how_enabled_html: "Crash capture must be enabled (%{option})"
|
|
1225
|
+
# at_exit, SIGKILL and segfault are Ruby/OS terms, not prose.
|
|
1226
|
+
how_hooked: "RED registers its at_exit hook right after your initializers run and before Rails eager-loads, so a crash during boot is seen even though the app never finished starting"
|
|
1227
|
+
# %{zeitwerk} and %{syntax} are exception class names as <code> elements.
|
|
1228
|
+
how_captured_html: "%{zeitwerk} from a file that defines the wrong constant, a %{syntax} in a model, an initializer that raised: anything that kills the process before it serves a request"
|
|
1229
|
+
how_imported: "The crash is written to disk, because there is no database yet, and imported on the next boot that succeeds"
|
|
1230
|
+
how_never: "A process killed by SIGKILL or a segfault is never seen by at_exit, in any tool"
|
|
1231
|
+
unresolved: "Unresolved"
|
|
1232
|
+
boot_crashes: "Boot Crashes"
|
|
1233
|
+
failed_boots: "Failed Boots"
|
|
1234
|
+
all_title: "Boot Crashes by Error"
|
|
1235
|
+
column_error: "Error"
|
|
1236
|
+
column_file: "File"
|
|
1237
|
+
column_constant: "Constant"
|
|
1238
|
+
column_boots: "Boots"
|
|
1239
|
+
column_first_seen: "First Seen"
|
|
1240
|
+
column_status: "Status"
|
|
1241
|
+
status_open: "Open"
|
|
1242
|
+
status_resolved: "Resolved"
|
|
1243
|
+
footer_tip: "A boot crash means the process never served a request. Fix it before the next deploy; the row resolves like any other error."
|
|
1244
|
+
|
|
1188
1245
|
rack_attack_page:
|
|
1189
1246
|
title: "Rate Limit Events"
|
|
1190
1247
|
missing_title: "Rack Attack Is Not Installed"
|
|
@@ -1523,7 +1580,7 @@ en:
|
|
|
1523
1580
|
unable_to_detect: "Unable to detect"
|
|
1524
1581
|
no_user_model: "No User model detected"
|
|
1525
1582
|
unable_to_query_count: "Unable to query count"
|
|
1526
|
-
|
|
1583
|
+
retention_enforced_by_job: "Deleted by RetentionCleanupJob once your scheduler runs it"
|
|
1527
1584
|
keep_forever: "Keep Forever"
|
|
1528
1585
|
no_automatic_deletion: "No automatic deletion"
|
|
1529
1586
|
# These label a rake command rendered beside them. The command is never
|
|
@@ -1538,7 +1595,7 @@ en:
|
|
|
1538
1595
|
options:
|
|
1539
1596
|
enable_middleware: "Catches unhandled exceptions"
|
|
1540
1597
|
enable_error_subscriber: "Subscribes to Rails error events"
|
|
1541
|
-
retention_days: "
|
|
1598
|
+
retention_days: "Delete errors not seen for this many days. Enforced by RetentionCleanupJob, which nothing in the gem schedules"
|
|
1542
1599
|
max_backtrace_lines: "Stack trace depth limit"
|
|
1543
1600
|
sampling_rate: "Percentage of errors captured"
|
|
1544
1601
|
application_name: "Name of this application (auto-detected if not set)"
|
|
@@ -1552,7 +1609,7 @@ en:
|
|
|
1552
1609
|
total_users_for_impact: "For impact % calculation (auto-detected if not set)"
|
|
1553
1610
|
async_logging: "Background job processing"
|
|
1554
1611
|
async_adapter: "Job queue adapter"
|
|
1555
|
-
enable_rate_limiting: "Throttle
|
|
1612
|
+
enable_rate_limiting: "Throttle dashboard requests per IP and path"
|
|
1556
1613
|
rate_limit_per_minute: "Requests per minute per IP"
|
|
1557
1614
|
enable_slack_notifications: "Real-time notifications"
|
|
1558
1615
|
slack_webhook_url: "Slack webhook endpoint"
|
|
@@ -1561,10 +1618,15 @@ en:
|
|
|
1561
1618
|
notification_email_from: "Sender address"
|
|
1562
1619
|
enable_discord_notifications: "Discord webhook notifications"
|
|
1563
1620
|
discord_webhook_url: "Discord webhook endpoint"
|
|
1621
|
+
enable_telegram_notifications: "Telegram Bot API notifications"
|
|
1622
|
+
telegram_bot_token: "Bot token from @BotFather (set TELEGRAM_BOT_TOKEN env var)"
|
|
1623
|
+
telegram_chat_id: "Chat, group or channel the bot posts to"
|
|
1624
|
+
telegram_api_base_url: "Bot API server (change only for a proxy or self-hosted server)"
|
|
1564
1625
|
enable_pagerduty_notifications: "Critical error escalation"
|
|
1565
1626
|
pagerduty_integration_key: "PagerDuty API key"
|
|
1566
1627
|
enable_webhook_notifications: "Generic webhook endpoints"
|
|
1567
1628
|
webhook_urls: "Custom webhook endpoints"
|
|
1629
|
+
webhook_signing_secret: "Signs outbound webhooks with HMAC-SHA256 (set WEBHOOK_SIGNING_SECRET env var)"
|
|
1568
1630
|
enable_scheduled_digests: "Daily/weekly summary emails. Schedule via SolidQueue, Sidekiq, or cron"
|
|
1569
1631
|
digest_frequency: "How often to send digest emails"
|
|
1570
1632
|
digest_recipients: "Email addresses (falls back to notification recipients)"
|
|
@@ -1582,7 +1644,7 @@ en:
|
|
|
1582
1644
|
source_code_context_lines: "Lines before/after target line"
|
|
1583
1645
|
enable_git_blame: "Show git blame info"
|
|
1584
1646
|
source_code_cache_ttl: "Source code cache duration"
|
|
1585
|
-
only_show_app_code_source: "Hide
|
|
1647
|
+
only_show_app_code_source: "Hide gem and vendored code in the source viewer"
|
|
1586
1648
|
git_branch_strategy: "Branch resolution strategy"
|
|
1587
1649
|
enable_breadcrumbs: "Capture request activity trail"
|
|
1588
1650
|
breadcrumb_buffer_size: "Max breadcrumbs per request"
|
|
@@ -1608,6 +1670,7 @@ en:
|
|
|
1608
1670
|
enable_diagnostic_dump: "On-demand system state snapshots"
|
|
1609
1671
|
enable_crash_capture: "at_exit hook for unhandled crashes"
|
|
1610
1672
|
enable_coverage_tracking: "Diagnostic mode — enable via dashboard to see executed lines in source view (Ruby 3.2+)"
|
|
1673
|
+
enable_missing_translation_tracking: "Count the app's I18n misses by locale and key (wraps I18n.exception_handler)"
|
|
1611
1674
|
enable_rack_attack_tracking: "Record throttle/blocklist events to their own table"
|
|
1612
1675
|
enable_actioncable_tracking: "Track WebSocket channel events as breadcrumbs"
|
|
1613
1676
|
enable_activestorage_tracking: "Track uploads/downloads/deletes as breadcrumbs"
|
|
@@ -1687,6 +1750,8 @@ en:
|
|
|
1687
1750
|
breadcrumbs: "Breadcrumbs"
|
|
1688
1751
|
system_health: "System health"
|
|
1689
1752
|
swallowed_exceptions: "Swallowed exception detection"
|
|
1753
|
+
missing_translations: "Missing-translation tracking"
|
|
1754
|
+
boot_errors: "Boot error capture"
|
|
1690
1755
|
rack_attack: "Rack Attack tracking"
|
|
1691
1756
|
actioncable: "ActionCable tracking"
|
|
1692
1757
|
activestorage: "ActiveStorage tracking"
|
|
@@ -2231,6 +2296,15 @@ en:
|
|
|
2231
2296
|
|
|
2232
2297
|
activestorage:
|
|
2233
2298
|
title: "ActiveStorage Health"
|
|
2299
|
+
probe:
|
|
2300
|
+
# Live reachability card. %{name} is the service name from
|
|
2301
|
+
# config/storage.yml and %{ms} a number of milliseconds.
|
|
2302
|
+
title: "Service reachability"
|
|
2303
|
+
reachable: "Reachable"
|
|
2304
|
+
unreachable: "Unreachable"
|
|
2305
|
+
service: "Service: %{name}"
|
|
2306
|
+
latency: "%{ms} ms round trip"
|
|
2307
|
+
how: "One existence check for a key that is never stored, made when this page loads. GET /health runs the same probe."
|
|
2234
2308
|
|
|
2235
2309
|
empty:
|
|
2236
2310
|
title: "No ActiveStorage Events Found"
|
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
|
|
@@ -858,6 +860,53 @@ es:
|
|
|
858
860
|
error_log
|
|
859
861
|
footer_tip: Las excepciones silenciadas se lanzan y luego se capturan sin
|
|
860
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
|
+
|
|
861
910
|
rack_attack_page:
|
|
862
911
|
title: Eventos de límite de tasa
|
|
863
912
|
missing_title: Rack Attack no está instalado
|
|
@@ -1129,7 +1178,7 @@ es:
|
|
|
1129
1178
|
unable_to_detect: No se pudo detectar
|
|
1130
1179
|
no_user_model: No se detectó ningún modelo User
|
|
1131
1180
|
unable_to_query_count: No se pudo consultar la cantidad
|
|
1132
|
-
|
|
1181
|
+
retention_enforced_by_job: "Eliminados por RetentionCleanupJob cuando su planificador lo ejecute"
|
|
1133
1182
|
keep_forever: Conservar indefinidamente
|
|
1134
1183
|
no_automatic_deletion: Sin eliminación automática
|
|
1135
1184
|
run_command: 'Ejecutar:'
|
|
@@ -1137,8 +1186,7 @@ es:
|
|
|
1137
1186
|
options:
|
|
1138
1187
|
enable_middleware: Captura las excepciones no gestionadas
|
|
1139
1188
|
enable_error_subscriber: Se suscribe a los eventos de error de Rails
|
|
1140
|
-
retention_days:
|
|
1141
|
-
DAYS=90)'
|
|
1189
|
+
retention_days: "Eliminar errores no vistos durante estos días. Lo aplica RetentionCleanupJob, que la gema no programa por sí misma"
|
|
1142
1190
|
max_backtrace_lines: Profundidad máxima del backtrace
|
|
1143
1191
|
sampling_rate: Porcentaje de errores capturados
|
|
1144
1192
|
application_name: Nombre de esta aplicación (se detecta automáticamente si
|
|
@@ -1157,7 +1205,7 @@ es:
|
|
|
1157
1205
|
si no se define)
|
|
1158
1206
|
async_logging: Procesamiento mediante jobs en segundo plano
|
|
1159
1207
|
async_adapter: Adaptador de la cola de jobs
|
|
1160
|
-
enable_rate_limiting: Limitar las solicitudes
|
|
1208
|
+
enable_rate_limiting: "Limitar las solicitudes del panel por IP y ruta"
|
|
1161
1209
|
rate_limit_per_minute: Solicitudes por minuto y por IP
|
|
1162
1210
|
enable_slack_notifications: Notificaciones en tiempo real
|
|
1163
1211
|
slack_webhook_url: Endpoint del webhook de Slack
|
|
@@ -1166,10 +1214,15 @@ es:
|
|
|
1166
1214
|
notification_email_from: Dirección del remitente
|
|
1167
1215
|
enable_discord_notifications: Notificaciones por webhook de Discord
|
|
1168
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)"
|
|
1169
1221
|
enable_pagerduty_notifications: Escalado de errores críticos
|
|
1170
1222
|
pagerduty_integration_key: Clave de API de PagerDuty
|
|
1171
1223
|
enable_webhook_notifications: Endpoints de webhook genéricos
|
|
1172
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)
|
|
1173
1226
|
enable_scheduled_digests: Correos de resumen diarios/semanales. Programación
|
|
1174
1227
|
mediante SolidQueue, Sidekiq o cron
|
|
1175
1228
|
digest_frequency: Frecuencia de envío de los correos de resumen
|
|
@@ -1189,7 +1242,7 @@ es:
|
|
|
1189
1242
|
source_code_context_lines: Líneas antes y después de la línea de destino
|
|
1190
1243
|
enable_git_blame: Mostrar la información de git blame
|
|
1191
1244
|
source_code_cache_ttl: Duración de la caché del código fuente
|
|
1192
|
-
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"
|
|
1193
1246
|
git_branch_strategy: Estrategia de resolución de la rama
|
|
1194
1247
|
enable_breadcrumbs: Capturar el rastro de actividad de la solicitud
|
|
1195
1248
|
breadcrumb_buffer_size: Número máximo de breadcrumbs por solicitud
|
|
@@ -1224,6 +1277,7 @@ es:
|
|
|
1224
1277
|
enable_crash_capture: Hook at_exit para caídas no gestionadas
|
|
1225
1278
|
enable_coverage_tracking: 'Modo diagnóstico: actívelo desde el panel para
|
|
1226
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)"
|
|
1227
1281
|
enable_rack_attack_tracking: Registrar los eventos throttle/blocklist en su
|
|
1228
1282
|
propia tabla
|
|
1229
1283
|
enable_actioncable_tracking: Seguir los eventos de canal de WebSocket como
|
|
@@ -1281,6 +1335,8 @@ es:
|
|
|
1281
1335
|
breadcrumbs: Breadcrumbs
|
|
1282
1336
|
system_health: Estado del sistema
|
|
1283
1337
|
swallowed_exceptions: Detección de excepciones silenciadas
|
|
1338
|
+
missing_translations: "Seguimiento de traducciones faltantes"
|
|
1339
|
+
boot_errors: "Captura de errores de arranque"
|
|
1284
1340
|
rack_attack: Seguimiento de Rack Attack
|
|
1285
1341
|
actioncable: Seguimiento de ActionCable
|
|
1286
1342
|
activestorage: Seguimiento de ActiveStorage
|
|
@@ -1694,6 +1750,13 @@ es:
|
|
|
1694
1750
|
guide_link: Guía de ActionCable
|
|
1695
1751
|
activestorage:
|
|
1696
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."
|
|
1697
1760
|
empty:
|
|
1698
1761
|
title: No se encontraron eventos de ActiveStorage
|
|
1699
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
|
|
@@ -857,6 +859,53 @@ fr:
|
|
|
857
859
|
dans error_log
|
|
858
860
|
footer_tip: Les exceptions avalées sont levées puis rattrapées silencieusement.
|
|
859
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
|
+
|
|
860
909
|
rack_attack_page:
|
|
861
910
|
title: Événements de limitation de débit
|
|
862
911
|
missing_title: Rack Attack n'est pas installé
|
|
@@ -1130,7 +1179,7 @@ fr:
|
|
|
1130
1179
|
unable_to_detect: Détection impossible
|
|
1131
1180
|
no_user_model: Aucun modèle User détecté
|
|
1132
1181
|
unable_to_query_count: Impossible d'interroger le nombre
|
|
1133
|
-
|
|
1182
|
+
retention_enforced_by_job: "Supprimés par RetentionCleanupJob dès que votre planificateur l'exécute"
|
|
1134
1183
|
keep_forever: Conserver indéfiniment
|
|
1135
1184
|
no_automatic_deletion: Aucune suppression automatique
|
|
1136
1185
|
run_command: 'Exécuter :'
|
|
@@ -1138,8 +1187,7 @@ fr:
|
|
|
1138
1187
|
options:
|
|
1139
1188
|
enable_middleware: Intercepte les exceptions non gérées
|
|
1140
1189
|
enable_error_subscriber: S'abonne aux événements d'erreur de Rails
|
|
1141
|
-
retention_days:
|
|
1142
|
-
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"
|
|
1143
1191
|
max_backtrace_lines: Profondeur maximale du backtrace
|
|
1144
1192
|
sampling_rate: Pourcentage d'erreurs capturées
|
|
1145
1193
|
application_name: Nom de cette application (détecté automatiquement si non
|
|
@@ -1158,7 +1206,7 @@ fr:
|
|
|
1158
1206
|
si non défini)
|
|
1159
1207
|
async_logging: Traitement par jobs en arrière-plan
|
|
1160
1208
|
async_adapter: Adaptateur de file d'attente des jobs
|
|
1161
|
-
enable_rate_limiting: Limiter
|
|
1209
|
+
enable_rate_limiting: "Limiter les requêtes du tableau de bord par IP et par chemin"
|
|
1162
1210
|
rate_limit_per_minute: Requêtes par minute et par IP
|
|
1163
1211
|
enable_slack_notifications: Notifications en temps réel
|
|
1164
1212
|
slack_webhook_url: Point de terminaison du webhook Slack
|
|
@@ -1167,10 +1215,15 @@ fr:
|
|
|
1167
1215
|
notification_email_from: Adresse de l'expéditeur
|
|
1168
1216
|
enable_discord_notifications: Notifications par webhook Discord
|
|
1169
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é)"
|
|
1170
1222
|
enable_pagerduty_notifications: Escalade des erreurs critiques
|
|
1171
1223
|
pagerduty_integration_key: Clé API PagerDuty
|
|
1172
1224
|
enable_webhook_notifications: Points de terminaison webhook génériques
|
|
1173
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)
|
|
1174
1227
|
enable_scheduled_digests: E-mails de résumé quotidiens/hebdomadaires. Planification
|
|
1175
1228
|
via SolidQueue, Sidekiq ou cron
|
|
1176
1229
|
digest_frequency: Fréquence d'envoi des e-mails de résumé
|
|
@@ -1190,7 +1243,7 @@ fr:
|
|
|
1190
1243
|
source_code_context_lines: Lignes avant et après la ligne ciblée
|
|
1191
1244
|
enable_git_blame: Afficher les informations git blame
|
|
1192
1245
|
source_code_cache_ttl: Durée de mise en cache du code source
|
|
1193
|
-
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"
|
|
1194
1247
|
git_branch_strategy: Stratégie de résolution de la branche
|
|
1195
1248
|
enable_breadcrumbs: Capturer le fil d'activité de la requête
|
|
1196
1249
|
breadcrumb_buffer_size: Nombre maximal de breadcrumbs par requête
|
|
@@ -1224,6 +1277,7 @@ fr:
|
|
|
1224
1277
|
enable_crash_capture: Hook at_exit pour les plantages non gérés
|
|
1225
1278
|
enable_coverage_tracking: Mode diagnostic — à activer depuis le tableau de
|
|
1226
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)"
|
|
1227
1281
|
enable_rack_attack_tracking: Enregistrer les événements throttle/blocklist
|
|
1228
1282
|
dans leur propre table
|
|
1229
1283
|
enable_actioncable_tracking: Suivre les événements des canaux WebSocket sous
|
|
@@ -1281,6 +1335,8 @@ fr:
|
|
|
1281
1335
|
breadcrumbs: Breadcrumbs
|
|
1282
1336
|
system_health: État du système
|
|
1283
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"
|
|
1284
1340
|
rack_attack: Suivi de Rack Attack
|
|
1285
1341
|
actioncable: Suivi d'ActionCable
|
|
1286
1342
|
activestorage: Suivi d'ActiveStorage
|
|
@@ -1697,6 +1753,13 @@ fr:
|
|
|
1697
1753
|
guide_link: Guide d'ActionCable
|
|
1698
1754
|
activestorage:
|
|
1699
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."
|
|
1700
1763
|
empty:
|
|
1701
1764
|
title: Aucun événement ActiveStorage trouvé
|
|
1702
1765
|
message: Aucune opération de service ActiveStorage n'a été détectée dans
|