From 8910c1355cb016e4514e5db96bed0f5ee3c74cea Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Fri, 23 May 2025 20:39:25 +0800 Subject: [PATCH] Refactor the Translations language to seperate their own directory, for easy to maintenable and scalable language --- application/src/translations/de.ts | 204 ----------------- application/src/translations/de/about.ts | 20 ++ application/src/translations/de/common.ts | 29 +++ application/src/translations/de/incident.ts | 55 +++++ application/src/translations/de/index.ts | 23 ++ application/src/translations/de/login.ts | 24 ++ .../src/translations/de/maintenance.ts | 68 ++++++ application/src/translations/de/menu.ts | 23 ++ application/src/translations/de/services.ts | 13 ++ application/src/translations/de/ssl.ts | 107 +++++++++ application/src/translations/en.ts | 205 ------------------ application/src/translations/en/about.ts | 18 ++ application/src/translations/en/common.ts | 29 +++ application/src/translations/en/incident.ts | 55 +++++ application/src/translations/en/index.ts | 23 ++ application/src/translations/en/login.ts | 23 ++ .../src/translations/en/maintenance.ts | 68 ++++++ application/src/translations/en/menu.ts | 21 ++ application/src/translations/en/services.ts | 12 + application/src/translations/en/ssl.ts | 107 +++++++++ application/src/translations/index.ts | 11 +- application/src/translations/km.ts | 204 ----------------- application/src/translations/km/about.ts | 18 ++ application/src/translations/km/common.ts | 29 +++ application/src/translations/km/incident.ts | 55 +++++ application/src/translations/km/index.ts | 23 ++ application/src/translations/km/login.ts | 23 ++ .../src/translations/km/maintenance.ts | 68 ++++++ application/src/translations/km/menu.ts | 21 ++ application/src/translations/km/services.ts | 12 + application/src/translations/km/ssl.ts | 107 +++++++++ application/src/translations/types/about.ts | 16 ++ application/src/translations/types/common.ts | 26 +++ .../src/translations/types/incident.ts | 53 +++++ application/src/translations/types/index.ts | 20 ++ application/src/translations/types/login.ts | 21 ++ .../src/translations/types/maintenance.ts | 66 ++++++ application/src/translations/types/menu.ts | 19 ++ .../src/translations/types/services.ts | 10 + application/src/translations/types/ssl.ts | 105 +++++++++ 40 files changed, 1416 insertions(+), 618 deletions(-) delete mode 100644 application/src/translations/de.ts create mode 100644 application/src/translations/de/about.ts create mode 100644 application/src/translations/de/common.ts create mode 100644 application/src/translations/de/incident.ts create mode 100644 application/src/translations/de/index.ts create mode 100644 application/src/translations/de/login.ts create mode 100644 application/src/translations/de/maintenance.ts create mode 100644 application/src/translations/de/menu.ts create mode 100644 application/src/translations/de/services.ts create mode 100644 application/src/translations/de/ssl.ts delete mode 100644 application/src/translations/en.ts create mode 100644 application/src/translations/en/about.ts create mode 100644 application/src/translations/en/common.ts create mode 100644 application/src/translations/en/incident.ts create mode 100644 application/src/translations/en/index.ts create mode 100644 application/src/translations/en/login.ts create mode 100644 application/src/translations/en/maintenance.ts create mode 100644 application/src/translations/en/menu.ts create mode 100644 application/src/translations/en/services.ts create mode 100644 application/src/translations/en/ssl.ts delete mode 100644 application/src/translations/km.ts create mode 100644 application/src/translations/km/about.ts create mode 100644 application/src/translations/km/common.ts create mode 100644 application/src/translations/km/incident.ts create mode 100644 application/src/translations/km/index.ts create mode 100644 application/src/translations/km/login.ts create mode 100644 application/src/translations/km/maintenance.ts create mode 100644 application/src/translations/km/menu.ts create mode 100644 application/src/translations/km/services.ts create mode 100644 application/src/translations/km/ssl.ts create mode 100644 application/src/translations/types/about.ts create mode 100644 application/src/translations/types/common.ts create mode 100644 application/src/translations/types/incident.ts create mode 100644 application/src/translations/types/index.ts create mode 100644 application/src/translations/types/login.ts create mode 100644 application/src/translations/types/maintenance.ts create mode 100644 application/src/translations/types/menu.ts create mode 100644 application/src/translations/types/services.ts create mode 100644 application/src/translations/types/ssl.ts diff --git a/application/src/translations/de.ts b/application/src/translations/de.ts deleted file mode 100644 index 7451ea6..0000000 --- a/application/src/translations/de.ts +++ /dev/null @@ -1,204 +0,0 @@ -export const deTranslations = { - welcome: "Willkommen", - logout: "Abmelden", - language: "Sprache", - english: "Englisch", - khmer: "Khmer", - german: "Deutsch", - goodMorning: "Guten Morgen", - goodAfternoon: "Guten Nachmittag", - goodEvening: "Guten Abend", - // Hauptmenü-Übersetzungen - uptimeMonitoring: "Betriebszeitüberwachung", - instanceMonitoring: "Instanzüberwachung", - sslDomain: "SSL & Domain", - scheduleIncident: "Zeitplan & Vorfall", - operationalPage: "Betriebsstatus-Seite", - reports: "Berichte", - apiDocumentation: "API-Dokumentation", - // Einstellungen-Panel - settingPanel: "Einstellungsbereich", - generalSettings: "Allgemeine Einstellungen", - userManagement: "Benutzerverwaltung", - notificationSettings: "Benachrichtigungseinstellungen", - alertsTemplates: "Alarmvorlagen", - rolesManagement: "Rollenverwaltung", - dataRetention: "Datenspeicherung", - backupSettings: "Backup-Einstellungen", - aboutSystem: "Über das System", - // Dienst-Tabelle - serviceName: "Dienstname", - serviceType: "Diensttyp", - serviceStatus: "Dienststatus", - responseTime: "Antwortzeit", - uptime: "Betriebszeit", - lastChecked: "Zuletzt überprüft", - // Vorfall-Tabelle - time: "Zeit", - status: "Status", - // Allgemeine UI-Elemente - profile: "Profil", - settings: "Einstellungen", - documentation: "Dokumentation", - notifications: "Benachrichtigungen", - noServices: "Keine Dienste entsprechen den Filterkriterien.", - // Login-Seite - signInToYourAccount: "Melden Sie sich bei Ihrem Konto an", - dontHaveAccount: "Sie haben kein Konto?", - createOne: "Erstellen Sie eines", - signInWithGoogle: "Mit Google anmelden", - orContinueWith: "ODER", - email: "E-Mail", - password: "Passwort", - forgot: "Vergessen?", - signIn: "Anmelden", - signingIn: "Anmeldung läuft...", - loginSuccessful: "Anmeldung erfolgreich", - loginSuccessMessage: "Sie wurden erfolgreich angemeldet.", - loginFailed: "Anmeldung fehlgeschlagen", - authenticationFailed: "Authentifizierung fehlgeschlagen", - bySigningIn: "Durch die Anmeldung stimmen Sie unseren", - termsAndConditions: "Allgemeinen Geschäftsbedingungen", - and: "und", - privacyPolicy: "Datenschutzrichtlinie", - // Über das System - aboutCheckcle: "Über Checkcle", - systemDescription: "Checkcle ist ein Open-Source-Überwachungs-Stack, der Echtzeit-Einblicke in Server- und Dienstzustände, Vorfallmanagement und operative Transparenz bietet. Veröffentlicht unter der MIT-Lizenz.", - systemVersion: "Systemversion", - license: "Lizenz", - mitLicense: "MIT-Lizenz", - links: "Links", - viewOnGithub: "Auf GitHub ansehen", - viewDocumentation: "Dokumentation ansehen", - followOnX: "Auf X folgen", - joinDiscord: "Discord beitreten", - // Schnellaktionen - quickActions: "Schnellaktionen", - quickActionsDescription: "Greifen Sie schnell auf häufige Überwachungsvorgänge und Funktionen zu. Wählen Sie unten eine Aktion aus, um zu beginnen.", - close: "Schließen", - quickTips: "Schnelle Tipps", - // Website-Überwachung - monitorWebsite: "Website-Überwachung", - monitorWebsiteDesc: "Überwachen Sie die Verfügbarkeit und Leistung von Websites mit detaillierten Metriken und Warnungen.", - monitorMultipleEndpoints: "Mehrere Endpunkte überwachen", - trackResponseTimes: "Antwortzeiten verfolgen", - setCustomAlerts: "Benutzerdefinierte Warnungen festlegen", - // Serverüberwachung - monitorServer: "Serverüberwachung", - monitorServerDesc: "Verfolgen Sie Servergesundheitsmetriken wie CPU, Speicher, Festplattennutzung und Netzwerkverkehr.", - monitorCPURam: "CPU- & RAM-Nutzung überwachen", - trackNetworkMetrics: "Netzwerkmetriken verfolgen", - viewProcesses: "Aktive Prozesse anzeigen", - // SSL-Zertifikate - sslCertificate: "SSL-Zertifikat", - sslCertificateDesc: "Überwachen Sie die Gültigkeit von SSL-Zertifikaten und erhalten Sie Warnungen vor Ablaufdaten.", - trackSSLExpiration: "Ablaufdaten von SSL-Zertifikaten verfolgen", - getEarlyRenewal: "Frühzeitige Erneuerungshinweise erhalten", - monitorMultipleDomains: "Mehrere Domains überwachen", - // Vorfallsmanagement - incidentsManagement: "Vorfallsmanagement", - incidentsManagementDesc: "Erstellen, verfolgen und verwalten Sie Vorfälle einschließlich Zuweisungs- und Lösungsabläufe.", - createTrackIncidents: "Vorfälle erstellen & verfolgen", - assignIncidents: "Vorfälle einem Team zuweisen", - monitorResolution: "Lösungsfortschritt überwachen", - // Betriebsstatus - operationalStatus: "Betriebsstatus", - operationalStatusDesc: "Erstellen und verwalten Sie öffentliche Statusseiten, um Benutzern den Systemzustand mitzuteilen.", - createCustomStatus: "Benutzerdefinierte Statusseiten erstellen", - displayRealTime: "Echtzeitmetriken anzeigen", - shareIncidentUpdates: "Vorfallaktualisierungen teilen", - // Berichte & Analysen - reportsAnalytics: "Berichte & Analysen", - reportsAnalyticsDesc: "Berichte zur Systemleistung, Betriebszeit-Historie und Vorfallmetriken erstellen.", - generateUptimeReports: "Berichte zur Betriebszeit erstellen", - analyzePerformance: "Leistungstrends analysieren", - exportMonitoringData: "Überwachungsdaten exportieren", - // SSL Domain Management Seite - sslDomainManagement: "SSL- & Domainverwaltung", - monitorSSLCertificates: "SSL-Zertifikate und deren Ablaufdaten überwachen", - validCertificates: "Gültige Zertifikate", - expiringSoon: "Läuft bald ab", - expired: "Abgelaufen", - refreshAll: "Alle aktualisieren", - addDomain: "Domain hinzufügen", - domain: "Domain", - issuer: "Aussteller", - expirationDate: "Ablaufdatum", - daysLeft: "Verbleibende Tage", - lastNotified: "Zuletzt benachrichtigt", - actions: "Aktionen", - view: "Ansehen", - check: "Prüfen", - edit: "Bearbeiten", - delete: "Löschen", - never: "Nie", - unknown: "Unbekannt", - checkingSSLCertificate: "SSL-Zertifikat wird überprüft...", - noSSLCertificates: "Keine SSL-Zertifikate gefunden", - // SSL-Zertifikat hinzufügen - addSSLCertificate: "SSL-Zertifikat hinzufügen", - warningThreshold: "Warnschwelle (Tage)", - expiryThreshold: "Ablaufschwelle (Tage)", - notificationChannel: "Benachrichtigungskanal", - cancel: "Abbrechen", - addCertificate: "Zertifikat hinzufügen", - getNotifiedExpiration: "Benachrichtigung erhalten, wenn Zertifikate bald ablaufen", - getNotifiedCritical: "Benachrichtigung erhalten, wenn Zertifikate kritisch kurz vor Ablauf stehen", - chooseChannel: "Wählen Sie, wo Sie Benachrichtigungen erhalten möchten", - loadingChannels: "Kanäle werden geladen...", - noChannelsFound: "Keine Benachrichtigungskanäle gefunden", - // SSL-Zertifikat bearbeiten - editSSLCertificate: "SSL-Zertifikat bearbeiten", - domainName: "Domainname", - domainCannotChange: "Domainname kann nicht geändert werden. Um eine andere Domain zu überwachen, fügen Sie ein neues Zertifikat hinzu.", - warningThresholdDays: "Warnschwelle (Tage)", - expiryThresholdDays: "Ablaufschwelle (Tage)", - daysBeforeExpiration: "Tage vor Ablauf zur Warnung", - daysBeforeCritical: "Tage vor Ablauf zur kritischen Warnung", - whereToSend: "Wohin die Benachrichtigungen gesendet werden sollen", - saveChanges: "Änderungen speichern", - updating: "Aktualisiere...", - // SSL-Zertifikat Details - sslCertificateDetails: "SSL-Zertifikatdetails", - detailedInfo: "Detaillierte Informationen zum SSL-Zertifikat für", - basicInformation: "Basisinformationen", - validity: "Gültigkeit", - validFrom: "Gültig ab", - validUntil: "Gültig bis", - validityDays: "Gültigkeitstage", - issuerInfo: "Aussteller", - organization: "Organisation", - commonName: "Allgemeiner Name", - technicalDetails: "Technische Details", - serialNumber: "Seriennummer", - algorithm: "Algorithmus", - subjectAltNames: "Alternative Namen (SANs)", - none: "Keine", - monitoringConfig: "Überwachungskonfiguration", - recordInfo: "Informationen zum Eintrag", - created: "Erstellt", - lastUpdated: "Zuletzt aktualisiert", - lastNotification: "Letzte Benachrichtigung", - collectionId: "Sammlungs-ID", - // Löschen bestätigen - deleteSSLCertificate: "SSL-Zertifikat löschen", - deleteConfirmation: "Möchten Sie das SSL-Zertifikat für wirklich löschen?", - deleteWarning: "Diese Aktion kann nicht rückgängig gemacht werden.", - // Status-Badges - valid: "Gültig", - pending: "Ausstehend", - // Erfolg- und Fehlermeldungen - sslCertificateAdded: "SSL-Zertifikat erfolgreich hinzugefügt", - sslCertificateUpdated: "SSL-Zertifikat erfolgreich aktualisiert", - sslCertificateDeleted: "SSL-Zertifikat erfolgreich gelöscht", - sslCertificateRefreshed: "SSL-Zertifikat für {domain} erfolgreich aktualisiert", - allCertificatesRefreshed: "Alle {count} Zertifikate erfolgreich aktualisiert", - someCertificatesFailed: "{success} Zertifikate aktualisiert, {failed} fehlgeschlagen", - failedToLoadCertificates: "SSL-Zertifikate konnten nicht geladen werden", - failedToAddCertificate: "SSL-Zertifikat konnte nicht hinzugefügt werden", - failedToUpdateCertificate: "SSL-Zertifikat konnte nicht aktualisiert werden", - failedToDeleteCertificate: "SSL-Zertifikat konnte nicht gelöscht werden", - failedToCheckCertificate: "SSL-Zertifikat konnte nicht überprüft werden", - noCertificatesToRefresh: "Keine Zertifikate zum Aktualisieren", - startingRefreshAll: "Beginne Aktualisierung aller {count} Zertifikate..." -}; diff --git a/application/src/translations/de/about.ts b/application/src/translations/de/about.ts new file mode 100644 index 0000000..218c972 --- /dev/null +++ b/application/src/translations/de/about.ts @@ -0,0 +1,20 @@ +// Über das System +import { AboutTranslations } from '../types/about'; + +export const aboutTranslations: AboutTranslations = { + aboutCheckcle: "Über Checkcle", + systemDescription: "Checkcle ist ein Open-Source-Überwachungs-Stack, der Echtzeit-Einblicke in Server- und Dienstzustände, Vorfallmanagement und operative Transparenz bietet. Veröffentlicht unter der MIT-Lizenz.", + systemVersion: "Systemversion", + license: "Lizenz", + mitLicense: "MIT-Lizenz", + links: "Links", + viewOnGithub: "Auf GitHub ansehen", + viewDocumentation: "Dokumentation ansehen", + followOnX: "Auf X folgen", + joinDiscord: "Discord beitreten", + quickActions: "Quick Actions", + quickActionsDescription: "Access common monitoring operations and features quickly. Select an action below to get started.", + quickTips: "Quick Tips", +}; + + diff --git a/application/src/translations/de/common.ts b/application/src/translations/de/common.ts new file mode 100644 index 0000000..a104def --- /dev/null +++ b/application/src/translations/de/common.ts @@ -0,0 +1,29 @@ + +import { CommonTranslations } from '../types/common'; + +export const commonTranslations: CommonTranslations = { + welcome: "Willkommen", + logout: "Abmelden", + language: "Sprache", + english: "Englisch", + khmer: "Khmer", + german: "Deutsch", + goodMorning: "Guten Morgen", + goodAfternoon: "Guten Nachmittag", + goodEvening: "Guten Abend", + profile: "Profile", + settings: "Settings", + documentation: "Documentation", + notifications: "Notifications", + close: "Close", + cancel: "Cancel", + view: "View", + edit: "Edit", + delete: "Delete", + status: "Status", + time: "Time", + title: "Title", + description: "Description", + success: "Success", + error: "Error", +}; diff --git a/application/src/translations/de/incident.ts b/application/src/translations/de/incident.ts new file mode 100644 index 0000000..461babd --- /dev/null +++ b/application/src/translations/de/incident.ts @@ -0,0 +1,55 @@ + +import { IncidentTranslations } from '../types/incident'; + +export const incidentTranslations: IncidentTranslations = { + incidentManagement: 'Incident Management', + incidentsManagementDesc: 'Track and manage service incidents and their resolutions', + unresolvedIncidents: 'Unresolved', + resolvedIncidents: 'Resolved', + activeIncidents: 'Active Incidents', + criticalIssues: 'Critical Issues', + avgResolutionTime: 'Avg. Resolution Time', + noIncidents: 'No Active Incidents', + createIncident: 'Create Incident', + investigating: 'Investigating', + identified: 'Identified', + monitoring: 'Monitoring', + resolved: 'Resolved', + scheduleIncidentManagement: 'Schedule & Incident Management', + incidentName: 'Incident Name', + incidentStatus: 'Incident Status', + highPriority: 'High Priority', + configurationSettings: 'Configuration Settings', + incidentCreatedSuccess: 'Incident created successfully', + basicInfo: 'Basic Information', + serviceId: 'Service ID', + assignedTo: 'Assigned To', + unassigned: 'Unassigned', + timeline: 'Timeline', + incidentTime: 'Incident Time', + resolutionTime: 'Resolution Time', + systems: 'Systems', + noSystems: 'No systems affected', + impactAnalysis: 'Impact Analysis', + rootCause: 'Root Cause', + resolutionSteps: 'Resolution Steps', + lessonsLearned: 'Lessons Learned', + resolutionDetails: 'Resolution Details', + assignment: 'Assignment', + download: 'Download', + downloadPdf: 'Download PDF', + print: 'Print', + confidentialNote: 'This document is confidential and intended for internal use only.', + generatedOn: 'Generated on', + enterResolutionSteps: 'Enter steps taken to resolve the incident', + enterLessonsLearned: 'Enter lessons learned from this incident', + editIncident: 'Edit Incident', + editIncidentDesc: 'Update details for this incident', + updating: 'Updating...', + update: 'Update', + create: 'Create', + creating: 'Creating...', + configuration: 'Configuration', + failedToUpdateStatus: 'Failed to update status', + inProgress: 'In Progress', +}; diff --git a/application/src/translations/de/index.ts b/application/src/translations/de/index.ts new file mode 100644 index 0000000..a1794be --- /dev/null +++ b/application/src/translations/de/index.ts @@ -0,0 +1,23 @@ + +import { Translations } from '../types'; +import { commonTranslations } from './common'; +import { menuTranslations } from './menu'; +import { loginTranslations } from './login'; +import { aboutTranslations } from './about'; +import { servicesTranslations } from './services'; +import { maintenanceTranslations } from './maintenance'; +import { incidentTranslations } from './incident'; +import { sslTranslations } from './ssl'; + +const enTranslations: Translations = { + common: commonTranslations, + menu: menuTranslations, + login: loginTranslations, + about: aboutTranslations, + services: servicesTranslations, + maintenance: maintenanceTranslations, + incident: incidentTranslations, + ssl: sslTranslations +}; + +export default enTranslations; diff --git a/application/src/translations/de/login.ts b/application/src/translations/de/login.ts new file mode 100644 index 0000000..214549e --- /dev/null +++ b/application/src/translations/de/login.ts @@ -0,0 +1,24 @@ + +import { LoginTranslations } from '../types/login'; + +export const loginTranslations: LoginTranslations = { + // Login-Seite + signInToYourAccount: "Melden Sie sich bei Ihrem Konto an", + dontHaveAccount: "Sie haben kein Konto?", + createOne: "Erstellen Sie eines", + signInWithGoogle: "Mit Google anmelden", + orContinueWith: "ODER", + email: "E-Mail", + password: "Passwort", + forgot: "Vergessen?", + signIn: "Anmelden", + signingIn: "Anmeldung läuft...", + loginSuccessful: "Anmeldung erfolgreich", + loginSuccessMessage: "Sie wurden erfolgreich angemeldet.", + loginFailed: "Anmeldung fehlgeschlagen", + authenticationFailed: "Authentifizierung fehlgeschlagen", + bySigningIn: "Durch die Anmeldung stimmen Sie unseren", + termsAndConditions: "Allgemeinen Geschäftsbedingungen", + and: "und", + privacyPolicy: "Datenschutzrichtlinie", + }; diff --git a/application/src/translations/de/maintenance.ts b/application/src/translations/de/maintenance.ts new file mode 100644 index 0000000..c056eea --- /dev/null +++ b/application/src/translations/de/maintenance.ts @@ -0,0 +1,68 @@ + +import { MaintenanceTranslations } from '../types/maintenance'; + +export const maintenanceTranslations: MaintenanceTranslations = { + scheduledMaintenance: 'Scheduled Maintenance', + scheduledMaintenanceDesc: 'View and manage planned maintenance windows for your systems and services', + upcomingMaintenance: 'Upcoming', + ongoingMaintenance: 'Ongoing', + completedMaintenance: 'Completed', + createMaintenanceWindow: 'Create Maintenance', + totalScheduledHours: 'Total Scheduled Hours', + maintenanceName: 'Maintenance Name', + maintenanceStatus: 'Status', + scheduledStart: 'Scheduled Start', + scheduledEnd: 'Scheduled End', + affectedServices: 'Affected Services', + impact: 'Impact', + minor: 'Minor', + major: 'Major', + critical: 'Critical', + none: 'None', + actions: 'Actions', + scheduled: 'Scheduled', + inprogress: 'In Progress', + completed: 'Completed', + cancelled: 'Cancelled', + markAsInProgress: 'Mark as In Progress', + markAsCompleted: 'Mark as Completed', + markAsCancelled: 'Mark as Cancelled', + confirmDelete: 'Confirm Delete', + deleteMaintenanceConfirmation: 'Are you sure you want to delete this maintenance window?', + thisActionCannotBeUndone: 'This action cannot be undone.', + maintenanceDeleted: 'Maintenance Deleted', + maintenanceDeletedDesc: 'The maintenance window has been deleted successfully.', + errorDeletingMaintenance: 'There was an error deleting the maintenance window.', + statusUpdated: 'Status Updated', + maintenanceStatusUpdated: 'Maintenance status has been updated successfully.', + errorUpdatingMaintenanceStatus: 'There was an error updating the maintenance status.', + createMaintenance: 'Create Maintenance', + createMaintenanceDesc: 'Schedule a new maintenance window for your services', + enterTitle: 'Enter maintenance title', + enterDescription: 'Enter detailed description of the maintenance', + startTime: 'Start Time', + endTime: 'End Time', + selectDate: 'Select a date', + enterAffectedServices: 'Enter affected services', + separateServicesWithComma: 'Separate multiple services with commas', + priority: 'Priority', + selectPriority: 'Select priority', + selectStatus: 'Select status', + selectImpact: 'Select impact', + notifySubscribers: 'Notify Subscribers', + notifySubscribersDesc: 'Send notifications to all subscribers when this maintenance starts', + maintenanceCreated: 'Maintenance Created', + maintenanceCreatedDesc: 'The maintenance window has been scheduled successfully.', + errorCreatingMaintenance: 'There was an error creating the maintenance window.', + errorFetchingMaintenanceData: 'There was an error fetching maintenance data.', + low: 'Low', + medium: 'Medium', + high: 'High', + created: 'Created', + lastUpdated: 'Last Updated', + subscribersWillBeNotified: 'Subscribers will be notified when maintenance begins', + noNotifications: 'No notifications will be sent', + noScheduledMaintenance: 'No Scheduled Maintenance', + noMaintenanceWindows: 'There are no maintenance windows for this period. Create one by clicking the "Create Maintenance" button.', + maintenanceCreatedSuccess: 'Maintenance window created successfully', +}; diff --git a/application/src/translations/de/menu.ts b/application/src/translations/de/menu.ts new file mode 100644 index 0000000..89b22a6 --- /dev/null +++ b/application/src/translations/de/menu.ts @@ -0,0 +1,23 @@ + +import { MenuTranslations } from '../types/menu'; + +export const menuTranslations: MenuTranslations = { + // Hauptmenü-Übersetzungen + uptimeMonitoring: "Betriebszeitüberwachung", + instanceMonitoring: "Instanzüberwachung", + sslDomain: "SSL & Domain", + scheduleIncident: "Zeitplan & Vorfall", + operationalPage: "Betriebsstatus-Seite", + reports: "Berichte", + apiDocumentation: "API-Dokumentation", + // Einstellungen-Panel + settingPanel: "Einstellungsbereich", + generalSettings: "Allgemeine Einstellungen", + userManagement: "Benutzerverwaltung", + notificationSettings: "Benachrichtigungseinstellungen", + alertsTemplates: "Alarmvorlagen", + rolesManagement: "Rollenverwaltung", + dataRetention: "Datenspeicherung", + backupSettings: "Backup-Einstellungen", + aboutSystem: "Über das System", +}; diff --git a/application/src/translations/de/services.ts b/application/src/translations/de/services.ts new file mode 100644 index 0000000..917de48 --- /dev/null +++ b/application/src/translations/de/services.ts @@ -0,0 +1,13 @@ + +import { ServicesTranslations } from '../types/services'; + +export const servicesTranslations: ServicesTranslations = { +// Dienst-Tabelle + serviceName: "Dienstname", + serviceType: "Diensttyp", + serviceStatus: "Dienststatus", + responseTime: "Antwortzeit", + uptime: "Betriebszeit", + lastChecked: "Zuletzt überprüft", + noServices: "No services match your filter criteria.", +}; diff --git a/application/src/translations/de/ssl.ts b/application/src/translations/de/ssl.ts new file mode 100644 index 0000000..d2715b4 --- /dev/null +++ b/application/src/translations/de/ssl.ts @@ -0,0 +1,107 @@ + +import { SSLTranslations } from '../types/ssl'; + +export const sslTranslations: SSLTranslations = { + // Page and section titles + sslDomainManagement: "SSL- & Domainverwaltung", + monitorSSLCertificates: "SSL-Zertifikate und deren Ablaufdaten überwachen", + addSSLCertificate: "SSL-Zertifikat hinzufügen", + editSSLCertificate: "SSL-Zertifikat bearbeiten", + deleteSSLCertificate: "Delete SSL Certificate", + sslCertificateDetails: "SSL-Zertifikatdetails", + detailedInfo: "Detaillierte Informationen zum SSL-Zertifikat für", + + // Status related + valid: "Gültig", + expiringSoon: "Läuft bald ab", + expired: "Abgelaufen", + pending: "Ausstehend", + + // Statistics and cards + validCertificates: "Gültige Zertifikate", + expiringSoonCertificates: "Läuft bald ab", + expiredCertificates: "Abgelaufen", + + // Form fields + domain: "Domain", + domainName: "Domainname", + domainCannotChange: "Domainname kann nicht geändert werden. Um eine andere Domain zu überwachen, fügen Sie ein neues Zertifikat hinzu.", + warningThreshold: "Warnschwelle (Tage)", + warningThresholdDays: "Warnschwelle (Tage)", + expiryThreshold: "Ablaufschwelle (Tage)", + expiryThresholdDays: "Ablaufschwelle (Tage)", + notificationChannel: "Benachrichtigungskanal", + chooseChannel: "Wählen Sie, wo Sie Benachrichtigungen erhalten möchten", + whereToSend: "Wohin die Benachrichtigungen gesendet werden sollen", + daysBeforeExpiration: "Tage vor Ablauf zur Warnung", + daysBeforeCritical: "Tage vor Ablauf zur kritischen Warnung", + getNotifiedExpiration: "Benachrichtigung erhalten, wenn Zertifikate bald ablaufen", + getNotifiedCritical: "Benachrichtigung erhalten, wenn Zertifikate kritisch kurz vor Ablauf stehen", + + // Table headers and fields + issuer: "Aussteller", + expirationDate: "Ablaufdatum", + daysLeft: "Verbleibende Tage", + status: "Status", + lastNotified: "Last Notified", + actions: "Actions", + validFrom: "Valid From", + validUntil: "Valid Until", + validityDays: "Validity Days", + organization: "Organization", + commonName: "Common Name", + serialNumber: "Serial Number", + algorithm: "Algorithm", + subjectAltNames: "Subject Alternative Names", + + // Buttons and actions + addDomain: "Add Domain", + refreshAll: "Refresh All", + cancel: "Cancel", + addCertificate: "Add Certificate", + check: "Check", + view: "View", + edit: "Edit", + delete: "Delete", + close: "Close", + saveChanges: "Save Changes", + updating: "Updating", + + // Sections in detail view + basicInformation: "Basic Information", + validity: "Validity", + issuerInfo: "Issuer Information", + technicalDetails: "Technical Details", + monitoringConfig: "Monitoring Configuration", + recordInfo: "Record Information", + + // Notifications and messages + sslCertificateAdded: "SSL Certificate added successfully", + sslCertificateUpdated: "SSL Certificate updated successfully", + sslCertificateDeleted: "SSL Certificate deleted successfully", + sslCertificateRefreshed: "SSL Certificate for {domain} refreshed successfully", + allCertificatesRefreshed: "All {count} certificates refreshed successfully", + someCertificatesFailed: "{success} certificates refreshed, {failed} failed", + failedToAddCertificate: "Failed to add SSL certificate", + failedToLoadCertificates: "Failed to load SSL certificates", + failedToUpdateCertificate: "Failed to update SSL certificate", + failedToDeleteCertificate: "Failed to delete SSL certificate", + failedToCheckCertificate: "Failed to check SSL certificate", + noCertificatesToRefresh: "No certificates to refresh", + startingRefreshAll: "Starting refresh of {count} certificates", + checkingSSLCertificate: "Checking SSL certificate...", + deleteConfirmation: "Are you sure you want to delete the certificate for", + deleteWarning: "This action cannot be undone. This will permanently delete the certificate.", + + // Misc + unknown: "Unknown", + never: "Never", + none: "None", + loadingChannels: "Loading channels...", + noChannelsFound: "No notification channels found", + noSSLCertificates: "No SSL certificates found", + created: "Created", + lastUpdated: "Last Updated", + lastNotification: "Last Notification", + collectionId: "Collection ID" +}; diff --git a/application/src/translations/en.ts b/application/src/translations/en.ts deleted file mode 100644 index cb353cf..0000000 --- a/application/src/translations/en.ts +++ /dev/null @@ -1,205 +0,0 @@ - -export const enTranslations = { - welcome: "Welcome", - logout: "Logout", - language: "Language", - english: "English", - khmer: "Khmer", - german: "German", - goodMorning: "Good morning", - goodAfternoon: "Good afternoon", - goodEvening: "Good evening", - // Main menu translations - uptimeMonitoring: "Uptime Monitoring", - instanceMonitoring: "Instance Monitoring", - sslDomain: "SSL & Domain", - scheduleIncident: "Schedule & Incident", - operationalPage: "Operational Page", - reports: "Reports", - apiDocumentation: "API Documentation", - // Settings panel translations - settingPanel: "Setting Panel", - generalSettings: "General Settings", - userManagement: "User Management", - notificationSettings: "Notification Settings", - alertsTemplates: "Alerts Templates", - rolesManagement: "Roles Management", - dataRetention: "Data Retention", - backupSettings: "Backup Settings", - aboutSystem: "About System", - // Service table headers - serviceName: "Service Name", - serviceType: "Service Type", - serviceStatus: "Service Status", - responseTime: "Response Time", - uptime: "Uptime", - lastChecked: "Last Checked", - // Incident table - time: "Time", - status: "Status", - // Common UI elements - profile: "Profile", - settings: "Settings", - documentation: "Documentation", - notifications: "Notifications", - noServices: "No services match your filter criteria.", - // Login page - signInToYourAccount: "Sign in to your account", - dontHaveAccount: "Don't have an account?", - createOne: "Create one", - signInWithGoogle: "Sign in with Google", - orContinueWith: "OR", - email: "Email", - password: "Password", - forgot: "Forgot?", - signIn: "Sign In", - signingIn: "Signing in...", - loginSuccessful: "Login successful", - loginSuccessMessage: "You have been logged in successfully.", - loginFailed: "Login failed", - authenticationFailed: "Authentication failed", - bySigningIn: "By signing in, you agree to our", - termsAndConditions: "Terms & Conditions", - and: "and", - privacyPolicy: "Privacy Policy", - // About System page - aboutCheckcle: "About Checkcle", - systemDescription: "Checkcle is an open-source monitoring stack offering real-time insights into server and service health, incident management, and operational transparency. Released as MIT License.", - systemVersion: "System Version", - license: "License", - mitLicense: "MIT License", - links: "Links", - viewOnGithub: "View on GitHub", - viewDocumentation: "View Documentation", - followOnX: "Follow on X", - joinDiscord: "Join Discord", - // Quick Actions Dialog translations - quickActions: "Quick Actions", - quickActionsDescription: "Access common monitoring operations and features quickly. Select an action below to get started.", - close: "Close", - quickTips: "Quick Tips", - // Website Monitoring Card - monitorWebsite: "Website Monitoring", - monitorWebsiteDesc: "Monitor website availability and performance with detailed metrics and alerts.", - monitorMultipleEndpoints: "Monitor multiple endpoints", - trackResponseTimes: "Track response times", - setCustomAlerts: "Set custom alerts", - // Server Monitoring Card - monitorServer: "Server Monitoring", - monitorServerDesc: "Track server health metrics including CPU, memory, disk usage, and network traffic.", - monitorCPURam: "Monitor CPU & RAM usage", - trackNetworkMetrics: "Track network metrics", - viewProcesses: "View active processes", - // SSL Certificate Card - sslCertificate: "SSL Certificate", - sslCertificateDesc: "Monitor SSL certificate validity and receive alerts before expiration dates.", - trackSSLExpiration: "Track SSL expiration dates", - getEarlyRenewal: "Get early renewal notices", - monitorMultipleDomains: "Monitor multiple domains", - // Incidents Management Card - incidentsManagement: "Incidents Management", - incidentsManagementDesc: "Create, track, and manage incidents including assignment and resolution workflows.", - createTrackIncidents: "Create & track incidents", - assignIncidents: "Assign incidents to team", - monitorResolution: "Monitor resolution progress", - // Operational Status Card - operationalStatus: "Operational Status", - operationalStatusDesc: "Create and manage public status pages to communicate system health to users.", - createCustomStatus: "Create custom status pages", - displayRealTime: "Display real-time metrics", - shareIncidentUpdates: "Share incident updates", - // Reports & Analytics Card - reportsAnalytics: "Reports & Analytics", - reportsAnalyticsDesc: "Generate reports on system performance, uptime history, and incident metrics.", - generateUptimeReports: "Generate uptime reports", - analyzePerformance: "Analyze performance trends", - exportMonitoringData: "Export monitoring data", - // SSL Domain page translations - sslDomainManagement: "SSL & Domain Management", - monitorSSLCertificates: "Monitor SSL certificates and their expiration dates", - validCertificates: "Valid Certificates", - expiringSoon: "Expiring Soon", - expired: "Expired", - refreshAll: "Refresh All", - addDomain: "Add Domain", - domain: "Domain", - issuer: "Issuer", - expirationDate: "Expiration Date", - daysLeft: "Days Left", - lastNotified: "Last Notified", - actions: "Actions", - view: "View", - check: "Check", - edit: "Edit", - delete: "Delete", - never: "Never", - unknown: "Unknown", - checkingSSLCertificate: "Checking SSL certificate...", - noSSLCertificates: "No SSL certificates found", - // Add SSL Certificate dialog - addSSLCertificate: "Add SSL Certificate", - warningThreshold: "Warning Threshold (days)", - expiryThreshold: "Expiry Threshold (days)", - notificationChannel: "Notification Channel", - cancel: "Cancel", - addCertificate: "Add Certificate", - getNotifiedExpiration: "Get notified when certificates are about to expire", - getNotifiedCritical: "Get notified when certificates are critically close to expiring", - chooseChannel: "Choose where to receive SSL certificate alerts", - loadingChannels: "Loading channels...", - noChannelsFound: "No notification channels found", - // Edit SSL Certificate dialog - editSSLCertificate: "Edit SSL Certificate", - domainName: "Domain name", - domainCannotChange: "Domain name cannot be changed. To monitor a different domain, add a new certificate.", - warningThresholdDays: "Warning Threshold (Days)", - expiryThresholdDays: "Expiry Threshold (Days)", - daysBeforeExpiration: "Days before expiration to send warning", - daysBeforeCritical: "Days before expiration to send critical alert", - whereToSend: "Where to send notifications about this certificate", - saveChanges: "Save Changes", - updating: "Updating...", - // SSL Certificate details dialog - sslCertificateDetails: "SSL Certificate Details", - detailedInfo: "Detailed information about the SSL certificate for", - basicInformation: "Basic Information", - validity: "Validity", - validFrom: "Valid From", - validUntil: "Valid Until", - validityDays: "Validity Days", - issuerInfo: "Issuer", - organization: "Organization", - commonName: "Common Name", - technicalDetails: "Technical Details", - serialNumber: "Serial Number", - algorithm: "Algorithm", - subjectAltNames: "Subject Alternative Names (SANs)", - none: "None", - monitoringConfig: "Monitoring Configuration", - recordInfo: "Record Information", - created: "Created", - lastUpdated: "Last Updated", - lastNotification: "Last Notification", - collectionId: "Collection ID", - // Delete confirmation dialog - deleteSSLCertificate: "Delete SSL Certificate", - deleteConfirmation: "Are you sure you want to delete the SSL certificate for", - deleteWarning: "This action cannot be undone.", - // Status badges - valid: "Valid", - pending: "Pending", - // Success and error messages - sslCertificateAdded: "SSL certificate added successfully", - sslCertificateUpdated: "SSL certificate updated successfully", - sslCertificateDeleted: "SSL certificate deleted successfully", - sslCertificateRefreshed: "SSL certificate for {domain} updated successfully", - allCertificatesRefreshed: "Successfully refreshed all {count} certificates", - someCertificatesFailed: "Refreshed {success} certificates, {failed} failed", - failedToLoadCertificates: "Failed to load SSL certificates", - failedToAddCertificate: "Failed to add SSL certificate", - failedToUpdateCertificate: "Failed to update SSL certificate", - failedToDeleteCertificate: "Failed to delete SSL certificate", - failedToCheckCertificate: "Failed to check SSL certificate", - noCertificatesToRefresh: "No certificates to refresh", - startingRefreshAll: "Starting refresh of all {count} certificates..." -}; \ No newline at end of file diff --git a/application/src/translations/en/about.ts b/application/src/translations/en/about.ts new file mode 100644 index 0000000..83e4071 --- /dev/null +++ b/application/src/translations/en/about.ts @@ -0,0 +1,18 @@ + +import { AboutTranslations } from '../types/about'; + +export const aboutTranslations: AboutTranslations = { + aboutCheckcle: "About Checkcle", + systemDescription: "Checkcle is an open-source monitoring stack offering real-time insights into server and service health, incident management, and operational transparency. Released as MIT License.", + systemVersion: "System Version", + license: "License", + mitLicense: "MIT License", + links: "Links", + viewOnGithub: "View on GitHub", + viewDocumentation: "View Documentation", + followOnX: "Follow on X", + joinDiscord: "Join Discord", + quickActions: "Quick Actions", + quickActionsDescription: "Access common monitoring operations and features quickly. Select an action below to get started.", + quickTips: "Quick Tips", +}; diff --git a/application/src/translations/en/common.ts b/application/src/translations/en/common.ts new file mode 100644 index 0000000..3bdbb1a --- /dev/null +++ b/application/src/translations/en/common.ts @@ -0,0 +1,29 @@ + +import { CommonTranslations } from '../types/common'; + +export const commonTranslations: CommonTranslations = { + welcome: "Welcome", + logout: "Logout", + language: "Language", + english: "English", + khmer: "Khmer", + german: "Deutsch", + goodMorning: "Good morning", + goodAfternoon: "Good afternoon", + goodEvening: "Good evening", + profile: "Profile", + settings: "Settings", + documentation: "Documentation", + notifications: "Notifications", + close: "Close", + cancel: "Cancel", + view: "View", + edit: "Edit", + delete: "Delete", + status: "Status", + time: "Time", + title: "Title", + description: "Description", + success: "Success", + error: "Error", +}; diff --git a/application/src/translations/en/incident.ts b/application/src/translations/en/incident.ts new file mode 100644 index 0000000..461babd --- /dev/null +++ b/application/src/translations/en/incident.ts @@ -0,0 +1,55 @@ + +import { IncidentTranslations } from '../types/incident'; + +export const incidentTranslations: IncidentTranslations = { + incidentManagement: 'Incident Management', + incidentsManagementDesc: 'Track and manage service incidents and their resolutions', + unresolvedIncidents: 'Unresolved', + resolvedIncidents: 'Resolved', + activeIncidents: 'Active Incidents', + criticalIssues: 'Critical Issues', + avgResolutionTime: 'Avg. Resolution Time', + noIncidents: 'No Active Incidents', + createIncident: 'Create Incident', + investigating: 'Investigating', + identified: 'Identified', + monitoring: 'Monitoring', + resolved: 'Resolved', + scheduleIncidentManagement: 'Schedule & Incident Management', + incidentName: 'Incident Name', + incidentStatus: 'Incident Status', + highPriority: 'High Priority', + configurationSettings: 'Configuration Settings', + incidentCreatedSuccess: 'Incident created successfully', + basicInfo: 'Basic Information', + serviceId: 'Service ID', + assignedTo: 'Assigned To', + unassigned: 'Unassigned', + timeline: 'Timeline', + incidentTime: 'Incident Time', + resolutionTime: 'Resolution Time', + systems: 'Systems', + noSystems: 'No systems affected', + impactAnalysis: 'Impact Analysis', + rootCause: 'Root Cause', + resolutionSteps: 'Resolution Steps', + lessonsLearned: 'Lessons Learned', + resolutionDetails: 'Resolution Details', + assignment: 'Assignment', + download: 'Download', + downloadPdf: 'Download PDF', + print: 'Print', + confidentialNote: 'This document is confidential and intended for internal use only.', + generatedOn: 'Generated on', + enterResolutionSteps: 'Enter steps taken to resolve the incident', + enterLessonsLearned: 'Enter lessons learned from this incident', + editIncident: 'Edit Incident', + editIncidentDesc: 'Update details for this incident', + updating: 'Updating...', + update: 'Update', + create: 'Create', + creating: 'Creating...', + configuration: 'Configuration', + failedToUpdateStatus: 'Failed to update status', + inProgress: 'In Progress', +}; diff --git a/application/src/translations/en/index.ts b/application/src/translations/en/index.ts new file mode 100644 index 0000000..a1794be --- /dev/null +++ b/application/src/translations/en/index.ts @@ -0,0 +1,23 @@ + +import { Translations } from '../types'; +import { commonTranslations } from './common'; +import { menuTranslations } from './menu'; +import { loginTranslations } from './login'; +import { aboutTranslations } from './about'; +import { servicesTranslations } from './services'; +import { maintenanceTranslations } from './maintenance'; +import { incidentTranslations } from './incident'; +import { sslTranslations } from './ssl'; + +const enTranslations: Translations = { + common: commonTranslations, + menu: menuTranslations, + login: loginTranslations, + about: aboutTranslations, + services: servicesTranslations, + maintenance: maintenanceTranslations, + incident: incidentTranslations, + ssl: sslTranslations +}; + +export default enTranslations; diff --git a/application/src/translations/en/login.ts b/application/src/translations/en/login.ts new file mode 100644 index 0000000..72eeaa8 --- /dev/null +++ b/application/src/translations/en/login.ts @@ -0,0 +1,23 @@ + +import { LoginTranslations } from '../types/login'; + +export const loginTranslations: LoginTranslations = { + signInToYourAccount: "Sign in to your account", + dontHaveAccount: "Don't have an account?", + createOne: "Create one", + signInWithGoogle: "Sign in with Google", + orContinueWith: "OR", + email: "Email", + password: "Password", + forgot: "Forgot?", + signIn: "Sign In", + signingIn: "Signing in...", + loginSuccessful: "Login successful", + loginSuccessMessage: "You have been logged in successfully.", + loginFailed: "Login failed", + authenticationFailed: "Authentication failed", + bySigningIn: "By signing in, you agree to our", + termsAndConditions: "Terms & Conditions", + and: "and", + privacyPolicy: "Privacy Policy", +}; diff --git a/application/src/translations/en/maintenance.ts b/application/src/translations/en/maintenance.ts new file mode 100644 index 0000000..c056eea --- /dev/null +++ b/application/src/translations/en/maintenance.ts @@ -0,0 +1,68 @@ + +import { MaintenanceTranslations } from '../types/maintenance'; + +export const maintenanceTranslations: MaintenanceTranslations = { + scheduledMaintenance: 'Scheduled Maintenance', + scheduledMaintenanceDesc: 'View and manage planned maintenance windows for your systems and services', + upcomingMaintenance: 'Upcoming', + ongoingMaintenance: 'Ongoing', + completedMaintenance: 'Completed', + createMaintenanceWindow: 'Create Maintenance', + totalScheduledHours: 'Total Scheduled Hours', + maintenanceName: 'Maintenance Name', + maintenanceStatus: 'Status', + scheduledStart: 'Scheduled Start', + scheduledEnd: 'Scheduled End', + affectedServices: 'Affected Services', + impact: 'Impact', + minor: 'Minor', + major: 'Major', + critical: 'Critical', + none: 'None', + actions: 'Actions', + scheduled: 'Scheduled', + inprogress: 'In Progress', + completed: 'Completed', + cancelled: 'Cancelled', + markAsInProgress: 'Mark as In Progress', + markAsCompleted: 'Mark as Completed', + markAsCancelled: 'Mark as Cancelled', + confirmDelete: 'Confirm Delete', + deleteMaintenanceConfirmation: 'Are you sure you want to delete this maintenance window?', + thisActionCannotBeUndone: 'This action cannot be undone.', + maintenanceDeleted: 'Maintenance Deleted', + maintenanceDeletedDesc: 'The maintenance window has been deleted successfully.', + errorDeletingMaintenance: 'There was an error deleting the maintenance window.', + statusUpdated: 'Status Updated', + maintenanceStatusUpdated: 'Maintenance status has been updated successfully.', + errorUpdatingMaintenanceStatus: 'There was an error updating the maintenance status.', + createMaintenance: 'Create Maintenance', + createMaintenanceDesc: 'Schedule a new maintenance window for your services', + enterTitle: 'Enter maintenance title', + enterDescription: 'Enter detailed description of the maintenance', + startTime: 'Start Time', + endTime: 'End Time', + selectDate: 'Select a date', + enterAffectedServices: 'Enter affected services', + separateServicesWithComma: 'Separate multiple services with commas', + priority: 'Priority', + selectPriority: 'Select priority', + selectStatus: 'Select status', + selectImpact: 'Select impact', + notifySubscribers: 'Notify Subscribers', + notifySubscribersDesc: 'Send notifications to all subscribers when this maintenance starts', + maintenanceCreated: 'Maintenance Created', + maintenanceCreatedDesc: 'The maintenance window has been scheduled successfully.', + errorCreatingMaintenance: 'There was an error creating the maintenance window.', + errorFetchingMaintenanceData: 'There was an error fetching maintenance data.', + low: 'Low', + medium: 'Medium', + high: 'High', + created: 'Created', + lastUpdated: 'Last Updated', + subscribersWillBeNotified: 'Subscribers will be notified when maintenance begins', + noNotifications: 'No notifications will be sent', + noScheduledMaintenance: 'No Scheduled Maintenance', + noMaintenanceWindows: 'There are no maintenance windows for this period. Create one by clicking the "Create Maintenance" button.', + maintenanceCreatedSuccess: 'Maintenance window created successfully', +}; diff --git a/application/src/translations/en/menu.ts b/application/src/translations/en/menu.ts new file mode 100644 index 0000000..18604a4 --- /dev/null +++ b/application/src/translations/en/menu.ts @@ -0,0 +1,21 @@ + +import { MenuTranslations } from '../types/menu'; + +export const menuTranslations: MenuTranslations = { + uptimeMonitoring: "Uptime Monitoring", + instanceMonitoring: "Instance Monitoring", + sslDomain: "SSL & Domain", + scheduleIncident: "Schedule & Incident", + operationalPage: "Operational Page", + reports: "Reports", + apiDocumentation: "API Documentation", + settingPanel: "Setting Panel", + generalSettings: "General Settings", + userManagement: "User Management", + notificationSettings: "Notification Settings", + alertsTemplates: "Alerts Templates", + rolesManagement: "Roles Management", + dataRetention: "Data Retention", + backupSettings: "Backup Settings", + aboutSystem: "About System", +}; diff --git a/application/src/translations/en/services.ts b/application/src/translations/en/services.ts new file mode 100644 index 0000000..5501bd1 --- /dev/null +++ b/application/src/translations/en/services.ts @@ -0,0 +1,12 @@ + +import { ServicesTranslations } from '../types/services'; + +export const servicesTranslations: ServicesTranslations = { + serviceName: "Service Name", + serviceType: "Service Type", + serviceStatus: "Service Status", + responseTime: "Response Time", + uptime: "Uptime", + lastChecked: "Last Checked", + noServices: "No services match your filter criteria.", +}; diff --git a/application/src/translations/en/ssl.ts b/application/src/translations/en/ssl.ts new file mode 100644 index 0000000..94f524f --- /dev/null +++ b/application/src/translations/en/ssl.ts @@ -0,0 +1,107 @@ + +import { SSLTranslations } from '../types/ssl'; + +export const sslTranslations: SSLTranslations = { + // Page and section titles + sslDomainManagement: "SSL & Domain Management", + monitorSSLCertificates: "Monitor and manage SSL certificates for your domains", + addSSLCertificate: "Add SSL Certificate", + editSSLCertificate: "Edit SSL Certificate", + deleteSSLCertificate: "Delete SSL Certificate", + sslCertificateDetails: "SSL Certificate Details", + detailedInfo: "Detailed information for", + + // Status related + valid: "Valid", + expiringSoon: "Expiring Soon", + expired: "Expired", + pending: "Pending", + + // Statistics and cards + validCertificates: "Valid Certificates", + expiringSoonCertificates: "Expiring Soon", + expiredCertificates: "Expired Certificates", + + // Form fields + domain: "Domain", + domainName: "Domain Name", + domainCannotChange: "Domain cannot be changed after creation", + warningThreshold: "Warning Threshold", + warningThresholdDays: "Warning Threshold (Days)", + expiryThreshold: "Expiry Threshold", + expiryThresholdDays: "Expiry Threshold (Days)", + notificationChannel: "Notification Channel", + chooseChannel: "Choose a notification channel", + whereToSend: "Where to send notifications", + daysBeforeExpiration: "Days before expiration to receive warnings", + daysBeforeCritical: "Days before expiration to receive critical alerts", + getNotifiedExpiration: "Get notified when certificate is about to expire", + getNotifiedCritical: "Get notified when certificate is critically close to expiration", + + // Table headers and fields + issuer: "Issuer", + expirationDate: "Expiration Date", + daysLeft: "Days Left", + status: "Status", + lastNotified: "Last Notified", + actions: "Actions", + validFrom: "Valid From", + validUntil: "Valid Until", + validityDays: "Validity Days", + organization: "Organization", + commonName: "Common Name", + serialNumber: "Serial Number", + algorithm: "Algorithm", + subjectAltNames: "Subject Alternative Names", + + // Buttons and actions + addDomain: "Add Domain", + refreshAll: "Refresh All", + cancel: "Cancel", + addCertificate: "Add Certificate", + check: "Check", + view: "View", + edit: "Edit", + delete: "Delete", + close: "Close", + saveChanges: "Save Changes", + updating: "Updating", + + // Sections in detail view + basicInformation: "Basic Information", + validity: "Validity", + issuerInfo: "Issuer Information", + technicalDetails: "Technical Details", + monitoringConfig: "Monitoring Configuration", + recordInfo: "Record Information", + + // Notifications and messages + sslCertificateAdded: "SSL Certificate added successfully", + sslCertificateUpdated: "SSL Certificate updated successfully", + sslCertificateDeleted: "SSL Certificate deleted successfully", + sslCertificateRefreshed: "SSL Certificate for {domain} refreshed successfully", + allCertificatesRefreshed: "All {count} certificates refreshed successfully", + someCertificatesFailed: "{success} certificates refreshed, {failed} failed", + failedToAddCertificate: "Failed to add SSL certificate", + failedToLoadCertificates: "Failed to load SSL certificates", + failedToUpdateCertificate: "Failed to update SSL certificate", + failedToDeleteCertificate: "Failed to delete SSL certificate", + failedToCheckCertificate: "Failed to check SSL certificate", + noCertificatesToRefresh: "No certificates to refresh", + startingRefreshAll: "Starting refresh of {count} certificates", + checkingSSLCertificate: "Checking SSL certificate...", + deleteConfirmation: "Are you sure you want to delete the certificate for", + deleteWarning: "This action cannot be undone. This will permanently delete the certificate.", + + // Misc + unknown: "Unknown", + never: "Never", + none: "None", + loadingChannels: "Loading channels...", + noChannelsFound: "No notification channels found", + noSSLCertificates: "No SSL certificates found", + created: "Created", + lastUpdated: "Last Updated", + lastNotification: "Last Notification", + collectionId: "Collection ID" +}; diff --git a/application/src/translations/index.ts b/application/src/translations/index.ts index 36134d7..e087b36 100644 --- a/application/src/translations/index.ts +++ b/application/src/translations/index.ts @@ -1,7 +1,6 @@ - -import { enTranslations } from './en'; -import { kmTranslations } from './km'; -import { deTranslations } from './de'; +import enTranslations from './en'; +import kmTranslations from './km'; +import deTranslations from './de'; export type Language = "en" | "km" | "de"; @@ -11,4 +10,6 @@ export const translations = { de: deTranslations, }; -export type TranslationKey = keyof typeof enTranslations; +// Type for accessing translations by module and key +export type TranslationModule = keyof typeof enTranslations; +export type TranslationKey = keyof typeof enTranslations[M]; diff --git a/application/src/translations/km.ts b/application/src/translations/km.ts deleted file mode 100644 index bc6dceb..0000000 --- a/application/src/translations/km.ts +++ /dev/null @@ -1,204 +0,0 @@ -export const kmTranslations = { - welcome: "សូមស្វាគមន៍", - logout: "ចាកចេញ", - language: "ភាសា", - english: "អង់គ្លេស", - khmer: "ខ្មែរ", - german: "អាឡឺម៉ង់", - goodMorning: "អរុណសួស្តី", - goodAfternoon: "ទិវាសួស្តី", - goodEvening: "សាយណ្ហសួស្តី", - // Main menu translations - uptimeMonitoring: "ការត្រួតពិនិត្យ Uptime", - instanceMonitoring: "ការត្រួតពិនិត្យឧបករណ៍", - sslDomain: "SSL និងដមែន", - scheduleIncident: "កាលវិភាគនិងឧបទ្ទវហេតុ", - operationalPage: "ទំព័រប្រតិបត្តិការ", - reports: "របាយការណ៍", - apiDocumentation: "ឯកសារ API", - // Settings panel translations - settingPanel: "ផ្ទាំងការកំណត់", - generalSettings: "ការកំណត់ទូទៅ", - userManagement: "ការគ្រប់គ្រងអ្នកប្រើប្រាស់", - notificationSettings: "ការកំណត់ការជូនដំណឹង", - alertsTemplates: "គំរូការជូនដំណឹង", - rolesManagement: "ការគ្រប់គ្រងតួនាទី", - dataRetention: "ការរក្សាទុកទិន្នន័យ", - backupSettings: "ការកំណត់បម្រុងទុក", - aboutSystem: "អំពីប្រព័ន្ធ", - // Service table headers - serviceName: "ឈ្មោះសេវាកម្ម", - serviceType: "ប្រភេទសេវាកម្ម", - serviceStatus: "ស្ថានភាពសេវាកម្ម", - responseTime: "ពេលវេលាឆ្លើយតប", - uptime: "ពេលវេលាដំណើរការ", - lastChecked: "ពិនិត្យចុងក្រោយ", - // Incident table - time: "ពេលវេលា", - status: "ស្ថានភាព", - // Common UI elements - profile: "ប្រវត្តិរូប", - settings: "ការកំណត់", - documentation: "ឯកសារ", - notifications: "ការជូនដំណឹង", - noServices: "មិនមានសេវាកម្មដែលត្រូវនឹងលក្ខណៈវិនិច្ឆ័យរបស់អ្នក។", - // Login page - signInToYourAccount: "ចូលគណនីរបស់អ្នក", - dontHaveAccount: "មិនមានគណនីមែនទេ?", - createOne: "បង្កើតមួយ", - signInWithGoogle: "ចូលជាមួយ Google", - orContinueWith: "ឬ", - email: "អ៊ីមែល", - password: "ពាក្យសម្ងាត់", - forgot: "ភ្លេច?", - signIn: "ចូល", - signingIn: "កំពុងចូល...", - loginSuccessful: "ការចូលបានជោគជ័យ", - loginSuccessMessage: "អ្នកបានចូលប្រើដោយជោគជ័យ។", - loginFailed: "ការចូលបានបរាជ័យ", - authenticationFailed: "ការផ្ទៀងផ្ទាត់បានបរាជ័យ", - bySigningIn: "ដោយការចូល អ្នកយល់ព្រមនឹង", - termsAndConditions: "លក្ខខណ្ឌ", - and: "និង", - privacyPolicy: "គោលនយោបាយឯកជនភាព", - // About System page - aboutCheckcle: "អំពី Checkcle", - systemDescription: "Checkcle គឺជាស្តាកការត្រួតពិនិត្យប្រភពបើកទូលាយដែលផ្តល់នូវការយល់ដឹងជាក់ស្តែងអំពីសុខភាពម៉ាស៊ីនមេ និងសេវាកម្ម, ការគ្រប់គ្រងឧបទ្ទវហេតុ, និងតម្លាភាពនៃប្រតិបត្តិការ។ ចេញផ្សាយជាអាជ្ញាបណ្ណ MIT។", - systemVersion: "កំណែប្រព័ន្ធ", - license: "អាជ្ញាបណ្ណ", - mitLicense: "អាជ្ញាបណ្ណ MIT", - links: "តំណភ្ជាប់", - viewOnGithub: "មើលលើ GitHub", - viewDocumentation: "មើលឯកសារ", - followOnX: "តាមដានលើ X", - joinDiscord: "ចូលរួមក្នុង Discord", - // Quick Actions Dialog translations - quickActions: "សកម្មភាពរហ័ស", - quickActionsDescription: "ចូលប្រើប្រតិបត្តិការត្រួតពិនិត្យ និងមុខងារទូទៅយ៉ាងរហ័ស។ ជ្រើសរើសសកម្មភាពខាងក្រោមដើម្បីចាប់ផ្តើម។", - close: "បិទ", - quickTips: "គន្លឹះរហ័ស", - // Website Monitoring Card - monitorWebsite: "ការត្រួតពិនិត្យគេហទំព័រ", - monitorWebsiteDesc: "ត្រួតពិនិត្យការអាចប្រើបាននៃគេហទំព័រ និងដំណើរការដោយមានព័ត៌មានលម្អិត និងការជូនដំណឹង។", - monitorMultipleEndpoints: "ត្រួតពិនិត្យចំណុចចប់ច្រើន", - trackResponseTimes: "តាមដានពេលវេលាឆ្លើយតប", - setCustomAlerts: "កំណត់ការជូនដំណឹងផ្ទាល់ខ្លួន", - // Server Monitoring Card - monitorServer: "ការត្រួតពិនិត្យម៉ាស៊ីនមេ", - monitorServerDesc: "តាមដានសុខភាពម៉ាស៊ីនមេរួមទាំងការប្រើប្រាស់ CPU, អង្គចងចាំ, ថាស, និងចរាចរណ៍បណ្តាញ។", - monitorCPURam: "ត្រួតពិនិត្យការប្រើប្រាស់ CPU និង RAM", - trackNetworkMetrics: "តាមដានចរាចរណ៍បណ្តាញ", - viewProcesses: "មើលដំណើរការសកម្ម", - // SSL Certificate Card - sslCertificate: "វិញ្ញាបនបត្រ SSL", - sslCertificateDesc: "ត្រួតពិនិត្យសុពលភាពវិញ្ញាបនបត្រ SSL និងទទួលបានការជូនដំណឹងមុនថ្ងៃផុតកំណត់។", - trackSSLExpiration: "តាមដានកាលបរិច្ឆេទផុតកំណត់ SSL", - getEarlyRenewal: "ទទួលបានការជូនដំណឹងបន្តមុនពេល", - monitorMultipleDomains: "ត្រួតពិនិត្យដែនជាច្រើន", - // Incidents Management Card - incidentsManagement: "ការគ្រប់គ្រងឧប្បត្តិហេតុ", - incidentsManagementDesc: "បង្កើត, តាមដាន និងគ្រប់គ្រងឧប្បត្តិហេតុរួមទាំងការចាត់តាំង និងដំណើរការដោះស្រាយ។", - createTrackIncidents: "បង្កើត និងតាមដានឧប្បត្តិហេតុ", - assignIncidents: "ចាត់តាំងឧប្បត្តិហេតុទៅក្រុម", - monitorResolution: "តាមដានដំណើរការដោះស្រាយ", - // Operational Status Card - operationalStatus: "ស្ថានភាពប្រតិបត្តិការ", - operationalStatusDesc: "បង្កើត និងគ្រប់គ្រងទំព័រស្ថានភាពសាធារណៈដើម្បីទំនាក់ទំនងសុខភាពប្រព័ន្ធទៅកាន់អ្នកប្រើប្រាស់។", - createCustomStatus: "បង្កើតទំព័រស្ថានភាពតាមបំណង", - displayRealTime: "បង្ហាញទិន្នន័យជាក់ស្តែង", - shareIncidentUpdates: "ចែករំលែកព័ត៌មានថ្មីៗអំពីឧប្បត្តិហេតុ", - // Reports & Analytics Card - reportsAnalytics: "របាយការណ៍និងការវិភាគ", - reportsAnalyticsDesc: "បង្កើតរបាយការណ៍អំពីដំណើរការប្រព័ន្ធ, ប្រវត្តិនៃពេលវេលាដំណើរការ, និងទិន្នន័យឧប្បត្តិហេតុ។", - generateUptimeReports: "បង្កើតរបាយការណ៍ពេលវេលាដំណើរការ", - analyzePerformance: "វិភាគនិន្នាការដំណើរការ", - exportMonitoringData: "នាំចេញទិន្នន័យត្រួតពិនិត្យ", - // SSL Domain page translations - sslDomainManagement: "ការគ្រប់គ្រង SSL និងដមែន", - monitorSSLCertificates: "តាមដានវិញ្ញាបនបត្រ SSL និងកាលបរិច្ឆេទផុតកំណត់", - validCertificates: "វិញ្ញាបនបត្រមានសុពលភាព", - expiringSoon: "ជិតផុតកំណត់", - expired: "ផុតកំណត់", - refreshAll: "រីហ្រ្វេសទាំងអស់", - addDomain: "បន្ថែមដមែន", - domain: "ដមែន", - issuer: "អ្នកចេញ", - expirationDate: "កាលបរិច្ឆេទផុតកំណត់", - daysLeft: "ថ្ងៃនៅសល់", - lastNotified: "ជូនដំណឹងចុងក្រោយ", - actions: "សកម្មភាព", - view: "មើល", - check: "ពិនិត្យ", - edit: "កែប្រែ", - delete: "លុប", - never: "មិនដែល", - unknown: "មិនស្គាល់", - checkingSSLCertificate: "កំពុងពិនិត្យវិញ្ញាបនបត្រ SSL...", - noSSLCertificates: "មិនមានវិញ្ញាបនបត្រ SSL ឃើញទេ", - // Add SSL Certificate dialog - addSSLCertificate: "បន្ថែមវិញ្ញាបនបត្រ SSL", - warningThreshold: "ទិន្នផលព្រមាន (ថ្ងៃ)", - expiryThreshold: "ទិន្នផលផុតកំណត់ (ថ្ងៃ)", - notificationChannel: "បណ្តាញជូនដំណឹង", - cancel: "បោះបង់", - addCertificate: "បន្ថែមវិញ្ញាបនបត្រ", - getNotifiedExpiration: "ទទួលបានការជូនដំណឹងនៅពេលវិញ្ញាបនបត្រជិតផុតកំណត់", - getNotifiedCritical: "ទទួលបានការជូនដំណឹងនៅពេលវិញ្ញាបនបត្រជិតផុតកំណត់ខ្លាំង", - chooseChannel: "ជ្រើសរើសបណ្តាញដើម្បីទទួលបានការជូនដំណឹងអំពីវិញ្ញាបនបត្រ SSL", - loadingChannels: "កំពុងផ្ទុកបណ្តាញ...", - noChannelsFound: "រកមិនឃើញបណ្តាញជូនដំណឹងទេ", - // Edit SSL Certificate dialog - editSSLCertificate: "កែសម្រួលវិញ្ញាបនបត្រ SSL", - domainName: "ឈ្មោះដមែន", - domainCannotChange: "ឈ្មោះដមែនមិនអាចផ្លាស់ប្តូរបានទេ។ ដើម្បីត្រួតពិនិត្យដមែនផ្សេង សូមបន្ថែមវិញ្ញាបនបត្រថ្មី។", - warningThresholdDays: "ទិន្នផលព្រមាន (ថ្ងៃ)", - expiryThresholdDays: "ទិន្នផលផុតកំណត់ (ថ្ងៃ)", - daysBeforeExpiration: "ថ្ងៃមុនពេលផុតកំណត់ដើម្បីផ្ញើការព្រមាន", - daysBeforeCritical: "ថ្ងៃមុនពេលផុតកំណត់ដើម្បីផ្ញើការជូនដំណឹងសំខាន់", - whereToSend: "កន្លែងដែលត្រូវផ្ញើការជូនដំណឹងអំពីវិញ្ញាបនបត្រនេះ", - saveChanges: "រក្សាទុកការផ្លាស់ប្តូរ", - updating: "កំពុងធ្វើបច្ចុប្បន្នភាព...", - // SSL Certificate details dialog - sslCertificateDetails: "ព័ត៌មានលម្អិតអំពីវិញ្ញាបនបត្រ SSL", - detailedInfo: "ព័ត៌មានលម្អិតអំពីវិញ្ញាបនបត្រ SSL សម្រាប់", - basicInformation: "ព័ត៌មានមូលដ្ឋាន", - validity: "សុពលភាព", - validFrom: "មានសុពលភាពពី", - validUntil: "មានសុពលភាពរហូតដល់", - validityDays: "ថ្ងៃសុពលភាព", - issuerInfo: "ព័ត៌មានអ្នកចេញ", - organization: "អង្គភាព", - commonName: "ឈ្មោះទូទៅ", - technicalDetails: "ព័ត៌មានបច្ចេកទេស", - serialNumber: "លេខស៊េរី", - algorithm: "អាល់ហ្គោរីតឹម", - subjectAltNames: "ឈ្មោះជំនួសកម្មវត្ថុ (SANs)", - none: "គ្មាន", - monitoringConfig: "ការកំណត់ការត្រួតពិនិត្យ", - recordInfo: "ព័ត៌មានកំណត់ត្រា", - created: "បានបង្កើត", - lastUpdated: "បានធ្វើបច្ចុប្បន្នភាពចុងក្រោយ", - lastNotification: "ការជូនដំណឹងចុងក្រោយ", - collectionId: "លេខសម្គាល់ការប្រមូល", - // Delete confirmation dialog - deleteSSLCertificate: "លុបវិញ្ញាបនបត្រ SSL", - deleteConfirmation: "តើអ្នកប្រាកដថាចង់លុបវិញ្ញាបនបត្រ SSL សម្រាប់", - deleteWarning: "សកម្មភាពនេះមិនអាចត្រឡប់ក្រោយវិញបានទេ។", - // Status badges - valid: "មានសុពលភាព", - pending: "កំពុងរង់ចាំ", - // Success and error messages - sslCertificateAdded: "បានបន្ថែមវិញ្ញាបនបត្រ SSL ដោយជោគជ័យ", - sslCertificateUpdated: "បានធ្វើបច្ចុប្បន្នភាពវិញ្ញាបនបត្រ SSL ដោយជោគជ័យ", - sslCertificateDeleted: "បានលុបវិញ្ញាបនបត្រ SSL ដោយជោគជ័យ", - sslCertificateRefreshed: "បានបន្តុះវិញ្ញាបនបត្រ SSL ដោយជោគជ័យសម្រាប់", - allCertificatesRefreshed: "បានបន្តុះវិញ្ញាបនបត្រទាំងអស់ដោយជោគជ័យ", - someCertificatesFailed: "បន្តុះវិញ្ញាបនបត្រ៖ ជោគជ័យ, បរាជ័យ", - failedToLoadCertificates: "បរាជ័យក្នុងការផ្ទុកវិញ្ញាបនបត្រ SSL", - failedToAddCertificate: "បរាជ័យក្នុងការបន្ថែមវិញ្ញាបនបត្រ SSL", - failedToUpdateCertificate: "បរាជ័យក្នុងការធ្វើបច្ចុប្បន្នភាពវិញ្ញាបនបត្រ SSL", - failedToDeleteCertificate: "បរាជ័យក្នុងការលុបវិញ្ញាបនបត្រ SSL", - failedToCheckCertificate: "បរាជ័យក្នុងការពិនិត្យវិញ្ញាបនបត្រ SSL", - noCertificatesToRefresh: "គ្មានវិញ្ញាបនបត្រដើម្បីធ្វើឱ្យស្រស់", - startingRefreshAll: "កំពុងចាប់ផ្តើមធ្វើឱ្យស្រស់នៃវិញ្ញាបនបត្រទាំងអស់..." -}; \ No newline at end of file diff --git a/application/src/translations/km/about.ts b/application/src/translations/km/about.ts new file mode 100644 index 0000000..dd44555 --- /dev/null +++ b/application/src/translations/km/about.ts @@ -0,0 +1,18 @@ + +import { AboutTranslations } from '../types/about'; + +export const aboutTranslations: AboutTranslations = { + aboutCheckcle: "អំពី Checkcle", + systemDescription: "Checkcle គឺជាស្តាកការត្រួតពិនិត្យប្រភពបើកទូលាយដែលផ្តល់នូវការយល់ដឹងជាក់ស្តែងអំពីសុខភាពម៉ាស៊ីនមេ និងសេវាកម្ម, ការគ្រប់គ្រងឧបទ្ទវហេតុ, និងតម្លាភាពនៃប្រតិបត្តិការ។ ចេញផ្សាយជាអាជ្ញាបណ្ណ MIT។", + systemVersion: "កំណែប្រព័ន្ធ", + license: "អាជ្ញាបណ្ណ", + mitLicense: "អាជ្ញាបណ្ណ MIT", + links: "តំណភ្ជាប់", + viewOnGithub: "មើលលើ GitHub", + viewDocumentation: "មើលឯកសារ", + followOnX: "តាមដានលើ X", + joinDiscord: "ចូលរួមក្នុង Discord", + quickActions: "សកម្មភាពរហ័ស", + quickActionsDescription: "ចូលប្រើប្រតិបត្តិការត្រួតពិនិត្យ និងមុខងារទូទៅយ៉ាងរហ័ស។ ជ្រើសរើសសកម្មភាពខាងក្រោមដើម្បីចាប់ផ្តើម។", + quickTips: "គន្លឹះរហ័ស", +}; \ No newline at end of file diff --git a/application/src/translations/km/common.ts b/application/src/translations/km/common.ts new file mode 100644 index 0000000..84ed44c --- /dev/null +++ b/application/src/translations/km/common.ts @@ -0,0 +1,29 @@ + +import { CommonTranslations } from '../types/common'; + +export const commonTranslations: CommonTranslations = { + welcome: "សូមស្វាគមន៍", + logout: "ចាកចេញ", + language: "ភាសា", + english: "អង់គ្លេស", + khmer: "ខ្មែរ", + german: "Deutsch", + goodMorning: "អរុណសួស្តី", + goodAfternoon: "ទិវាសួស្តី", + goodEvening: "សាយណ្ហសួស្តី", + profile: "ប្រវត្តិរូប", + settings: "ការកំណត់", + documentation: "ឯកសារ", + notifications: "ការជូនដំណឹង", + close: "បិទ", + cancel: "បោះបង់", + view: "មើល", + edit: "កែសម្រួល", + delete: "លុប", + status: "ស្ថានភាព", + time: "ពេលវេលា", + title: "ចំណងជើង", + description: "ការពិពណ៌នា", + success: "ជោគជ័យ", + error: "កំហុស", +}; diff --git a/application/src/translations/km/incident.ts b/application/src/translations/km/incident.ts new file mode 100644 index 0000000..c33191f --- /dev/null +++ b/application/src/translations/km/incident.ts @@ -0,0 +1,55 @@ + +import { IncidentTranslations } from '../types/incident'; + +export const incidentTranslations: IncidentTranslations = { + incidentManagement: "ការគ្រប់គ្រងឧប្បត្តិហេតុ", + incidentsManagementDesc: "តាមដាន និងគ្រប់គ្រងឧប្បត្តិហេតុសេវាកម្ម និងការដោះស្រាយរបស់ពួកវា", + unresolvedIncidents: "មិនទាន់ដោះស្រាយ", + resolvedIncidents: "បានដោះស្រាយ", + activeIncidents: "ឧប្បត្តិហេតុសកម្ម", + criticalIssues: "បញ្ហាសំខាន់ៗ", + avgResolutionTime: "ពេលវេលាដោះស្រាយជាមធ្យម", + noIncidents: "គ្មានឧប្បត្តិហេតុសកម្មទេ", + createIncident: "បង្កើតឧប្បត្តិហេតុ", + investigating: "កំពុងស៊ើបអង្កេត", + identified: "បានរកឃើញ", + monitoring: "កំពុងតាមដាន", + resolved: "បានដោះស្រាយ", + scheduleIncidentManagement: "ការគ្រប់គ្រងកាលវិភាគ និងឧប្បត្តិហេតុ", + incidentName: "ឈ្មោះឧប្បត្តិហេតុ", + incidentStatus: "ស្ថានភាពឧប្បត្តិហេតុ", + highPriority: "អាទិភាពខ្ពស់", + configurationSettings: "ការកំណត់រចនាសម្ព័ន្ធ", + incidentCreatedSuccess: "ឧប្បត្តិហេតុត្រូវបានបង្កើតដោយជោគជ័យ", + basicInfo: "ព័ត៌មានមូលដ្ឋាន", + serviceId: "លេខសម្គាល់សេវាកម្ម", + assignedTo: "ចាត់តាំងទៅឱ្យ", + unassigned: "មិនបានចាត់តាំង", + timeline: "កាលវិភាគ", + incidentTime: "ពេលមានឧប្បត្តិហេតុ", + resolutionTime: "ពេលវេលាដោះស្រាយ", + systems: "ប្រព័ន្ធ", + noSystems: "គ្មានប្រព័ន្ធរងផលប៉ះពាល់", + impactAnalysis: "ការវិភាគផលប៉ះពាល់", + rootCause: "មូលហេតុចម្បង", + resolutionSteps: "ជំហានដោះស្រាយ", + lessonsLearned: "មេរៀនដែលបានរៀន", + resolutionDetails: "ព័ត៌មានលម្អិតនៃដំណោះស្រាយ", + assignment: "ការចាត់តាំង", + download: "ទាញយក", + downloadPdf: "ទាញយកជា PDF", + print: "បោះពុម្ព", + confidentialNote: "ឯកសារនេះជាការសម្ងាត់និងសម្រាប់ការប្រើប្រាស់ផ្ទៃក្នុងតែប៉ុណ្ណោះ។", + generatedOn: "បង្កើតនៅថ្ងៃទី", + enterResolutionSteps: "បញ្ចូលជំហានដែលបានធ្វើដើម្បីដោះស្រាយឧប្បត្តិហេតុ", + enterLessonsLearned: "បញ្ចូលមេរៀនដែលបានរៀនពីឧប្បត្តិហេតុនេះ", + editIncident: "កែសម្រួលឧប្បត្តិហេតុ", + editIncidentDesc: "ធ្វើបច្ចុប្បន្នភាពព័ត៌មានលម្អិតសម្រាប់ឧប្បត្តិហេតុនេះ", + updating: "កំពុងធ្វើបច្ចុប្បន្នភាព...", + update: "ធ្វើបច្ចុប្បន្នភាព", + create: "បង្កើត", + creating: "កំពុងបង្កើត...", + configuration: "ការកំណត់រចនាសម្ព័ន្ធ", + failedToUpdateStatus: "បរាជ័យក្នុងការធ្វើបច្ចុប្បន្នភាពស្ថានភាព", + inProgress: "កំពុងដំណើរការ", +}; diff --git a/application/src/translations/km/index.ts b/application/src/translations/km/index.ts new file mode 100644 index 0000000..f1ac6a7 --- /dev/null +++ b/application/src/translations/km/index.ts @@ -0,0 +1,23 @@ + +import { Translations } from '../types'; +import { commonTranslations } from './common'; +import { menuTranslations } from './menu'; +import { loginTranslations } from './login'; +import { aboutTranslations } from './about'; +import { servicesTranslations } from './services'; +import { maintenanceTranslations } from './maintenance'; +import { incidentTranslations } from './incident'; +import { sslTranslations } from './ssl'; + +const kmTranslations: Translations = { + common: commonTranslations, + menu: menuTranslations, + login: loginTranslations, + about: aboutTranslations, + services: servicesTranslations, + maintenance: maintenanceTranslations, + incident: incidentTranslations, + ssl: sslTranslations +}; + +export default kmTranslations; diff --git a/application/src/translations/km/login.ts b/application/src/translations/km/login.ts new file mode 100644 index 0000000..cdeeb68 --- /dev/null +++ b/application/src/translations/km/login.ts @@ -0,0 +1,23 @@ + +import { LoginTranslations } from '../types/login'; + +export const loginTranslations: LoginTranslations = { + signInToYourAccount: "ចូលគណនីរបស់អ្នក", + dontHaveAccount: "មិនមានគណនីមែនទេ?", + createOne: "បង្កើតមួយ", + signInWithGoogle: "ចូលជាមួយ Google", + orContinueWith: "ឬ", + email: "អ៊ីមែល", + password: "ពាក្យសម្ងាត់", + forgot: "ភ្លេច?", + signIn: "ចូល", + signingIn: "កំពុងចូល...", + loginSuccessful: "ការចូលបានជោគជ័យ", + loginSuccessMessage: "អ្នកបានចូលប្រើដោយជោគជ័យ។", + loginFailed: "ការចូលបានបរាជ័យ", + authenticationFailed: "ការផ្ទៀងផ្ទាត់បានបរាជ័យ", + bySigningIn: "ដោយការចូល អ្នកយល់ព្រមនឹង", + termsAndConditions: "លក្ខខណ្ឌ", + and: "និង", + privacyPolicy: "គោលនយោបាយឯកជនភាព", +}; diff --git a/application/src/translations/km/maintenance.ts b/application/src/translations/km/maintenance.ts new file mode 100644 index 0000000..273a1eb --- /dev/null +++ b/application/src/translations/km/maintenance.ts @@ -0,0 +1,68 @@ + +import { MaintenanceTranslations } from '../types/maintenance'; + +export const maintenanceTranslations: MaintenanceTranslations = { + scheduledMaintenance: "ការថែទាំដែលបានកំណត់ពេល", + scheduledMaintenanceDesc: "មើល និងគ្រប់គ្រងកាលវិភាគថែទាំសម្រាប់ប្រព័ន្ធនិងសេវាកម្មរបស់អ្នក", + upcomingMaintenance: "ជិតមកដល់", + ongoingMaintenance: "កំពុងដំណើរការ", + completedMaintenance: "បានបញ្ចប់", + createMaintenanceWindow: "បង្កើតកាលវិភាគថែទាំ", + totalScheduledHours: "ចំនួនម៉ោងកំណត់សរុប", + maintenanceName: "ឈ្មោះកាលវិភាគថែទាំ", + maintenanceStatus: "ស្ថានភាព", + scheduledStart: "ពេលចាប់ផ្តើមដែលបានកំណត់", + scheduledEnd: "ពេលបញ្ចប់ដែលបានកំណត់", + affectedServices: "សេវាកម្មរងផលប៉ះពាល់", + impact: "ផលប៉ះពាល់", + minor: "តិចតួច", + major: "សំខាន់", + critical: "សំខាន់ខ្លាំង", + none: "គ្មាន", + actions: "សកម្មភាព", + scheduled: "បានកំណត់ពេល", + inprogress: "កំពុងដំណើរការ", + completed: "បានបញ្ចប់", + cancelled: "បានបោះបង់", + markAsInProgress: "សម្គាល់ថាកំពុងដំណើរការ", + markAsCompleted: "សម្គាល់ថាបានបញ្ចប់", + markAsCancelled: "សម្គាល់ថាបានបោះបង់", + confirmDelete: "បញ្ជាក់ការលុប", + deleteMaintenanceConfirmation: "តើអ្នកប្រាកដថាចង់លុបកាលវិភាគថែទាំនេះមែនទេ?", + thisActionCannotBeUndone: "សកម្មភាពនេះមិនអាចត្រឡប់ក្រោយវិញបានទេ។", + maintenanceDeleted: "លុបកាលវិភាគថែទាំ", + maintenanceDeletedDesc: "កាលវិភាគថែទាំត្រូវបានលុបដោយជោគជ័យ។", + errorDeletingMaintenance: "មានបញ្ហាក្នុងការលុបកាលវិភាគថែទាំ។", + statusUpdated: "បានធ្វើបច្ចុប្បន្នភាពស្ថានភាព", + maintenanceStatusUpdated: "ស្ថានភាពការថែទាំត្រូវបានធ្វើបច្ចុប្បន្នភាពដោយជោគជ័យ។", + errorUpdatingMaintenanceStatus: "មានកំហុសក្នុងការធ្វើបច្ចុប្បន្នភាពស្ថានភាពការថែទាំ។", + createMaintenance: "បង្កើតកាលវិភាគថែទាំ", + createMaintenanceDesc: "កំណត់ពេលវេលាថែទាំថ្មីសម្រាប់សេវាកម្មរបស់អ្នក", + enterTitle: "បញ្ចូលចំណងជើងកាលវិភាគថែទាំ", + enterDescription: "បញ្ចូលការពិពណ៌នាលម្អិតអំពីការថែទាំ", + startTime: "ពេលចាប់ផ្តើម", + endTime: "ពេលបញ្ចប់", + selectDate: "ជ្រើសរើសកាលបរិច្ឆេទ", + enterAffectedServices: "បញ្ចូលសេវាកម្មរងផលប៉ះពាល់", + separateServicesWithComma: "បំបែកសេវាកម្មច្រើនដោយសញ្ញាក្បៀស", + priority: "អាទិភាព", + selectPriority: "ជ្រើសរើសអាទិភាព", + selectStatus: "ជ្រើសរើសស្ថានភាព", + selectImpact: "ជ្រើសរើសផលប៉ះពាល់", + notifySubscribers: "ជូនដំណឹងដល់អ្នកជាវ", + notifySubscribersDesc: "ផ្ញើការជូនដំណឹងទៅអ្នកជាវទាំងអស់នៅពេលការថែទាំនេះចាប់ផ្តើម", + maintenanceCreated: "បានបង្កើតកាលវិភាគថែទាំ", + maintenanceCreatedDesc: "កាលវិភាគថែទាំត្រូវបានកំណត់ពេលដោយជោគជ័យ។", + errorCreatingMaintenance: "មានបញ្ហាក្នុងការបង្កើតកាលវិភាគថែទាំ។", + errorFetchingMaintenanceData: "មានបញ្ហាក្នុងការទាញយកទិន្នន័យកាលវិភាគថែទាំ។", + low: "ទាប", + medium: "មធ្យម", + high: "ខ្ពស់", + created: "បានបង្កើត", + lastUpdated: "ធ្វើបច្ចុប្បន្នភាពចុងក្រោយ", + subscribersWillBeNotified: "អ្នកជាវនឹងត្រូវបានជូនដំណឹងនៅពេលការថែទាំចាប់ផ្តើម", + noNotifications: "នឹងមិនមានការផ្ញើការជូនដំណឹងទេ", + noScheduledMaintenance: "មិនមានកាលវិភាគថែទាំទេ", + noMaintenanceWindows: "មិនមានកាលវិភាគថែទាំសម្រាប់រយៈពេលនេះទេ។ បង្កើតមួយដោយចុចប៊ូតុង \"បង្កើតកាលវិភាគថែទាំ\"។", + maintenanceCreatedSuccess: "កាលវិភាគថែទាំត្រូវបានបង្កើតដោយជោគជ័យ", +}; diff --git a/application/src/translations/km/menu.ts b/application/src/translations/km/menu.ts new file mode 100644 index 0000000..228321f --- /dev/null +++ b/application/src/translations/km/menu.ts @@ -0,0 +1,21 @@ + +import { MenuTranslations } from '../types/menu'; + +export const menuTranslations: MenuTranslations = { + uptimeMonitoring: "ការត្រួតពិនិត្យ Uptime", + instanceMonitoring: "ការត្រួតពិនិត្យឧបករណ៍", + sslDomain: "SSL និងដមែន", + scheduleIncident: "កាលវិភាគនិងឧបទ្ទវហេតុ", + operationalPage: "ទំព័រប្រតិបត្តិការ", + reports: "របាយការណ៍", + apiDocumentation: "ឯកសារ API", + settingPanel: "ផ្ទាំងការកំណត់", + generalSettings: "ការកំណត់ទូទៅ", + userManagement: "ការគ្រប់គ្រងអ្នកប្រើប្រាស់", + notificationSettings: "ការកំណត់ការជូនដំណឹង", + alertsTemplates: "គំរូការជូនដំណឹង", + rolesManagement: "ការគ្រប់គ្រងតួនាទី", + dataRetention: "ការរក្សាទុកទិន្នន័យ", + backupSettings: "ការកំណត់បម្រុងទុក", + aboutSystem: "អំពីប្រព័ន្ធ", +}; diff --git a/application/src/translations/km/services.ts b/application/src/translations/km/services.ts new file mode 100644 index 0000000..658ac75 --- /dev/null +++ b/application/src/translations/km/services.ts @@ -0,0 +1,12 @@ + +import { ServicesTranslations } from '../types/services'; + +export const servicesTranslations: ServicesTranslations = { + serviceName: "ឈ្មោះសេវាកម្ម", + serviceType: "ប្រភេទសេវាកម្ម", + serviceStatus: "ស្ថានភាពសេវាកម្ម", + responseTime: "ពេលវេលាឆ្លើយតប", + uptime: "ពេលវេលាដំណើរការ", + lastChecked: "ពិនិត្យចុងក្រោយ", + noServices: "មិនមានសេវាកម្មដែលត្រូវនឹងលក្ខណៈវិនិច្ឆ័យរបស់អ្នក។", +}; diff --git a/application/src/translations/km/ssl.ts b/application/src/translations/km/ssl.ts new file mode 100644 index 0000000..b2a00df --- /dev/null +++ b/application/src/translations/km/ssl.ts @@ -0,0 +1,107 @@ + +import { SSLTranslations } from '../types/ssl'; + +export const sslTranslations: SSLTranslations = { + // Page and section titles + sslDomainManagement: "ការគ្រប់គ្រង SSL និង ដូមេន", + monitorSSLCertificates: "តាមដាន និង គ្រប់គ្រងវិញ្ញាបនបត្រ SSL សម្រាប់ដូមេនរបស់អ្នក", + addSSLCertificate: "បន្ថែមវិញ្ញាបនបត្រ SSL", + editSSLCertificate: "កែសម្រួលវិញ្ញាបនបត្រ SSL", + deleteSSLCertificate: "លុបវិញ្ញាបនបត្រ SSL", + sslCertificateDetails: "ព័ត៌មានលម្អិតនៃវិញ្ញាបនបត្រ SSL", + detailedInfo: "ព័ត៌មានលម្អិតសម្រាប់", + + // Status related + valid: "មានសុពលភាព", + expiringSoon: "ជិតផុតកំណត់", + expired: "ផុតកំណត់", + pending: "កំពុងរង់ចាំ", + + // Statistics and cards + validCertificates: "វិញ្ញាបនបត្រមានសុពលភាព", + expiringSoonCertificates: "ជិតផុតកំណត់", + expiredCertificates: "វិញ្ញាបនបត្រផុតកំណត់", + + // Form fields + domain: "ដូមេន", + domainName: "ឈ្មោះដូមេន", + domainCannotChange: "ដូមេនមិនអាចផ្លាស់ប្តូរបានបន្ទាប់ពីការបង្កើត", + warningThreshold: "កម្រិតព្រមាន", + warningThresholdDays: "កម្រិតព្រមាន (ថ្ងៃ)", + expiryThreshold: "កម្រិតផុតកំណត់", + expiryThresholdDays: "កម្រិតផុតកំណត់ (ថ្ងៃ)", + notificationChannel: "ឆានែលជូនដំណឹង", + chooseChannel: "ជ្រើសរើសឆានែលជូនដំណឹង", + whereToSend: "ទីកន្លែងដែលត្រូវផ្ញើការជូនដំណឹង", + daysBeforeExpiration: "ថ្ងៃមុនពេលផុតកំណត់ដើម្បីទទួលបានការព្រមាន", + daysBeforeCritical: "ថ្ងៃមុនពេលផុតកំណត់ដើម្បីទទួលបានការជូនដំណឹងសំខាន់ៗ", + getNotifiedExpiration: "ទទួលការជូនដំណឹងនៅពេលវិញ្ញាបនបត្រជិតផុតកំណត់", + getNotifiedCritical: "ទទួលការជូនដំណឹងនៅពេលវិញ្ញាបនបត្រជិតដល់ពេលផុតកំណត់ខ្លាំង", + + // Table headers and fields + issuer: "អ្នកចេញផ្សាយ", + expirationDate: "កាលបរិច្ឆេទផុតកំណត់", + daysLeft: "ថ្ងៃនៅសល់", + status: "ស្ថានភាព", + lastNotified: "ជូនដំណឹងចុងក្រោយ", + actions: "សកម្មភាព", + validFrom: "មានសុពលភាពចាប់ពី", + validUntil: "មានសុពលភាពរហូតដល់", + validityDays: "ថ្ងៃសុពលភាព", + organization: "អង្គការ", + commonName: "ឈ្មោះទូទៅ", + serialNumber: "លេខសៀរៀល", + algorithm: "អាល់ហ្គោរីត", + subjectAltNames: "ឈ្មោះផ្សេងៗដែលអាចប្រើបាន", + + // Buttons and actions + addDomain: "បន្ថែមដូមេន", + refreshAll: "ធ្វើបច្ចុប្បន្នភាពទាំងអស់", + cancel: "បោះបង់", + addCertificate: "បន្ថែមវិញ្ញាបនប័ត្រ", + check: "ពិនិត្យ", + view: "មើល", + edit: "កែសម្រួល", + delete: "លុប", + close: "បិទ", + saveChanges: "រក្សាទុកការផ្លាស់ប្តូរ", + updating: "កំពុងធ្វើបច្ចុប្បន្នភាព", + + // Sections in detail view + basicInformation: "ព័ត៌មានមូលដ្ឋាន", + validity: "សុពលភាព", + issuerInfo: "ព័ត៌មានអ្នកចេញផ្សាយ", + technicalDetails: "ព័ត៌មានបច្ចេកទេស", + monitoringConfig: "ការកំណត់រចនាសម្ព័ន្ធការតាមដាន", + recordInfo: "ព័ត៌មានកំណត់ត្រា", + + // Notifications and messages + sslCertificateAdded: "វិញ្ញាបនបត្រ SSL បានបន្ថែមដោយជោគជ័យ", + sslCertificateUpdated: "វិញ្ញាបនបត្រ SSL បានធ្វើបច្ចុប្បន្នភាពដោយជោគជ័យ", + sslCertificateDeleted: "វិញ្ញាបនបត្រ SSL ត្រូវបានលុបដោយជោគជ័យ", + sslCertificateRefreshed: "វិញ្ញាបនបត្រ SSL សម្រាប់ {domain} បានធ្វើបច្ចុប្បន្នភាពដោយជោគជ័យ", + allCertificatesRefreshed: "វិញ្ញាបនបត្រទាំងអស់ {count} បានធ្វើបច្ចុប្បន្នភាពដោយជោគជ័យ", + someCertificatesFailed: "វិញ្ញាបនប័ត្រ {success} បានធ្វើបច្ចុប្បន្នភាព, {failed} បានបរាជ័យ", + failedToAddCertificate: "បរាជ័យក្នុងការបន្ថែមវិញ្ញាបនបត្រ SSL", + failedToLoadCertificates: "បរាជ័យក្នុងការផ្ទុកវិញ្ញាបនបត្រ SSL", + failedToUpdateCertificate: "បរាជ័យក្នុងការធ្វើបច្ចុប្បន្នភាពវិញ្ញាបនបត្រ SSL", + failedToDeleteCertificate: "បរាជ័យក្នុងការលុបវិញ្ញាបនបត្រ SSL", + failedToCheckCertificate: "បរាជ័យក្នុងការពិនិត្យមើលវិញ្ញាបនបត្រ SSL", + noCertificatesToRefresh: "មិនមានវិញ្ញាបនបត្រដើម្បីធ្វើបច្ចុប្បន្នភាពទេ", + startingRefreshAll: "ចាប់ផ្តើមធ្វើបច្ចុប្បន្នភាពវិញ្ញាបនបត្រចំនួន {count}", + checkingSSLCertificate: "កំពុងពិនិត្យមើលវិញ្ញាបនបត្រ SSL...", + deleteConfirmation: "តើអ្នកពិតជាចង់លុបវិញ្ញាបនបត្រសម្រាប់", + deleteWarning: "សកម្មភាពនេះមិនអាចត្រឡប់វិញបានទេ។ វានឹងលុបវិញ្ញាបនបត្រជាអចិន្ត្រៃយ៍។", + + // Misc + unknown: "មិនស្គាល់", + never: "មិនដែល", + none: "គ្មាន", + loadingChannels: "កំពុងផ្ទុកឆានែល...", + noChannelsFound: "រកមិនឃើញឆានែលជូនដំណឹងទេ", + noSSLCertificates: "រកមិនឃើញវិញ្ញាបនបត្រ SSL ទេ", + created: "បានបង្កើត", + lastUpdated: "បានធ្វើបច្ចុប្បន្នភាពចុងក្រោយ", + lastNotification: "ការជូនដំណឹងចុងក្រោយ", + collectionId: "លេខសម្គាល់ប្រមូលផ្តុំ" +}; diff --git a/application/src/translations/types/about.ts b/application/src/translations/types/about.ts new file mode 100644 index 0000000..244ec53 --- /dev/null +++ b/application/src/translations/types/about.ts @@ -0,0 +1,16 @@ + +export interface AboutTranslations { + aboutReamStack: string; + systemDescription: string; + systemVersion: string; + license: string; + mitLicense: string; + links: string; + viewOnGithub: string; + viewDocumentation: string; + followOnX: string; + joinDiscord: string; + quickActions: string; + quickActionsDescription: string; + quickTips: string; +} diff --git a/application/src/translations/types/common.ts b/application/src/translations/types/common.ts new file mode 100644 index 0000000..fc16c53 --- /dev/null +++ b/application/src/translations/types/common.ts @@ -0,0 +1,26 @@ + +export interface CommonTranslations { + welcome: string; + logout: string; + language: string; + english: string; + khmer: string; + goodMorning: string; + goodAfternoon: string; + goodEvening: string; + profile: string; + settings: string; + documentation: string; + notifications: string; + close: string; + cancel: string; + view: string; + edit: string; + delete: string; + status: string; + time: string; + title: string; + description: string; + success: string; + error: string; +} diff --git a/application/src/translations/types/incident.ts b/application/src/translations/types/incident.ts new file mode 100644 index 0000000..83d2014 --- /dev/null +++ b/application/src/translations/types/incident.ts @@ -0,0 +1,53 @@ + +export interface IncidentTranslations { + incidentManagement: string; + incidentsManagementDesc: string; + unresolvedIncidents: string; + resolvedIncidents: string; + activeIncidents: string; + criticalIssues: string; + avgResolutionTime: string; + noIncidents: string; + createIncident: string; + investigating: string; + identified: string; + monitoring: string; + resolved: string; + scheduleIncidentManagement: string; + incidentName: string; + incidentStatus: string; + highPriority: string; + configurationSettings: string; + incidentCreatedSuccess: string; + basicInfo: string; + serviceId: string; + assignedTo: string; + unassigned: string; + timeline: string; + incidentTime: string; + resolutionTime: string; + systems: string; + noSystems: string; + impactAnalysis: string; + rootCause: string; + resolutionSteps: string; + lessonsLearned: string; + resolutionDetails: string; + assignment: string; + download: string; + downloadPdf: string; + print: string; + confidentialNote: string; + generatedOn: string; + enterResolutionSteps: string; + enterLessonsLearned: string; + editIncident: string; + editIncidentDesc: string; + updating: string; + update: string; + create: string; + creating: string; + configuration: string; + failedToUpdateStatus: string; + inProgress: string; +} diff --git a/application/src/translations/types/index.ts b/application/src/translations/types/index.ts new file mode 100644 index 0000000..f14aa50 --- /dev/null +++ b/application/src/translations/types/index.ts @@ -0,0 +1,20 @@ + +import { CommonTranslations } from './common'; +import { MenuTranslations } from './menu'; +import { LoginTranslations } from './login'; +import { AboutTranslations } from './about'; +import { ServicesTranslations } from './services'; +import { MaintenanceTranslations } from './maintenance'; +import { IncidentTranslations } from './incident'; +import { SSLTranslations } from './ssl'; + +export interface Translations { + common: CommonTranslations; + menu: MenuTranslations; + login: LoginTranslations; + about: AboutTranslations; + services: ServicesTranslations; + maintenance: MaintenanceTranslations; + incident: IncidentTranslations; + ssl: SSLTranslations; +} diff --git a/application/src/translations/types/login.ts b/application/src/translations/types/login.ts new file mode 100644 index 0000000..05c7626 --- /dev/null +++ b/application/src/translations/types/login.ts @@ -0,0 +1,21 @@ + +export interface LoginTranslations { + signInToYourAccount: string; + dontHaveAccount: string; + createOne: string; + signInWithGoogle: string; + orContinueWith: string; + email: string; + password: string; + forgot: string; + signIn: string; + signingIn: string; + loginSuccessful: string; + loginSuccessMessage: string; + loginFailed: string; + authenticationFailed: string; + bySigningIn: string; + termsAndConditions: string; + and: string; + privacyPolicy: string; +} diff --git a/application/src/translations/types/maintenance.ts b/application/src/translations/types/maintenance.ts new file mode 100644 index 0000000..7170349 --- /dev/null +++ b/application/src/translations/types/maintenance.ts @@ -0,0 +1,66 @@ + +export interface MaintenanceTranslations { + scheduledMaintenance: string; + scheduledMaintenanceDesc: string; + upcomingMaintenance: string; + ongoingMaintenance: string; + completedMaintenance: string; + createMaintenanceWindow: string; + totalScheduledHours: string; + maintenanceName: string; + maintenanceStatus: string; + scheduledStart: string; + scheduledEnd: string; + affectedServices: string; + impact: string; + minor: string; + major: string; + critical: string; + none: string; + actions: string; + scheduled: string; + inprogress: string; + completed: string; + cancelled: string; + markAsInProgress: string; + markAsCompleted: string; + markAsCancelled: string; + confirmDelete: string; + deleteMaintenanceConfirmation: string; + thisActionCannotBeUndone: string; + maintenanceDeleted: string; + maintenanceDeletedDesc: string; + errorDeletingMaintenance: string; + statusUpdated: string; + maintenanceStatusUpdated: string; + errorUpdatingMaintenanceStatus: string; + createMaintenance: string; + createMaintenanceDesc: string; + enterTitle: string; + enterDescription: string; + startTime: string; + endTime: string; + selectDate: string; + enterAffectedServices: string; + separateServicesWithComma: string; + priority: string; + selectPriority: string; + selectStatus: string; + selectImpact: string; + notifySubscribers: string; + notifySubscribersDesc: string; + maintenanceCreated: string; + maintenanceCreatedDesc: string; + errorCreatingMaintenance: string; + errorFetchingMaintenanceData: string; + low: string; + medium: string; + high: string; + created: string; + lastUpdated: string; + subscribersWillBeNotified: string; + noNotifications: string; + noScheduledMaintenance: string; + noMaintenanceWindows: string; + maintenanceCreatedSuccess: string; +} diff --git a/application/src/translations/types/menu.ts b/application/src/translations/types/menu.ts new file mode 100644 index 0000000..a70923c --- /dev/null +++ b/application/src/translations/types/menu.ts @@ -0,0 +1,19 @@ + +export interface MenuTranslations { + uptimeMonitoring: string; + instanceMonitoring: string; + sslDomain: string; + scheduleIncident: string; + operationalPage: string; + reports: string; + apiDocumentation: string; + settingPanel: string; + generalSettings: string; + userManagement: string; + notificationSettings: string; + alertsTemplates: string; + rolesManagement: string; + dataRetention: string; + backupSettings: string; + aboutSystem: string; +} diff --git a/application/src/translations/types/services.ts b/application/src/translations/types/services.ts new file mode 100644 index 0000000..5d93087 --- /dev/null +++ b/application/src/translations/types/services.ts @@ -0,0 +1,10 @@ + +export interface ServicesTranslations { + serviceName: string; + serviceType: string; + serviceStatus: string; + responseTime: string; + uptime: string; + lastChecked: string; + noServices: string; +} diff --git a/application/src/translations/types/ssl.ts b/application/src/translations/types/ssl.ts new file mode 100644 index 0000000..119a204 --- /dev/null +++ b/application/src/translations/types/ssl.ts @@ -0,0 +1,105 @@ + +export interface SSLTranslations { + // Page and section titles + sslDomainManagement: string; + monitorSSLCertificates: string; + addSSLCertificate: string; + editSSLCertificate: string; + deleteSSLCertificate: string; + sslCertificateDetails: string; + detailedInfo: string; + + // Status related + valid: string; + expiringSoon: string; + expired: string; + pending: string; + + // Statistics and cards + validCertificates: string; + expiringSoonCertificates: string; + expiredCertificates: string; + + // Form fields + domain: string; + domainName: string; + domainCannotChange: string; + warningThreshold: string; + warningThresholdDays: string; + expiryThreshold: string; + expiryThresholdDays: string; + notificationChannel: string; + chooseChannel: string; + whereToSend: string; + daysBeforeExpiration: string; + daysBeforeCritical: string; + getNotifiedExpiration: string; + getNotifiedCritical: string; + + // Table headers and fields + issuer: string; + expirationDate: string; + daysLeft: string; + status: string; + lastNotified: string; + actions: string; + validFrom: string; + validUntil: string; + validityDays: string; + organization: string; + commonName: string; + serialNumber: string; + algorithm: string; + subjectAltNames: string; + + // Buttons and actions + addDomain: string; + refreshAll: string; + cancel: string; + addCertificate: string; + check: string; + view: string; + edit: string; + delete: string; + close: string; + saveChanges: string; + updating: string; + + // Sections in detail view + basicInformation: string; + validity: string; + issuerInfo: string; + technicalDetails: string; + monitoringConfig: string; + recordInfo: string; + + // Notifications and messages + sslCertificateAdded: string; + sslCertificateUpdated: string; + sslCertificateDeleted: string; + sslCertificateRefreshed: string; + allCertificatesRefreshed: string; + someCertificatesFailed: string; + failedToAddCertificate: string; + failedToLoadCertificates: string; + failedToUpdateCertificate: string; + failedToDeleteCertificate: string; + failedToCheckCertificate: string; + noCertificatesToRefresh: string; + startingRefreshAll: string; + checkingSSLCertificate: string; + deleteConfirmation: string; + deleteWarning: string; + + // Misc + unknown: string; + never: string; + none: string; + loadingChannels: string; + noChannelsFound: string; + noSSLCertificates: string; + created: string; + lastUpdated: string; + lastNotification: string; + collectionId: string; +}