Skip to content
Open
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
ccfea57
feat(status-page): install next-intl 4.5+ and create i18n config
aggmoulik Mar 7, 2026
90feb8e
feat(status-page): add next-intl plugin to next.config.ts
aggmoulik Mar 7, 2026
4e68768
feat(status-page): add [locale] route segment and move routes
aggmoulik Mar 7, 2026
882ac92
feat(status-page): use useExtracted for status component strings
aggmoulik Mar 12, 2026
b9331ee
feat(status-page): use useExtracted for navigation strings
aggmoulik Mar 7, 2026
7321996
feat(status-page): use useExtracted for events, report, maintenance, …
aggmoulik Mar 7, 2026
5581722
feat(status-page): use useExtracted for auth, forms, and updates strings
aggmoulik Mar 12, 2026
7a5240b
feat(status-page): delete old messages.ts, add language switcher
aggmoulik Mar 7, 2026
b5f131b
feat(status-page): make pathname prefix locale-aware
aggmoulik Mar 7, 2026
2e36a0d
fix(status-page): switch message catalogs from .po to .json format
aggmoulik Mar 7, 2026
5a4e381
Format fix
aggmoulik Mar 7, 2026
af63c63
WIP Status Page static and domain specific
aggmoulik Mar 12, 2026
44594f4
Update the extracted config and proxy fix
aggmoulik Mar 11, 2026
c1199e1
ci: apply automated fixes
aggmoulik Mar 12, 2026
8e0d807
Removed unncessary static component with ui package
aggmoulik Mar 12, 2026
792216b
Updated status-events with blocks component
aggmoulik Mar 12, 2026
6ded716
wip: i18n
mxkaske Mar 20, 2026
b9ef820
fix: date-fns locale
mxkaske Mar 20, 2026
c4b8ccf
fix: locale navigation
mxkaske Mar 20, 2026
7560c1c
chore: locale switcher
mxkaske Mar 20, 2026
3fd58bf
chore: format theme switcher
mxkaske Mar 20, 2026
2135758
Merge branch 'main' into feat/status-page-i18n
mxkaske Mar 20, 2026
b8030ec
fix: missing translations
mxkaske Mar 20, 2026
e99ab77
fix: review
mxkaske Mar 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 131 additions & 0 deletions apps/status-page/messages/de.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
{
"Y9HHck": "Authentifizieren",
"1QcGkA": "Geben Sie Ihre E-Mail-Adresse ein, um einen Magic Link für den Zugriff auf die Statusseite zu erhalten. Hinweis: Es werden nur E-Mails von genehmigten Domains akzeptiert.",
"txkW56": "Wird gesendet...",
"wSZR47": "Absenden",
"OrFVks": "Überprüfen Sie Ihren Posteingang!",
"n36zhX": "Greifen Sie auf die Statusseite zu, indem Sie auf den Link in der E-Mail klicken.",
"qIAQSi": "Geschützte Seite",
"lbw10C": "Geben Sie das Passwort ein, um auf die Statusseite zuzugreifen.",
"t262xH": "E-Mail und Weiterleitungs-URL sind erforderlich",
"DwevKz": "Bei der Anmeldung ist ein unerwarteter Fehler aufgetreten",
"Ppx673": "Berichte",
"JCMXwP": "Wartungen",
"I7B7SH": "Keine Wartungen gefunden",
"OSI607": "Keine Wartungen für diese Statusseite gefunden.",
"a9S/OH": "Wartung nicht gefunden",
"HSv9BP": "Die gesuchte Wartung existiert nicht.",
"VL1Y/1": "Bericht nicht gefunden",
"Ew1f8q": "Der gesuchte Bericht existiert nicht.",
"wkVkCX": "Erfolgreich abgemeldet",
"9qFG9F": "Abmeldung fehlgeschlagen",
"PV34S9": "Ungültiger Abonnement-Token",
"ar0fZ/": "Dieser Abonnement-Token ist nicht mehr gültig. Möglicherweise haben Sie sich bereits abgemeldet oder der Link ist abgelaufen.",
"orvpWh": "Zurück",
"K8kTfz": "Verwalten Sie Ihr Abonnement, um Updates zur Statusseite zu erhalten.",
"3JgeEq": "Abgemeldet am {date}",
"RXTZq5": "Abmeldung läuft...",
"cctOA4": "Abmelden",
"jHSHdV": "Sind Sie sicher, dass Sie sich von dieser Statusseite abmelden möchten? Sie erhalten dann keine Updates mehr.",
"47FYwb": "Abbrechen",
"awr0AJ": "Monitor nicht gefunden",
"CVsoUM": "Der gesuchte Monitor existiert nicht.",
"BRGcS0": "Globale Latenz",
"9vqdq3": "Regionale Latenz",
"fFOayY": "Regionen",
"u81G9+": "Verfügbarkeit",
"i2FBWn": "Prüfungen",
"G5Lt80": "Die aggregierte Latenz aller aktiven Regionen basierend auf verschiedenen Quantilen.",
"YV7rXP": "Latenz nach Region",
"6zzIEm": "Regionale Latenz pro p75-Quantil, sortiert nach langsamster Region. Vergleichen Sie bis zu 6 Regionen.",
"6pCzRs": "Gesamtverfügbarkeit",
"zL23+z": "Hauptwerte der Verfügbarkeit, transparent dargestellt.",
"gjBiyj": "Wird geladen...",
"/72cxa": "Ungültiger oder abgelaufener Link",
"R10mIw": "Dieser Abmelde-Link ist nicht mehr gültig. Möglicherweise haben Sie sich bereits abgemeldet.",
"yFi/8F": "Erfolgreich abgemeldet",
"CmelO7": "Sie erhalten keine E-Mail-Benachrichtigungen mehr von {pageName}.",
"JqiqNj": "Etwas ist schiefgelaufen",
"TnvU0H": "Bitte versuchen Sie es erneut oder kontaktieren Sie den Support, wenn das Problem weiterhin besteht.",
"uW0VWi": "Von Benachrichtigungen abmelden",
"deCYKO": "Sie sind dabei, {email} von den Status-Updates von {pageName} abzumelden.",
"5HvAzP": "Bereit, Updates für {email} zu empfangen!",
"ywcUO4": "Einen Moment — wir bestätigen Ihr Abonnement",
"0Azlrb": "Verwalten",
"cyR7Kh": "Zurück",
"2yCGR2": "Link in die Zwischenablage kopiert",
"u5aHb4": "Link kopieren",
"m5BctM": "Diagrammlegende",
"csFahs": "Relativ",
"oBoa2n": "Voreinstellungen",
"gdve5D": "Benutzerdefinierter Zeitraum",
"mOFG3K": "Start",
"3JVa6k": "Ende",
"79eRW1": "Bestätigung läuft...",
"dX7+Rv": "Bestätigt",
"m0fapd": "Bestätigung fehlgeschlagen",
"sy+pv5": "E-Mail",
"9Utk00": "Abonnement wird aktualisiert...",
"Eq5gCU": "Abonnement aktualisiert",
"qp+wDV": "Aktualisierung des Abonnements fehlgeschlagen",
"d/jCcy": "Bestimmte Komponenten abonnieren",
"FlVuUh": "Keine Komponenten zum Abonnieren",
"8aUjqQ": "Diese Statusseite hat keine Komponenten zum Abonnieren.",
"5sg7KC": "Passwort",
"IGY48m": "Wird abonniert...",
"Pgb3Xj": "Abonniert",
"WOH7Yj": "Abonnement fehlgeschlagen",
"L7z2/k": "Diese Seite hat keine Komponenten zum Abonnieren.",
"NOyDVq": "betrieben von",
"tzMNF3": "Status",
"ZvKSfJ": "Ereignisse",
"xJrRMG": "Monitore",
"tKMlOc": "Menü",
"krEziQ": "Kontakt aufnehmen",
"8kyEWd": "Ein Quantil stellt ein bestimmtes Perzentil in Ihrem Datensatz dar.",
"kd0Igx": "Zum Beispiel ist p50 das 50. Perzentil — der Punkt, unter dem 50 % der Daten liegen. Höhere Perzentile umfassen mehr Daten und heben den oberen Bereich hervor.",
"BQBZU+": "Alle Systeme betriebsbereit",
"b9fOA1": "Eingeschränkte Leistung",
"80EXUh": "Ausfall",
Copy link

@cubic-dev-ai cubic-dev-ai bot Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Both "80EXUh" ("Downtime Performance") and "JOZGPR" ("Downtime") are translated to the same German string "Ausfall". Consider differentiating them — e.g., "Ausfallleistung" or "Beeinträchtigter Betrieb (Ausfall)" for the longer variant — so the two labels remain distinguishable in the UI, matching the intent of the English source.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/status-page/messages/de.json, line 55:

<comment>Both `"80EXUh"` ("Downtime Performance") and `"JOZGPR"` ("Downtime") are translated to the same German string `"Ausfall"`. Consider differentiating them — e.g., `"Ausfallleistung"` or `"Beeinträchtigter Betrieb (Ausfall)"` for the longer variant — so the two labels remain distinguishable in the UI, matching the intent of the English source.</comment>

<file context>
@@ -0,0 +1,88 @@
+  "krEziQ": "Kontakt aufnehmen",
+  "BQBZU+": "Alle Systeme betriebsbereit",
+  "b9fOA1": "Eingeschränkte Leistung",
+  "80EXUh": "Ausfall",
+  "dudqv/": "Wartung",
+  "2syGZB": "Bericht gelöst",
</file context>
Fix with Cubic

"dudqv/": "Wartung",
"u++vY3": "Keine Berichte gefunden",
"2HGztY": "Keine Berichte für diese Statusseite gefunden.",
"50SA6J": "Keine öffentlichen Monitore",
"FHrzf5": "Es wurden keine öffentlichen Monitore zu dieser Seite hinzugefügt.",
"2syGZB": "Bericht gelöst",
"heezSZ": "(in {duration})",
"lKJjwW": "({timeFromLast} früher)",
"W6nSYE": "Gelöst",
"1P6GMj": "Überwachung",
"7cv4Uf": "Identifiziert",
"/GKH/w": "Wird untersucht",
"VaZnIX": "(für {duration})",
"FDReLp": "Keine aktuellen Benachrichtigungen",
"qDj0JR": "In den letzten 7 Tagen gab es keine Berichte.",
"CYs0LF": "Ereignisverlauf anzeigen",
"kkpP2k": "heute",
"Dnob31": "Betriebsbereit",
"VQDmmK": "Eingeschränkt",
"JOZGPR": "Ausfall",
"3Vaz8F": "Status-Tracker",
"apbxET": "Tag {n} Status",
"GbVCQb": "Erneut klicken zum Lösen",
"myq2ZL": "Normal",
"KN7zKn": "Fehler",
"D3rOMr": "Keine Daten",
"2wsjxR": "laufend",
"jC7BY1": "über {duration}",
"uPb/gh": "Updates erhalten",
"sjzDbu": "Slack",
"q0qMyV": "RSS",
"9y9QQh": "JSON",
"waUHa4": "SSH",
"cVqFq/": "Erhalten Sie E-Mail-Benachrichtigungen, wenn ein Bericht erstellt oder gelöst wird",
"gczcC5": "Abonnieren",
"8OoV56": "RSS-Feed abrufen",
"Auj/Ki": "Atom-Feed abrufen",
"SyYroX": "JSON-Updates abrufen",
"PSqtlY": "Status über SSH abrufen",
"rptmhC": "Für Status-Updates in Slack fügen Sie den folgenden Text in einen beliebigen Kanal ein.",
"45YlLU": "Bestätigen Sie Ihre E-Mail-Adresse, um Updates zu erhalten, und schon sind Sie fertig."
}
131 changes: 131 additions & 0 deletions apps/status-page/messages/en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
{
"Y9HHck": "Authenticate",
"1QcGkA": "Enter your email to receive a magic link for accessing the status page. Note: Only emails from approved domains are accepted.",
"txkW56": "Submitting...",
"wSZR47": "Submit",
"OrFVks": "Check your inbox!",
"n36zhX": "Access the status page by clicking the link in the email.",
"qIAQSi": "Protected Page",
"lbw10C": "Enter the password to access the status page.",
"t262xH": "Email and redirectTo are required",
"DwevKz": "An unexpected error occurred during sign in",
"Ppx673": "Reports",
"JCMXwP": "Maintenances",
"I7B7SH": "No maintenances found",
"OSI607": "No maintenances found for this status page.",
"a9S/OH": "Maintenance not found",
"HSv9BP": "The maintenance you are looking for does not exist.",
"VL1Y/1": "Report not found",
"Ew1f8q": "The report you are looking for does not exist.",
"wkVkCX": "Unsubscribed successfully",
"9qFG9F": "Failed to unsubscribe",
"PV34S9": "Invalid subscription token",
"ar0fZ/": "This subscription token is no longer valid. You may have already unsubscribed or the link has expired.",
"orvpWh": "Go back",
"K8kTfz": "Manage your subscription to receive updates on the status page.",
"3JgeEq": "Unsubscribed on {date}",
"RXTZq5": "Unsubscribing...",
"cctOA4": "Unsubscribe",
"jHSHdV": "Are you sure you want to unsubscribe from this status page? You will no longer receive updates.",
"47FYwb": "Cancel",
"awr0AJ": "Monitor not found",
"CVsoUM": "The monitor you are looking for does not exist.",
"BRGcS0": "Global Latency",
"9vqdq3": "Region Latency",
"fFOayY": "regions",
"u81G9+": "Uptime",
"i2FBWn": "checks",
"G5Lt80": "The aggregated latency from all active regions based on different quantiles.",
"YV7rXP": "Latency by Region",
"6zzIEm": "Region latency per p75 quantile, sorted by slowest region. Compare up to 6 regions.",
"6pCzRs": "Total Uptime",
"zL23+z": "Main values of uptime and availability, transparent.",
"gjBiyj": "Loading...",
"/72cxa": "Invalid or expired link",
"R10mIw": "This unsubscribe link is no longer valid. You may have already unsubscribed.",
"yFi/8F": "Successfully unsubscribed",
"CmelO7": "You will no longer receive email notifications from {pageName}.",
"JqiqNj": "Something went wrong",
"TnvU0H": "Please try again or contact support if the issue persists.",
"uW0VWi": "Unsubscribe from notifications",
"deCYKO": "You are about to unsubscribe {email} from {pageName} status updates.",
"5HvAzP": "All set to receive updates to {email}!",
"ywcUO4": "Hang tight - we're confirming your subscription",
"0Azlrb": "Manage",
"cyR7Kh": "Back",
"2yCGR2": "Link copied to clipboard",
"u5aHb4": "Copy Link",
"m5BctM": "Chart legend",
"csFahs": "Relative",
"oBoa2n": "Presets",
"gdve5D": "Custom Range",
"mOFG3K": "Start",
"3JVa6k": "End",
"79eRW1": "Confirming...",
"dX7+Rv": "Confirmed",
"m0fapd": "Failed to confirm",
"sy+pv5": "Email",
"9Utk00": "Updating subscription...",
"Eq5gCU": "Subscription updated",
"qp+wDV": "Failed to update subscription",
"d/jCcy": "Subscribe to specific components",
"FlVuUh": "No components to subscribe to",
"8aUjqQ": "This status page has no components to subscribe to.",
"5sg7KC": "Password",
"IGY48m": "Subscribing...",
"Pgb3Xj": "Subscribed",
"WOH7Yj": "Failed to subscribe",
"L7z2/k": "This page has no components to subscribe to.",
"NOyDVq": "powered by",
"tzMNF3": "Status",
"ZvKSfJ": "Events",
"xJrRMG": "Monitors",
"tKMlOc": "Menu",
"krEziQ": "Get in touch",
"8kyEWd": "A quantile represents a specific percentile in your dataset.",
"kd0Igx": "For example, p50 is the 50th percentile - the point below which 50% of data falls. Higher percentiles include more data and highlight the upper range.",
"BQBZU+": "All Systems Operational",
"b9fOA1": "Degraded Performance",
"80EXUh": "Downtime Performance",
"dudqv/": "Maintenance",
"u++vY3": "No reports found",
"2HGztY": "No reports found for this status page.",
"50SA6J": "No public monitors",
"FHrzf5": "No public monitors have been added to this page.",
"2syGZB": "Report resolved",
"heezSZ": "(in {duration})",
"lKJjwW": "({timeFromLast} earlier)",
"W6nSYE": "Resolved",
"1P6GMj": "Monitoring",
"7cv4Uf": "Identified",
"/GKH/w": "Investigating",
"VaZnIX": "(for {duration})",
"FDReLp": "No recent notifications",
"qDj0JR": "There have been no reports within the last 7 days.",
"CYs0LF": "View events history",
"kkpP2k": "today",
"Dnob31": "Operational",
"VQDmmK": "Degraded",
"JOZGPR": "Downtime",
"3Vaz8F": "Status tracker",
"apbxET": "Day {n} status",
"GbVCQb": "Click again to unpin",
"myq2ZL": "Normal",
"KN7zKn": "Error",
"D3rOMr": "No Data",
"2wsjxR": "ongoing",
"jC7BY1": "across {duration}",
"uPb/gh": "Get updates",
"sjzDbu": "Slack",
"q0qMyV": "RSS",
"9y9QQh": "JSON",
"waUHa4": "SSH",
"cVqFq/": "Get email notifications whenever a report has been created or resolved",
"gczcC5": "Subscribe",
"8OoV56": "Get the RSS feed",
"Auj/Ki": "Get the Atom feed",
"SyYroX": "Get the JSON updates",
"PSqtlY": "Get status via SSH",
"rptmhC": "For status updates in Slack, paste the text below into any channel.",
"45YlLU": "Validate your email to receive updates and you are all set."
}
131 changes: 131 additions & 0 deletions apps/status-page/messages/fr.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
{
"Y9HHck": "S'authentifier",
"1QcGkA": "Entrez votre email pour recevoir un lien magique d'accès à la page de statut. Remarque : seuls les emails provenant de domaines approuvés sont acceptés.",
"txkW56": "Envoi en cours...",
"wSZR47": "Envoyer",
"OrFVks": "Vérifiez votre boîte de réception !",
"n36zhX": "Accédez à la page de statut en cliquant sur le lien dans l'email.",
"qIAQSi": "Page protégée",
"lbw10C": "Entrez le mot de passe pour accéder à la page de statut.",
"t262xH": "L'email et l'URL de redirection sont requis",
"DwevKz": "Une erreur inattendue s'est produite lors de la connexion",
"Ppx673": "Rapports",
"JCMXwP": "Maintenances",
"I7B7SH": "Aucune maintenance trouvée",
"OSI607": "Aucune maintenance trouvée pour cette page de statut.",
"a9S/OH": "Maintenance introuvable",
"HSv9BP": "La maintenance que vous recherchez n'existe pas.",
"VL1Y/1": "Rapport introuvable",
"Ew1f8q": "Le rapport que vous recherchez n'existe pas.",
"wkVkCX": "Désabonnement réussi",
"9qFG9F": "Échec du désabonnement",
"PV34S9": "Jeton d'abonnement invalide",
"ar0fZ/": "Ce jeton d'abonnement n'est plus valide. Vous vous êtes peut-être déjà désabonné ou le lien a expiré.",
"orvpWh": "Retour",
"K8kTfz": "Gérez votre abonnement pour recevoir les mises à jour de la page de statut.",
"3JgeEq": "Désabonné le {date}",
"RXTZq5": "Désabonnement en cours...",
"cctOA4": "Se désabonner",
"jHSHdV": "Êtes-vous sûr de vouloir vous désabonner de cette page de statut ? Vous ne recevrez plus de mises à jour.",
"47FYwb": "Annuler",
"awr0AJ": "Moniteur introuvable",
"CVsoUM": "Le moniteur que vous recherchez n'existe pas.",
"BRGcS0": "Latence globale",
"9vqdq3": "Latence par région",
"fFOayY": "régions",
"u81G9+": "Disponibilité",
"i2FBWn": "vérifications",
"G5Lt80": "La latence agrégée de toutes les régions actives basée sur différents quantiles.",
"YV7rXP": "Latence par région",
"6zzIEm": "Latence par région au quantile p75, triée par région la plus lente. Comparez jusqu'à 6 régions.",
"6pCzRs": "Disponibilité totale",
"zL23+z": "Valeurs principales de disponibilité, en toute transparence.",
"gjBiyj": "Chargement...",
"/72cxa": "Lien invalide ou expiré",
"R10mIw": "Ce lien de désabonnement n'est plus valide. Vous vous êtes peut-être déjà désabonné.",
"yFi/8F": "Désabonnement réussi",
"CmelO7": "Vous ne recevrez plus de notifications par email de {pageName}.",
"JqiqNj": "Une erreur est survenue",
"TnvU0H": "Veuillez réessayer ou contacter le support si le problème persiste.",
"uW0VWi": "Se désabonner des notifications",
"deCYKO": "Vous êtes sur le point de désabonner {email} des mises à jour de statut de {pageName}.",
"5HvAzP": "Prêt à recevoir les mises à jour pour {email} !",
"ywcUO4": "Patientez, nous confirmons votre abonnement",
"0Azlrb": "Gérer",
"cyR7Kh": "Retour",
"2yCGR2": "Lien copié dans le presse-papiers",
"u5aHb4": "Copier le lien",
"m5BctM": "Légende du graphique",
"csFahs": "Relatif",
"oBoa2n": "Préréglages",
"gdve5D": "Plage personnalisée",
"mOFG3K": "Début",
"3JVa6k": "Fin",
"79eRW1": "Confirmation en cours...",
"dX7+Rv": "Confirmé",
"m0fapd": "Échec de la confirmation",
"sy+pv5": "Email",
"9Utk00": "Mise à jour de l'abonnement...",
"Eq5gCU": "Abonnement mis à jour",
"qp+wDV": "Échec de la mise à jour de l'abonnement",
"d/jCcy": "S'abonner à des composants spécifiques",
"FlVuUh": "Aucun composant auquel s'abonner",
"8aUjqQ": "Cette page de statut n'a aucun composant auquel s'abonner.",
"5sg7KC": "Mot de passe",
"IGY48m": "Abonnement en cours...",
"Pgb3Xj": "Abonné",
"WOH7Yj": "Échec de l'abonnement",
"L7z2/k": "Cette page n'a aucun composant auquel s'abonner.",
"NOyDVq": "propulsé par",
"tzMNF3": "Statut",
"ZvKSfJ": "Événements",
"xJrRMG": "Moniteurs",
"tKMlOc": "Menu",
"krEziQ": "Nous contacter",
"8kyEWd": "Un quantile représente un percentile spécifique dans votre jeu de données.",
"kd0Igx": "Par exemple, p50 est le 50e percentile — le point en dessous duquel 50 % des données se situent. Les percentiles plus élevés incluent plus de données et mettent en évidence la plage supérieure.",
"BQBZU+": "Tous les systèmes sont opérationnels",
"b9fOA1": "Performances dégradées",
"80EXUh": "Performances en panne",
"dudqv/": "Maintenance",
"u++vY3": "Aucun rapport trouvé",
"2HGztY": "Aucun rapport trouvé pour cette page de statut.",
"50SA6J": "Aucun moniteur public",
"FHrzf5": "Aucun moniteur public n'a été ajouté à cette page.",
"2syGZB": "Rapport résolu",
"heezSZ": "(en {duration})",
"lKJjwW": "({timeFromLast} plus tôt)",
"W6nSYE": "Résolu",
"1P6GMj": "Surveillance",
"7cv4Uf": "Identifié",
"/GKH/w": "En cours d'investigation",
"VaZnIX": "(pendant {duration})",
"FDReLp": "Aucune notification récente",
"qDj0JR": "Aucun rapport au cours des 7 derniers jours.",
"CYs0LF": "Voir l'historique des événements",
"kkpP2k": "aujourd'hui",
"Dnob31": "Opérationnel",
"VQDmmK": "Dégradé",
"JOZGPR": "En panne",
"3Vaz8F": "Suivi de statut",
"apbxET": "Statut du jour {n}",
"GbVCQb": "Cliquez à nouveau pour désépingler",
"myq2ZL": "Normal",
"KN7zKn": "Erreur",
"D3rOMr": "Aucune donnée",
"2wsjxR": "en cours",
"jC7BY1": "sur {duration}",
"uPb/gh": "Recevoir les mises à jour",
"sjzDbu": "Slack",
"q0qMyV": "RSS",
"9y9QQh": "JSON",
"waUHa4": "SSH",
"cVqFq/": "Recevez des notifications par email à chaque création ou résolution d'un rapport",
"gczcC5": "S'abonner",
"8OoV56": "Obtenir le flux RSS",
"Auj/Ki": "Obtenir le flux Atom",
"SyYroX": "Obtenir les mises à jour JSON",
"PSqtlY": "Obtenir le statut via SSH",
"rptmhC": "Pour recevoir les mises à jour dans Slack, collez le texte ci-dessous dans n'importe quel canal.",
"45YlLU": "Validez votre email pour recevoir les mises à jour et le tour est joué."
}
Loading
Loading