diff --git a/apps/status-page/messages/de.json b/apps/status-page/messages/de.json index f34b0822..033e120d 100644 --- a/apps/status-page/messages/de.json +++ b/apps/status-page/messages/de.json @@ -11,18 +11,19 @@ "DwevKz": "Bei der Anmeldung ist ein unerwarteter Fehler aufgetreten", "xOqgA3": "Zugriff eingeschränkt", "U2RCyj": "Diese Statusseite ist nur über bestimmte IPv4-Netzwerke erreichbar. Wenden Sie sich an Ihren Netzwerkadministrator, um Zugriff zu erhalten.", + "dcqxLR": "letzter Tag", "Ppx673": "Berichte", "JCMXwP": "Wartungen", "I7B7SH": "Keine Wartungen gefunden", "OSI607": "Keine Wartungen für diese Statusseite gefunden.", - "a9S/OH": "Wartung nicht gefunden", + "a9S_OH": "Wartung nicht gefunden", "HSv9BP": "Die gesuchte Wartung existiert nicht.", - "VL1Y/1": "Bericht nicht gefunden", + "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.", + "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}", @@ -35,17 +36,17 @@ "BRGcS0": "Globale Latenz", "9vqdq3": "Regionale Latenz", "fFOayY": "Regionen", - "u81G9+": "Verfügbarkeit", + "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.", + "zL23-z": "Hauptwerte der Verfügbarkeit, transparent dargestellt.", "gjBiyj": "Wird geladen...", - "/72cxa": "Ungültiger oder abgelaufener Link", + "_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", + "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.", @@ -64,32 +65,32 @@ "mOFG3K": "Start", "3JVa6k": "Ende", "79eRW1": "Bestätigung läuft...", - "dX7+Rv": "Bestätigt", + "dX7-Rv": "Bestätigt", "m0fapd": "Bestätigung fehlgeschlagen", - "sy+pv5": "E-Mail", + "sy-pv5": "E-Mail", "9Utk00": "Abonnement wird aktualisiert...", "Eq5gCU": "Abonnement aktualisiert", - "qp+wDV": "Aktualisierung des Abonnements fehlgeschlagen", - "d/jCcy": "Bestimmte Komponenten abonnieren", + "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.", - "BQBZU+": "Alle Systeme betriebsbereit", + "L7z2_k": "Diese Seite hat keine Komponenten zum Abonnieren.", + "BQBZU-": "Alle Systeme betriebsbereit", "Dnob31": "Betriebsbereit", "b9fOA1": "Eingeschränkte Leistung", "VQDmmK": "Eingeschränkt", "80EXUh": "Ausfall", "JOZGPR": "Ausfall", - "dudqv/": "Wartung", + "dudqv_": "Wartung", "D3rOMr": "Keine Daten", "W6nSYE": "Gelöst", "1P6GMj": "Überwachung", "7cv4Uf": "Identifiziert", - "/GKH/w": "Wird untersucht", + "_GKH_w": "Wird untersucht", "myq2ZL": "Normal", "KN7zKn": "Fehler", "SsC4IV": "Eingeschränkte Leistung", @@ -100,17 +101,17 @@ "2syGZB": "Bericht gelöst", "FDReLp": "Keine aktuellen Benachrichtigungen", "qDj0JR": "In den letzten 7 Tagen gab es keine Berichte.", - "u++vY3": "Keine Berichte gefunden", + "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.", "3cc4Ct": "Hell", "tOdNiY": "Dunkel", - "+CwN9C": "System", + "-CwN9C": "System", "EQpyb8": "Design umschalten", - "uPb/gh": "Updates erhalten", + "uPb_gh": "Updates erhalten", "8OoV56": "RSS-Feed abrufen", - "Auj/Ki": "Atom-Feed abrufen", + "Auj_Ki": "Atom-Feed abrufen", "SyYroX": "JSON-Updates abrufen", "rptmhC": "Für Status-Updates in Slack fügen Sie den folgenden Text in einen beliebigen Kanal ein.", "PSqtlY": "Status über SSH abrufen", @@ -135,8 +136,7 @@ "q0qMyV": "RSS", "9y9QQh": "JSON", "waUHa4": "SSH", - "cVqFq/": "Erhalten Sie E-Mail-Benachrichtigungen, wenn ein Bericht erstellt oder gelöst wird", + "cVqFq_": "Erhalten Sie E-Mail-Benachrichtigungen, wenn ein Bericht erstellt oder gelöst wird", "gczcC5": "Abonnieren", - "45YlLU": "Bestätigen Sie Ihre E-Mail-Adresse, um Updates zu erhalten, und schon sind Sie fertig.", - "dcqxLR": "letzter Tag" + "45YlLU": "Bestätigen Sie Ihre E-Mail-Adresse, um Updates zu erhalten, und schon sind Sie fertig." } diff --git a/apps/status-page/messages/en.json b/apps/status-page/messages/en.json index 12a25ad4..42c811a6 100644 --- a/apps/status-page/messages/en.json +++ b/apps/status-page/messages/en.json @@ -11,18 +11,19 @@ "DwevKz": "An unexpected error occurred during sign in", "xOqgA3": "Access Restricted", "U2RCyj": "This status page is only accessible from specific IPv4 networks. Reach out to your network administrator to get access.", + "dcqxLR": "last day", "Ppx673": "Reports", "JCMXwP": "Maintenances", "I7B7SH": "No maintenances found", "OSI607": "No maintenances found for this status page.", - "a9S/OH": "Maintenance not found", + "a9S_OH": "Maintenance not found", "HSv9BP": "The maintenance you are looking for does not exist.", - "VL1Y/1": "Report not found", + "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.", + "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}", @@ -35,17 +36,17 @@ "BRGcS0": "Global Latency", "9vqdq3": "Region Latency", "fFOayY": "regions", - "u81G9+": "Uptime", + "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.", + "zL23-z": "Main values of uptime and availability, transparent.", "gjBiyj": "Loading...", - "/72cxa": "Invalid or expired link", + "_72cxa": "Invalid or expired link", "R10mIw": "This unsubscribe link is no longer valid. You may have already unsubscribed.", - "yFi/8F": "Successfully 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.", @@ -64,32 +65,32 @@ "mOFG3K": "Start", "3JVa6k": "End", "79eRW1": "Confirming...", - "dX7+Rv": "Confirmed", + "dX7-Rv": "Confirmed", "m0fapd": "Failed to confirm", - "sy+pv5": "Email", + "sy-pv5": "Email", "9Utk00": "Updating subscription...", "Eq5gCU": "Subscription updated", - "qp+wDV": "Failed to update subscription", - "d/jCcy": "Subscribe to specific components", + "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.", - "BQBZU+": "All Systems Operational", + "L7z2_k": "This page has no components to subscribe to.", + "BQBZU-": "All Systems Operational", "Dnob31": "Operational", "b9fOA1": "Degraded Performance", "VQDmmK": "Degraded", "80EXUh": "Downtime Performance", "JOZGPR": "Downtime", - "dudqv/": "Maintenance", + "dudqv_": "Maintenance", "D3rOMr": "No Data", "W6nSYE": "Resolved", "1P6GMj": "Monitoring", "7cv4Uf": "Identified", - "/GKH/w": "Investigating", + "_GKH_w": "Investigating", "myq2ZL": "Normal", "KN7zKn": "Error", "SsC4IV": "Degraded performance", @@ -100,17 +101,17 @@ "2syGZB": "Report resolved", "FDReLp": "No recent notifications", "qDj0JR": "There have been no reports within the last 7 days.", - "u++vY3": "No reports found", + "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.", "3cc4Ct": "Light", "tOdNiY": "Dark", - "+CwN9C": "System", + "-CwN9C": "System", "EQpyb8": "Toggle theme", - "uPb/gh": "Get updates", + "uPb_gh": "Get updates", "8OoV56": "Get the RSS feed", - "Auj/Ki": "Get the Atom feed", + "Auj_Ki": "Get the Atom feed", "SyYroX": "Get the JSON updates", "rptmhC": "For status updates in Slack, paste the text below into any channel.", "PSqtlY": "Get status via SSH", @@ -135,8 +136,7 @@ "q0qMyV": "RSS", "9y9QQh": "JSON", "waUHa4": "SSH", - "cVqFq/": "Get email notifications whenever a report has been created or resolved", + "cVqFq_": "Get email notifications whenever a report has been created or resolved", "gczcC5": "Subscribe", - "45YlLU": "Validate your email to receive updates and you are all set.", - "dcqxLR": "last day" + "45YlLU": "Validate your email to receive updates and you are all set." } diff --git a/apps/status-page/messages/fr.json b/apps/status-page/messages/fr.json index 548bd3d0..c47e7217 100644 --- a/apps/status-page/messages/fr.json +++ b/apps/status-page/messages/fr.json @@ -11,18 +11,19 @@ "DwevKz": "Une erreur inattendue s'est produite lors de la connexion", "xOqgA3": "Accès restreint", "U2RCyj": "Cette page de statut n'est accessible que depuis des réseaux IPv4 spécifiques. Contactez votre administrateur réseau pour obtenir l'accès.", + "dcqxLR": "dernier jour", "Ppx673": "Rapports", "JCMXwP": "Maintenances", "I7B7SH": "Aucune maintenance trouvée", "OSI607": "Aucune maintenance trouvée pour cette page de statut.", - "a9S/OH": "Maintenance introuvable", + "a9S_OH": "Maintenance introuvable", "HSv9BP": "La maintenance que vous recherchez n'existe pas.", - "VL1Y/1": "Rapport introuvable", + "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é.", + "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}", @@ -35,17 +36,17 @@ "BRGcS0": "Latence globale", "9vqdq3": "Latence par région", "fFOayY": "régions", - "u81G9+": "Disponibilité", + "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.", + "zL23-z": "Valeurs principales de disponibilité, en toute transparence.", "gjBiyj": "Chargement...", - "/72cxa": "Lien invalide ou expiré", + "_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", + "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.", @@ -64,32 +65,32 @@ "mOFG3K": "Début", "3JVa6k": "Fin", "79eRW1": "Confirmation en cours...", - "dX7+Rv": "Confirmé", + "dX7-Rv": "Confirmé", "m0fapd": "Échec de la confirmation", - "sy+pv5": "Email", + "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", + "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.", - "BQBZU+": "Tous les systèmes sont opérationnels", + "L7z2_k": "Cette page n'a aucun composant auquel s'abonner.", + "BQBZU-": "Tous les systèmes sont opérationnels", "Dnob31": "Opérationnel", "b9fOA1": "Performances dégradées", "VQDmmK": "Dégradé", "80EXUh": "Performances en panne", "JOZGPR": "En panne", - "dudqv/": "Maintenance", + "dudqv_": "Maintenance", "D3rOMr": "Aucune donnée", "W6nSYE": "Résolu", "1P6GMj": "Surveillance", "7cv4Uf": "Identifié", - "/GKH/w": "En cours d'investigation", + "_GKH_w": "En cours d'investigation", "myq2ZL": "Normal", "KN7zKn": "Erreur", "SsC4IV": "Performances dégradées", @@ -100,17 +101,17 @@ "2syGZB": "Rapport résolu", "FDReLp": "Aucune notification récente", "qDj0JR": "Aucun rapport au cours des 7 derniers jours.", - "u++vY3": "Aucun rapport trouvé", + "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.", "3cc4Ct": "Clair", "tOdNiY": "Sombre", - "+CwN9C": "Système", + "-CwN9C": "Système", "EQpyb8": "Changer de thème", - "uPb/gh": "Mises à jour", + "uPb_gh": "Mises à jour", "8OoV56": "Obtenir le flux RSS", - "Auj/Ki": "Obtenir le flux Atom", + "Auj_Ki": "Obtenir le flux Atom", "SyYroX": "Obtenir les mises à jour JSON", "rptmhC": "Pour recevoir les mises à jour dans Slack, collez le texte ci-dessous dans n'importe quel canal.", "PSqtlY": "Obtenir le statut via SSH", @@ -135,8 +136,7 @@ "q0qMyV": "RSS", "9y9QQh": "JSON", "waUHa4": "SSH", - "cVqFq/": "Recevez des notifications par email à chaque création ou résolution d'un rapport", + "cVqFq_": "Recevez des notifications par email à chaque création ou résolution d'un rapport", "gczcC5": "S'abonner", - "45YlLU": "Validez votre email pour recevoir les mises à jour et le tour est joué.", - "dcqxLR": "dernier jour" + "45YlLU": "Validez votre email pour recevoir les mises à jour et le tour est joué." } diff --git a/apps/status-page/messages/hi.json b/apps/status-page/messages/hi.json index 80753c36..d1166871 100644 --- a/apps/status-page/messages/hi.json +++ b/apps/status-page/messages/hi.json @@ -11,18 +11,19 @@ "DwevKz": "साइन इन के दौरान अनपेक्षित त्रुटि हुई", "xOqgA3": "प्रवेश प्रतिबंधित", "U2RCyj": "यह स्थिति पृष्ठ केवल विशिष्ट IPv4 नेटवर्क से सुलभ है। प्रवेश प्राप्त करने के लिए अपने नेटवर्क प्रशासक से संपर्क करें।", + "dcqxLR": "पिछला दिन", "Ppx673": "रिपोर्ट", "JCMXwP": "रखरखाव", "I7B7SH": "कोई रखरखाव नहीं मिला", "OSI607": "इस स्थिति पृष्ठ के लिए कोई रखरखाव नहीं मिला।", - "a9S/OH": "रखरखाव नहीं मिला", + "a9S_OH": "रखरखाव नहीं मिला", "HSv9BP": "आप जिस रखरखाव की तलाश कर रहे हैं वह मौजूद नहीं है।", - "VL1Y/1": "रिपोर्ट नहीं मिली", + "VL1Y_1": "रिपोर्ट नहीं मिली", "Ew1f8q": "आप जिस रिपोर्ट की तलाश कर रहे हैं वह मौजूद नहीं है।", "wkVkCX": "सफलतापूर्वक अनसब्सक्राइब किया गया", "9qFG9F": "अनसब्सक्राइब करने में विफल", "PV34S9": "अमान्य सदस्यता टोकन", - "ar0fZ/": "यह सदस्यता टोकन अब वैध नहीं है। आप पहले से अनसब्सक्राइब हो सकते हैं या लिंक की समय सीमा समाप्त हो सकती है।", + "ar0fZ_": "यह सदस्यता टोकन अब वैध नहीं है। आप पहले से अनसब्सक्राइब हो सकते हैं या लिंक की समय सीमा समाप्त हो सकती है।", "orvpWh": "वापस जाएं", "K8kTfz": "स्थिति पृष्ठ पर अपडेट प्राप्त करने के लिए अपनी सदस्यता प्रबंधित करें।", "3JgeEq": "{date} को अनसब्सक्राइब किया गया", @@ -35,17 +36,17 @@ "BRGcS0": "वैश्विक विलंबता", "9vqdq3": "क्षेत्र विलंबता", "fFOayY": "क्षेत्र", - "u81G9+": "अपटाइम", + "u81G9-": "अपटाइम", "i2FBWn": "जांच", "G5Lt80": "विभिन्न क्वांटाइल के आधार पर सभी सक्रिय क्षेत्रों से एकत्रित विलंबता।", "YV7rXP": "क्षेत्र द्वारा विलंबता", "6zzIEm": "p75 क्वांटाइल के अनुसार क्षेत्र विलंबता, सबसे धीमे क्षेत्र द्वारा क्रमबद्ध। 6 क्षेत्रों तक की तुलना करें।", "6pCzRs": "कुल अपटाइम", - "zL23+z": "अपटाइम और उपलब्धता के मुख्य मूल्य, पारदर्शी।", + "zL23-z": "अपटाइम और उपलब्धता के मुख्य मूल्य, पारदर्शी।", "gjBiyj": "लोड हो रहा है...", - "/72cxa": "अमान्य या समाप्त लिंक", + "_72cxa": "अमान्य या समाप्त लिंक", "R10mIw": "यह अनसब्सक्राइब लिंक अब वैध नहीं है। आप पहले से अनसब्सक्राइब हो सकते हैं।", - "yFi/8F": "सफलतापूर्वक अनसब्सक्राइब किया गया", + "yFi_8F": "सफलतापूर्वक अनसब्सक्राइब किया गया", "CmelO7": "आप अब {pageName} से ईमेल सूचनाएं प्राप्त नहीं करेंगे।", "JqiqNj": "कुछ गलत हुआ", "TnvU0H": "कृपया पुनः प्रयास करें या यदि समस्या बनी रहे तो सहायता से संपर्क करें।", @@ -64,32 +65,32 @@ "mOFG3K": "शुरुआत", "3JVa6k": "अंत", "79eRW1": "पुष्टि की जा रही है...", - "dX7+Rv": "पुष्टि हुई", + "dX7-Rv": "पुष्टि हुई", "m0fapd": "पुष्टि करने में विफल", - "sy+pv5": "ईमेल", + "sy-pv5": "ईमेल", "9Utk00": "सदस्यता अपडेट की जा रही है...", "Eq5gCU": "सदस्यता अपडेट की गई", - "qp+wDV": "सदस्यता अपडेट करने में विफल", - "d/jCcy": "विशिष्ट घटकों की सदस्यता लें", + "qp-wDV": "सदस्यता अपडेट करने में विफल", + "d_jCcy": "विशिष्ट घटकों की सदस्यता लें", "FlVuUh": "कोई घटक सदस्यता के लिए नहीं", "8aUjqQ": "इस स्थिति पृष्ठ में कोई घटक सदस्यता के लिए नहीं है।", "5sg7KC": "पासवर्ड", "IGY48m": "सदस्यता की जा रही है...", "Pgb3Xj": "सदस्यता ली गई", "WOH7Yj": "सदस्यता लेने में विफल", - "L7z2/k": "इस पृष्ठ में कोई घटक सदस्यता के लिए नहीं है।", - "BQBZU+": "सभी सिस्टम कार्यरत", + "L7z2_k": "इस पृष्ठ में कोई घटक सदस्यता के लिए नहीं है।", + "BQBZU-": "सभी सिस्टम कार्यरत", "Dnob31": "कार्यरत", "b9fOA1": "खराब प्रदर्शन", "VQDmmK": "खराब", "80EXUh": "डाउनटाइम प्रदर्शन", "JOZGPR": "डाउनटाइम", - "dudqv/": "अनुरक्षण", + "dudqv_": "अनुरक्षण", "D3rOMr": "डेटा नहीं", "W6nSYE": "हल किया", "1P6GMj": "निगरानी", "7cv4Uf": "पहचाना गया", - "/GKH/w": "जांच", + "_GKH_w": "जांच", "myq2ZL": "सामान्य", "KN7zKn": "त्रुटि", "SsC4IV": "खराब प्रदर्शन", @@ -100,17 +101,17 @@ "2syGZB": "रिपोर्ट समाधान किया गया", "FDReLp": "कोई हाल की सूचनाएं नहीं", "qDj0JR": "पिछले 7 दिनों में कोई रिपोर्ट नहीं।", - "u++vY3": "कोई रिपोर्ट नहीं मिली", + "u--vY3": "कोई रिपोर्ट नहीं मिली", "2HGztY": "इस स्थिति पृष्ठ के लिए कोई रिपोर्ट नहीं मिली।", "50SA6J": "कोई सार्वजनिक मॉनिटर नहीं", "FHrzf5": "इस पृष्ठ पर कोई सार्वजनिक मॉनिटर जोड़े गए नहीं हैं।", "3cc4Ct": "प्रकाश", "tOdNiY": "डार्क", - "+CwN9C": "सिस्टम", + "-CwN9C": "सिस्टम", "EQpyb8": "थीम टॉगल करें", - "uPb/gh": "अपडेट प्राप्त करें", + "uPb_gh": "अपडेट प्राप्त करें", "8OoV56": "RSS फीड प्राप्त करें", - "Auj/Ki": "Atom फीड प्राप्त करें", + "Auj_Ki": "Atom फीड प्राप्त करें", "SyYroX": "JSON अपडेट प्राप्त करें", "rptmhC": "Slack में स्थिति अपडेट के लिए, नीचे दिया गया पाठ किसी भी चैनल में पेस्ट करें।", "PSqtlY": "SSH के माध्यम से स्थिति प्राप्त करें", @@ -135,8 +136,7 @@ "q0qMyV": "RSS", "9y9QQh": "JSON", "waUHa4": "SSH", - "cVqFq/": "जब भी कोई रिपोर्ट बनाई जाती है या समाधान की जाती है तो ईमेल सूचनाएं प्राप्त करें", + "cVqFq_": "जब भी कोई रिपोर्ट बनाई जाती है या समाधान की जाती है तो ईमेल सूचनाएं प्राप्त करें", "gczcC5": "सदस्यता लें", - "45YlLU": "अपडेट प्राप्त करने के लिए अपने ईमेल की पुष्टि करें और आप तैयार हैं।", - "dcqxLR": "पिछला दिन" + "45YlLU": "अपडेट प्राप्त करने के लिए अपने ईमेल की पुष्टि करें और आप तैयार हैं।" } diff --git a/apps/status-page/messages/ja.json b/apps/status-page/messages/ja.json index 23c47349..cfee33b1 100644 --- a/apps/status-page/messages/ja.json +++ b/apps/status-page/messages/ja.json @@ -11,18 +11,19 @@ "DwevKz": "サインイン中に予期しないエラーが発生しました", "xOqgA3": "アクセス制限", "U2RCyj": "このステータスページは特定の IPv4 ネットワークからのみアクセスできます。アクセス権については、ネットワーク管理者にお問い合わせください。", + "dcqxLR": "過去 1 日", "Ppx673": "レポート", "JCMXwP": "メンテナンス", "I7B7SH": "メンテナンスはありません", "OSI607": "このステータスページにはメンテナンスがありません。", - "a9S/OH": "メンテナンスが見つかりません", + "a9S_OH": "メンテナンスが見つかりません", "HSv9BP": "お探しのメンテナンスは存在しません。", - "VL1Y/1": "レポートが見つかりません", + "VL1Y_1": "レポートが見つかりません", "Ew1f8q": "お探しのレポートは存在しません。", "wkVkCX": "登録を解除しました", "9qFG9F": "登録解除に失敗しました", "PV34S9": "無効な登録トークンです", - "ar0fZ/": "この登録トークンは無効です。すでに登録解除済みか、リンクの有効期限が切れている可能性があります。", + "ar0fZ_": "この登録トークンは無効です。すでに登録解除済みか、リンクの有効期限が切れている可能性があります。", "orvpWh": "戻る", "K8kTfz": "ステータスページの更新情報を受け取るための登録を管理します。", "3JgeEq": "{date}に登録解除しました", @@ -35,17 +36,17 @@ "BRGcS0": "グローバルレイテンシ", "9vqdq3": "リージョンレイテンシ", "fFOayY": "リージョン", - "u81G9+": "稼働率", + "u81G9-": "稼働率", "i2FBWn": "チェック", "G5Lt80": "すべてのアクティブなリージョンを集計した、パーセンタイル別のレイテンシです。", "YV7rXP": "リージョン別レイテンシ", "6zzIEm": "リージョンごとの p75 レイテンシを、遅いリージョンから順に表示します。最大 6 リージョンまで比較できます。", "6pCzRs": "合計稼働率", - "zL23+z": "稼働率と可用性の主要な値を、透明性をもって公開しています。", + "zL23-z": "稼働率と可用性の主要な値を、透明性をもって公開しています。", "gjBiyj": "読み込み中...", - "/72cxa": "無効または期限切れのリンクです", + "_72cxa": "無効または期限切れのリンクです", "R10mIw": "この登録解除リンクは無効です。すでに登録解除済みの可能性があります。", - "yFi/8F": "登録を解除しました", + "yFi_8F": "登録を解除しました", "CmelO7": "今後、{pageName}からのメール通知は届きません。", "JqiqNj": "問題が発生しました", "TnvU0H": "もう一度お試しください。問題が解決しない場合はサポートにお問い合わせください。", @@ -64,32 +65,32 @@ "mOFG3K": "開始", "3JVa6k": "終了", "79eRW1": "確認中...", - "dX7+Rv": "確認済み", + "dX7-Rv": "確認済み", "m0fapd": "確認に失敗しました", - "sy+pv5": "メールアドレス", + "sy-pv5": "メールアドレス", "9Utk00": "登録を更新中...", "Eq5gCU": "登録を更新しました", - "qp+wDV": "登録の更新に失敗しました", - "d/jCcy": "特定のコンポーネントを登録", + "qp-wDV": "登録の更新に失敗しました", + "d_jCcy": "特定のコンポーネントを登録", "FlVuUh": "登録できるコンポーネントがありません", "8aUjqQ": "このステータスページには登録できるコンポーネントがありません。", "5sg7KC": "パスワード", "IGY48m": "登録中...", "Pgb3Xj": "登録済み", "WOH7Yj": "登録に失敗しました", - "L7z2/k": "このページには登録できるコンポーネントがありません。", - "BQBZU+": "全システム正常稼働", + "L7z2_k": "このページには登録できるコンポーネントがありません。", + "BQBZU-": "全システム正常稼働", "Dnob31": "正常稼働", "b9fOA1": "性能低下", "VQDmmK": "性能低下", "80EXUh": "ダウンタイム", "JOZGPR": "ダウンタイム", - "dudqv/": "メンテナンス", + "dudqv_": "メンテナンス", "D3rOMr": "データなし", "W6nSYE": "解決済み", "1P6GMj": "経過観察", "7cv4Uf": "原因特定", - "/GKH/w": "調査中", + "_GKH_w": "調査中", "myq2ZL": "正常", "KN7zKn": "エラー", "SsC4IV": "性能低下", @@ -100,17 +101,17 @@ "2syGZB": "解決済みのレポート", "FDReLp": "最近の更新はありません", "qDj0JR": "過去 7 日間にレポートはありません。", - "u++vY3": "レポートはありません", + "u--vY3": "レポートはありません", "2HGztY": "このステータスページにはレポートがありません。", "50SA6J": "公開されたモニターはありません", "FHrzf5": "このページには公開されたモニターが追加されていません。", "3cc4Ct": "ライト", "tOdNiY": "ダーク", - "+CwN9C": "システム", + "-CwN9C": "システム", "EQpyb8": "テーマを切り替え", - "uPb/gh": "更新を受け取る", + "uPb_gh": "更新を受け取る", "8OoV56": "RSS フィードを取得", - "Auj/Ki": "Atom フィードを取得", + "Auj_Ki": "Atom フィードを取得", "SyYroX": "JSON で更新情報を取得", "rptmhC": "Slack でステータス更新を受け取るには、以下のテキストを任意のチャンネルに貼り付けてください。", "PSqtlY": "SSH でステータスを取得", @@ -135,8 +136,7 @@ "q0qMyV": "RSS", "9y9QQh": "JSON", "waUHa4": "SSH", - "cVqFq/": "レポートが作成または解決されたときにメール通知を受け取る", + "cVqFq_": "レポートが作成または解決されたときにメール通知を受け取る", "gczcC5": "登録", - "45YlLU": "メールアドレスを確認すれば、更新情報を受け取る準備は完了です。", - "dcqxLR": "過去 1 日" + "45YlLU": "メールアドレスを確認すれば、更新情報を受け取る準備は完了です。" } diff --git a/apps/status-page/messages/ko.json b/apps/status-page/messages/ko.json index 6263a9b0..060fb776 100644 --- a/apps/status-page/messages/ko.json +++ b/apps/status-page/messages/ko.json @@ -11,18 +11,19 @@ "DwevKz": "로그인 중 예기치 않은 오류가 발생했습니다", "xOqgA3": "접근 제한", "U2RCyj": "이 상태 페이지는 특정 IPv4 네트워크에서만 접근할 수 있습니다. 네트워크 관리자에게 문의하여 접근 권한을 받으세요.", + "dcqxLR": "지난 하루", "Ppx673": "리포트", "JCMXwP": "점검", "I7B7SH": "점검 없음", "OSI607": "이 상태 페이지에 등록된 점검이 없습니다.", - "a9S/OH": "점검을 찾을 수 없음", + "a9S_OH": "점검을 찾을 수 없음", "HSv9BP": "찾으시는 점검이 존재하지 않습니다.", - "VL1Y/1": "리포트를 찾을 수 없음", + "VL1Y_1": "리포트를 찾을 수 없음", "Ew1f8q": "찾으시는 리포트가 존재하지 않습니다.", "wkVkCX": "구독이 취소되었습니다", "9qFG9F": "구독 취소에 실패했습니다", "PV34S9": "유효하지 않은 구독 토큰", - "ar0fZ/": "이 구독 토큰은 더 이상 유효하지 않습니다. 이미 구독을 취소했거나 링크가 만료되었을 수 있습니다.", + "ar0fZ_": "이 구독 토큰은 더 이상 유효하지 않습니다. 이미 구독을 취소했거나 링크가 만료되었을 수 있습니다.", "orvpWh": "뒤로 가기", "K8kTfz": "상태 페이지 업데이트를 받으려면 구독을 관리하세요.", "3JgeEq": "{date}에 구독 취소됨", @@ -35,17 +36,17 @@ "BRGcS0": "글로벌 지연 시간", "9vqdq3": "지역별 지연 시간", "fFOayY": "지역", - "u81G9+": "가동 시간", + "u81G9-": "가동 시간", "i2FBWn": "체크", "G5Lt80": "다양한 분위수를 기준으로 모든 활성 지역에서 집계된 지연 시간입니다.", "YV7rXP": "지역별 지연 시간", "6zzIEm": "p75 분위수 기준 지역별 지연 시간으로, 가장 느린 지역부터 정렬됩니다. 최대 6개 지역을 비교할 수 있습니다.", "6pCzRs": "전체 가동 시간", - "zL23+z": "가동 시간 및 가용성의 주요 값을 투명하게 제공합니다.", + "zL23-z": "가동 시간 및 가용성의 주요 값을 투명하게 제공합니다.", "gjBiyj": "로딩 중...", - "/72cxa": "유효하지 않거나 만료된 링크", + "_72cxa": "유효하지 않거나 만료된 링크", "R10mIw": "이 구독 취소 링크는 더 이상 유효하지 않습니다. 이미 구독을 취소했을 수 있습니다.", - "yFi/8F": "구독이 성공적으로 취소되었습니다", + "yFi_8F": "구독이 성공적으로 취소되었습니다", "CmelO7": "{pageName}에서 더 이상 이메일 알림을 받지 않습니다.", "JqiqNj": "오류가 발생했습니다", "TnvU0H": "다시 시도하거나, 문제가 지속되면 지원팀에 문의하세요.", @@ -64,32 +65,32 @@ "mOFG3K": "시작", "3JVa6k": "종료", "79eRW1": "확인 중...", - "dX7+Rv": "확인됨", + "dX7-Rv": "확인됨", "m0fapd": "확인에 실패했습니다", - "sy+pv5": "이메일", + "sy-pv5": "이메일", "9Utk00": "구독 업데이트 중...", "Eq5gCU": "구독이 업데이트되었습니다", - "qp+wDV": "구독 업데이트에 실패했습니다", - "d/jCcy": "특정 구성 요소 구독", + "qp-wDV": "구독 업데이트에 실패했습니다", + "d_jCcy": "특정 구성 요소 구독", "FlVuUh": "구독할 구성 요소 없음", "8aUjqQ": "이 상태 페이지에는 구독할 구성 요소가 없습니다.", "5sg7KC": "비밀번호", "IGY48m": "구독 중...", "Pgb3Xj": "구독됨", "WOH7Yj": "구독에 실패했습니다", - "L7z2/k": "이 페이지에는 구독할 구성 요소가 없습니다.", - "BQBZU+": "모든 시스템 정상 작동", + "L7z2_k": "이 페이지에는 구독할 구성 요소가 없습니다.", + "BQBZU-": "모든 시스템 정상 작동", "Dnob31": "정상 작동", "b9fOA1": "성능 저하", "VQDmmK": "성능 저하", "80EXUh": "다운타임 성능", "JOZGPR": "다운타임", - "dudqv/": "점검", + "dudqv_": "점검", "D3rOMr": "데이터 없음", "W6nSYE": "해결됨", "1P6GMj": "모니터링 중", "7cv4Uf": "확인됨", - "/GKH/w": "조사 중", + "_GKH_w": "조사 중", "myq2ZL": "정상", "KN7zKn": "오류", "SsC4IV": "성능 저하", @@ -100,17 +101,17 @@ "2syGZB": "리포트 해결됨", "FDReLp": "최근 알림 없음", "qDj0JR": "최근 7일 이내에 리포트가 없습니다.", - "u++vY3": "리포트를 찾을 수 없음", + "u--vY3": "리포트를 찾을 수 없음", "2HGztY": "이 상태 페이지에 리포트가 없습니다.", "50SA6J": "공개 모니터 없음", "FHrzf5": "이 페이지에 추가된 공개 모니터가 없습니다.", "3cc4Ct": "라이트", "tOdNiY": "다크", - "+CwN9C": "시스템", + "-CwN9C": "시스템", "EQpyb8": "테마 전환", - "uPb/gh": "업데이트 받기", + "uPb_gh": "업데이트 받기", "8OoV56": "RSS 피드 받기", - "Auj/Ki": "Atom 피드 받기", + "Auj_Ki": "Atom 피드 받기", "SyYroX": "JSON 업데이트 받기", "rptmhC": "Slack에서 상태 업데이트를 받으려면 아래 텍스트를 채널에 붙여넣으세요.", "PSqtlY": "SSH로 상태 받기", @@ -135,8 +136,7 @@ "q0qMyV": "RSS", "9y9QQh": "JSON", "waUHa4": "SSH", - "cVqFq/": "리포트가 생성되거나 해결될 때마다 이메일 알림을 받으세요", + "cVqFq_": "리포트가 생성되거나 해결될 때마다 이메일 알림을 받으세요", "gczcC5": "구독", - "45YlLU": "이메일을 인증하면 업데이트를 받을 준비가 완료됩니다.", - "dcqxLR": "지난 하루" + "45YlLU": "이메일을 인증하면 업데이트를 받을 준비가 완료됩니다." } diff --git a/apps/status-page/messages/tr.json b/apps/status-page/messages/tr.json index 15efc19e..452ccbcb 100644 --- a/apps/status-page/messages/tr.json +++ b/apps/status-page/messages/tr.json @@ -11,18 +11,19 @@ "DwevKz": "Oturum açma sırasında beklenmeyen bir hata oluştu", "xOqgA3": "Erişim Kısıtlı", "U2RCyj": "Bu durum sayfasına yalnızca belirli IPv4 ağlarından erişilebilir. Erişim sağlamak için ağ yöneticinizle iletişime geçin.", + "dcqxLR": "son gün", "Ppx673": "Raporlar", "JCMXwP": "Bakım Çalışmaları", "I7B7SH": "Bakım çalışması bulunamadı", "OSI607": "Bu durum sayfası için bakım çalışması bulunamadı.", - "a9S/OH": "Bakım çalışması bulunamadı", + "a9S_OH": "Bakım çalışması bulunamadı", "HSv9BP": "Aradığınız bakım çalışması mevcut değil.", - "VL1Y/1": "Rapor bulunamadı", + "VL1Y_1": "Rapor bulunamadı", "Ew1f8q": "Aradığınız rapor mevcut değil.", "wkVkCX": "Abonelik başarıyla iptal edildi", "9qFG9F": "Abonelik iptal edilemedi", "PV34S9": "Geçersiz abonelik belirteci", - "ar0fZ/": "Bu abonelik belirteci artık geçerli değil. Zaten aboneliğinizi iptal etmiş olabilirsiniz veya bağlantının süresi dolmuş olabilir.", + "ar0fZ_": "Bu abonelik belirteci artık geçerli değil. Zaten aboneliğinizi iptal etmiş olabilirsiniz veya bağlantının süresi dolmuş olabilir.", "orvpWh": "Geri dön", "K8kTfz": "Durum sayfasındaki güncellemeleri almak için aboneliğinizi yönetin.", "3JgeEq": "{date} tarihinde abonelik iptal edildi", @@ -35,17 +36,17 @@ "BRGcS0": "Küresel Gecikme", "9vqdq3": "Bölgesel Gecikme", "fFOayY": "bölgeler", - "u81G9+": "Çalışma Süresi", + "u81G9-": "Çalışma Süresi", "i2FBWn": "kontroller", "G5Lt80": "Farklı yüzdelik dilimlere göre tüm aktif bölgelerden toplanan gecikme süresi.", "YV7rXP": "Bölgeye Göre Gecikme", "6zzIEm": "p75 yüzdelik dilimine göre bölgesel gecikme, en yavaş bölgeye göre sıralanmıştır. En fazla 6 bölgeyi karşılaştırabilirsiniz.", "6pCzRs": "Toplam Çalışma Süresi", - "zL23+z": "Çalışma süresi ve erişilebilirliğin ana değerleri, şeffaf.", + "zL23-z": "Çalışma süresi ve erişilebilirliğin ana değerleri, şeffaf.", "gjBiyj": "Yükleniyor...", - "/72cxa": "Geçersiz veya süresi dolmuş bağlantı", + "_72cxa": "Geçersiz veya süresi dolmuş bağlantı", "R10mIw": "Bu abonelik iptal bağlantısı artık geçerli değil. Zaten aboneliğinizi iptal etmiş olabilirsiniz.", - "yFi/8F": "Abonelik başarıyla iptal edildi", + "yFi_8F": "Abonelik başarıyla iptal edildi", "CmelO7": "{pageName} sayfasından artık e-posta bildirimleri almayacaksınız.", "JqiqNj": "Bir şeyler ters gitti", "TnvU0H": "Lütfen tekrar deneyin veya sorun devam ederse destek ekibiyle iletişime geçin.", @@ -64,32 +65,32 @@ "mOFG3K": "Başlangıç", "3JVa6k": "Bitiş", "79eRW1": "Onaylanıyor...", - "dX7+Rv": "Onaylandı", + "dX7-Rv": "Onaylandı", "m0fapd": "Onaylama başarısız oldu", - "sy+pv5": "E-posta", + "sy-pv5": "E-posta", "9Utk00": "Abonelik güncelleniyor...", "Eq5gCU": "Abonelik güncellendi", - "qp+wDV": "Abonelik güncellenemedi", - "d/jCcy": "Belirli bileşenlere abone ol", + "qp-wDV": "Abonelik güncellenemedi", + "d_jCcy": "Belirli bileşenlere abone ol", "FlVuUh": "Abone olunacak bileşen yok", "8aUjqQ": "Bu durum sayfasında abone olunacak bileşen bulunmuyor.", "5sg7KC": "Şifre", "IGY48m": "Abone olunuyor...", "Pgb3Xj": "Abone olundu", "WOH7Yj": "Abone olma başarısız oldu", - "L7z2/k": "Bu sayfada abone olunacak bileşen bulunmuyor.", - "BQBZU+": "Tüm Sistemler Çalışıyor", + "L7z2_k": "Bu sayfada abone olunacak bileşen bulunmuyor.", + "BQBZU-": "Tüm Sistemler Çalışıyor", "Dnob31": "Çalışıyor", "b9fOA1": "Düşük Performans", "VQDmmK": "Düşük", "80EXUh": "Kesinti Performansı", "JOZGPR": "Kesinti", - "dudqv/": "Bakım", + "dudqv_": "Bakım", "D3rOMr": "Veri Yok", "W6nSYE": "Çözüldü", "1P6GMj": "İzleniyor", "7cv4Uf": "Tespit Edildi", - "/GKH/w": "İnceleniyor", + "_GKH_w": "İnceleniyor", "myq2ZL": "Normal", "KN7zKn": "Hata", "SsC4IV": "Düşük performans", @@ -100,17 +101,17 @@ "2syGZB": "Rapor çözüldü", "FDReLp": "Son bildirim yok", "qDj0JR": "Son 7 gün içinde herhangi bir rapor oluşturulmadı.", - "u++vY3": "Rapor bulunamadı", + "u--vY3": "Rapor bulunamadı", "2HGztY": "Bu durum sayfası için rapor bulunamadı.", "50SA6J": "Herkese açık monitör yok", "FHrzf5": "Bu sayfaya herkese açık monitör eklenmemiş.", "3cc4Ct": "Açık", "tOdNiY": "Koyu", - "+CwN9C": "Sistem", + "-CwN9C": "Sistem", "EQpyb8": "Temayı değiştir", - "uPb/gh": "Güncellemeleri alın", + "uPb_gh": "Güncellemeleri alın", "8OoV56": "RSS beslemesini alın", - "Auj/Ki": "Atom beslemesini alın", + "Auj_Ki": "Atom beslemesini alın", "SyYroX": "JSON güncellemelerini alın", "rptmhC": "Slack üzerinden durum güncellemeleri almak için aşağıdaki metni herhangi bir kanala yapıştırın.", "PSqtlY": "SSH ile durumu öğrenin", @@ -135,8 +136,7 @@ "q0qMyV": "RSS", "9y9QQh": "JSON", "waUHa4": "SSH", - "cVqFq/": "Bir rapor oluşturulduğunda veya çözüldüğünde e-posta bildirimi alın", + "cVqFq_": "Bir rapor oluşturulduğunda veya çözüldüğünde e-posta bildirimi alın", "gczcC5": "Abone Ol", - "45YlLU": "Güncellemeleri almak için e-posta adresinizi doğrulayın, hepsi bu kadar.", - "dcqxLR": "son gün" + "45YlLU": "Güncellemeleri almak için e-posta adresinizi doğrulayın, hepsi bu kadar." } diff --git a/apps/status-page/src/i18n/messages.test.ts b/apps/status-page/src/i18n/messages.test.ts new file mode 100644 index 00000000..eea5fb45 --- /dev/null +++ b/apps/status-page/src/i18n/messages.test.ts @@ -0,0 +1,40 @@ +import { Buffer } from "node:buffer"; +import { readFile } from "node:fs/promises"; + +import { defaultLocale, locales } from "@openstatus/locales"; +import { expect } from "@std/expect"; +import { describe, test } from "@std/testing/bdd"; + +// next-intl's extractor derives ids from the source text; catalogs drift +// silently when that format changes (4.14 moved base64 -> base64url). +async function messageId(message: string) { + const digest = await crypto.subtle.digest( + "SHA-512", + new TextEncoder().encode(message), + ); + return Buffer.from(digest).toString("base64url").slice(0, 6); +} + +async function readCatalog(locale: string): Promise> { + const path = `${import.meta.dirname}/../../messages/${locale}.json`; + return JSON.parse(await readFile(path, "utf8")); +} + +describe("message catalogs", () => { + test("source ids match next-intl's extractor hash", async () => { + const source = await readCatalog(defaultLocale); + const mismatched: string[] = []; + for (const [id, message] of Object.entries(source)) { + if ((await messageId(message)) !== id) mismatched.push(id); + } + expect(mismatched).toEqual([]); + }); + + test("every locale has the same ids as the source locale", async () => { + const source = Object.keys(await readCatalog(defaultLocale)).sort(); + for (const locale of locales) { + const ids = Object.keys(await readCatalog(locale)).sort(); + expect(ids, locale).toEqual(source); + } + }); +});