diff --git a/application/src/components/dashboard/Header.tsx b/application/src/components/dashboard/Header.tsx
index ed5b542..d0db992 100644
--- a/application/src/components/dashboard/Header.tsx
+++ b/application/src/components/dashboard/Header.tsx
@@ -116,6 +116,9 @@ export const Header = ({
setLanguage("de")} className={language === "de" ? "bg-accent" : ""}>
{t("Deutsch")}
+ setLanguage("ko")} className={language === "ko" ? "bg-accent" : ""}>
+ {t("korean")}
+
setLanguage("ja")} className={language === "ja" ? "bg-accent" : ""}>
{t("japanese")}
diff --git a/application/src/translations/de/common.ts b/application/src/translations/de/common.ts
index 5d439c2..0b2f409 100644
--- a/application/src/translations/de/common.ts
+++ b/application/src/translations/de/common.ts
@@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = {
english: "Englisch",
khmer: "ភាសាខ្មែរ",
german: "Deutsch",
+ korean: "한국어",
japanese: "日本語",
simplifiedChinese: "简体中文",
goodMorning: "Guten Morgen",
diff --git a/application/src/translations/en/common.ts b/application/src/translations/en/common.ts
index 7033ff1..abda24b 100644
--- a/application/src/translations/en/common.ts
+++ b/application/src/translations/en/common.ts
@@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = {
english: "Englisch",
khmer: "ភាសាខ្មែរ",
german: "Deutsch",
+ korean: "한국어",
japanese: "日本語",
simplifiedChinese: "简体中文",
goodMorning: "Good morning",
diff --git a/application/src/translations/index.ts b/application/src/translations/index.ts
index fdd550e..8dd3223 100644
--- a/application/src/translations/index.ts
+++ b/application/src/translations/index.ts
@@ -1,15 +1,17 @@
import enTranslations from './en';
import kmTranslations from './km';
import deTranslations from './de';
+import koTranslations from './ko';
import jaTranslations from './ja';
import zhcnTranslations from './zhcn';
-export type Language = "en" | "km" | "de" | "ja" | "zhcn";
+export type Language = "en" | "km" | "de" | "ko" | "ja" | "zhcn";
export const translations = {
en: enTranslations,
km: kmTranslations,
de: deTranslations,
+ ko: koTranslations,
ja: jaTranslations,
zhcn: zhcnTranslations,
};
diff --git a/application/src/translations/ja/common.ts b/application/src/translations/ja/common.ts
index f53f178..e59de9b 100644
--- a/application/src/translations/ja/common.ts
+++ b/application/src/translations/ja/common.ts
@@ -7,6 +7,7 @@ export const commonTranslations: CommonTranslations = {
english: "Englisch",
khmer: "ភាសាខ្មែរ",
german: "Deutsch",
+ korean: "한국어",
japanese: "日本語",
simplifiedChinese: "简体中文",
goodMorning: "おはようございます",
diff --git a/application/src/translations/km/common.ts b/application/src/translations/km/common.ts
index 1215cfa..fe1a1f9 100644
--- a/application/src/translations/km/common.ts
+++ b/application/src/translations/km/common.ts
@@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = {
english: "Englisch",
khmer: "ភាសាខ្មែរ",
german: "Deutsch",
+ korean: "한국어",
japanese: "日本語",
simplifiedChinese: "简体中文",
goodMorning: "អរុណសួស្តី",
diff --git a/application/src/translations/ko/about.ts b/application/src/translations/ko/about.ts
new file mode 100644
index 0000000..e0d6ad6
--- /dev/null
+++ b/application/src/translations/ko/about.ts
@@ -0,0 +1,18 @@
+import { AboutTranslations } from '../types/about';
+
+export const aboutTranslations: AboutTranslations = {
+ aboutCheckCle: "About Checkcle",
+ systemDescription: "Checkcle는 서버 및 서비스 상태, 사고 관리, 운영 투명성에 대한 실시간 인사이트를 제공하는 오픈소스 모니터링 스택입니다. MIT 라이선스로 공개됨.",
+ systemVersion: "시스템 버전",
+ license: "라이선스",
+ mitLicense: "MIT 라이선스",
+ links: "링크",
+ viewOnGithub: "GitHub에서 보기",
+ viewDocumentation: "문서 보기",
+ followOnX: "X에서 팔로우",
+ joinDiscord: "Discord 참여",
+ quickActions: "빠른 작업",
+ quickActionsDescription: "자주 사용하는 모니터링 작업과 기능에 빠르게 접근하세요. 아래에서 작업을 선택하여 시작할 수 있습니다.",
+ quickTips: "빠른 팁",
+ releasedOn: "출시일",
+};
diff --git a/application/src/translations/ko/common.ts b/application/src/translations/ko/common.ts
new file mode 100644
index 0000000..fd08a0c
--- /dev/null
+++ b/application/src/translations/ko/common.ts
@@ -0,0 +1,31 @@
+import { CommonTranslations } from '../types/common';
+
+export const commonTranslations: CommonTranslations = {
+ welcome: "환영합니다",
+ logout: "로그아웃",
+ language: "언어",
+ english: "Englisch",
+ khmer: "ភាសាខ្មែរ",
+ german: "Deutsch",
+ korean: "한국어",
+ japanese: "日本語",
+ simplifiedChinese: "简体中文",
+ goodMorning: "좋은 아침입니다",
+ goodAfternoon: "좋은 오후입니다",
+ goodEvening: "좋은 저녁입니다",
+ profile: "프로필",
+ settings: "설정",
+ documentation: "문서",
+ notifications: "알림",
+ close: "닫기",
+ cancel: "취소",
+ view: "보기",
+ edit: "편집",
+ delete: "삭제",
+ status: "상태",
+ time: "시간",
+ title: "제목",
+ description: "설명",
+ success: "성공",
+ error: "오류",
+};
diff --git a/application/src/translations/ko/incident.ts b/application/src/translations/ko/incident.ts
new file mode 100644
index 0000000..e43ffaf
--- /dev/null
+++ b/application/src/translations/ko/incident.ts
@@ -0,0 +1,64 @@
+
+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: '서비스 ID',
+ 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: '진행 중',
+ enterRootCause: '근본 원인 입력',
+ enterIncidentTitle: '인시던트 제목 입력',
+ enterIncidentDescription: '인시던트 설명 입력',
+ enterServiceId: '서비스 ID를 콤마로 구분하여 입력',
+ selectAssignedUser: '담당자 선택',
+ noAssignedUser: '현재 인시던트에 할당된 사용자가 없습니다',
+ affectedSystems: '영향을 받은 시스템',
+ enterAffectedSystems: '영향을 받은 시스템 입력',
+ separateSystemsWithComma: '영향 시스템을 콤마로 구분하여 입력',
+};
diff --git a/application/src/translations/ko/index.ts b/application/src/translations/ko/index.ts
new file mode 100644
index 0000000..e282607
--- /dev/null
+++ b/application/src/translations/ko/index.ts
@@ -0,0 +1,25 @@
+
+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';
+import { settingsTranslations } from './settings';
+
+const enTranslations: Translations = {
+ common: commonTranslations,
+ menu: menuTranslations,
+ login: loginTranslations,
+ about: aboutTranslations,
+ services: servicesTranslations,
+ maintenance: maintenanceTranslations,
+ incident: incidentTranslations,
+ ssl: sslTranslations,
+ settings: settingsTranslations
+};
+
+export default enTranslations;
\ No newline at end of file
diff --git a/application/src/translations/ko/login.ts b/application/src/translations/ko/login.ts
new file mode 100644
index 0000000..530787b
--- /dev/null
+++ b/application/src/translations/ko/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/ko/maintenance.ts b/application/src/translations/ko/maintenance.ts
new file mode 100644
index 0000000..9b4eb4c
--- /dev/null
+++ b/application/src/translations/ko/maintenance.ts
@@ -0,0 +1,81 @@
+
+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: '유지보수 일정이 성공적으로 생성되었습니다',
+ editMaintenanceWindow: '유지보수 편집',
+ editMaintenanceDesc: '유지보수 세부정보 편집',
+ priorityDescription: '유지보수 우선순위 선택',
+ statusDescription: '유지보수 상태 선택',
+ impactLevel: '영향 수준',
+ impactLevelDescription: '영향 수준 선택',
+ selectAssignedUsers: '담당 사용자 선택',
+ assignedPersonnelDescription: '현재 할당된 사용자',
+ mutedNotifications: '알림 비활성화됨',
+ notificationsAreMuted: '현재 유지보수 알림이 비활성화되어 있습니다',
+ selectNotificationChannel: '알림 채널 추가',
+ enableNotificationsFirst: '채널을 선택하려면 먼저 알림을 활성화하세요',
+ updateMaintenance: '유지보수 업데이트',
+};
diff --git a/application/src/translations/ko/menu.ts b/application/src/translations/ko/menu.ts
new file mode 100644
index 0000000..a29c5b0
--- /dev/null
+++ b/application/src/translations/ko/menu.ts
@@ -0,0 +1,21 @@
+
+import { MenuTranslations } from '../types/menu';
+
+export const menuTranslations: MenuTranslations = {
+ uptimeMonitoring: "가동 시간 모니터링",
+ instanceMonitoring: "인스턴스 모니터링",
+ sslDomain: "SSL & 도메인",
+ scheduleIncident: "일정 및 인시던트",
+ operationalPage: "운영 페이지",
+ reports: "리포트",
+ regionalMonitoring: "지역 모니터링",
+ settingPanel: "설정 패널",
+ generalSettings: "일반 설정",
+ userManagement: "사용자 관리",
+ notificationSettings: "알림 설정",
+ alertsTemplates: "알림 템플릿",
+ rolesManagement: "권한 관리",
+ dataRetention: "데이터 보존",
+ backupSettings: "백업 설정",
+ aboutSystem: "시스템 정보",
+};
diff --git a/application/src/translations/ko/services.ts b/application/src/translations/ko/services.ts
new file mode 100644
index 0000000..a9b3fa7
--- /dev/null
+++ b/application/src/translations/ko/services.ts
@@ -0,0 +1,89 @@
+
+import { ServicesTranslations } from '../types/services';
+
+export const servicesTranslations: ServicesTranslations = {
+ serviceStatus: "서비스 상태",
+ responseTime: "응답 시간",
+ uptime: "가동 시간",
+ lastChecked: "마지막 확인",
+ noServices: "필터 조건에 맞는 서비스가 없습니다.",
+ currentlyMonitoring: "현재 모니터링 중",
+ retry: "재시도",
+ overview: "개요",
+ newService: "새 서비스",
+ rowsPerPage: "페이지당 행",
+ search: "검색",
+ allTypes: "모든 유형",
+ createNewService: "새 서비스 생성",
+ createNewServiceDesc: "모니터링할 새 서비스의 세부 정보를 입력하세요.",
+
+ serviceName: "서비스 이름",
+ serviceNameDesc: "서비스에 대한 설명적인 이름을 입력하세요",
+
+ checkInterval: "체크 간격",
+ seconds: "초",
+ minute: "분",
+ minutes: "분",
+ hour: "시간",
+ hours: "시간",
+ custom: "사용자 정의",
+ checkIntervalPlaceholder: "초 단위로 간격 입력",
+ backToPresets: "기본값으로 돌아가기",
+ checkIntervalDesc: "서비스 상태를 확인하는 간격",
+ checkIntervalDescCustom: "사용자 정의 간격 입력 (최소 10초)",
+ retryAttempts: "재시도 횟수",
+ attempt: "회",
+ attempts: "회",
+ retryAttemptsDesc: "서비스 다운으로 표시되기 전 재시도 횟수",
+
+ updateService: "서비스 업데이트",
+ createService: "서비스 생성",
+
+ enableNotifications: "알림 활성화",
+ enableNotificationsDesc: "서비스 알림을 활성화하거나 비활성화합니다",
+ notificationChannels: "알림 채널",
+ notificationChannelsEnabledDesc: "서비스 알림 채널 선택",
+ notificationChannelsDesc: "채널을 선택하려면 먼저 알림을 활성화하세요",
+ notificationChannelsPlaceholder: "알림 채널 추가",
+ alertTemplate: "알림 템플릿",
+ alertTemplateLoading: "템플릿 로딩 중...",
+ alertTemplatePlaceholder: "알림 템플릿 선택",
+ alertTemplateEnabledDesc: "알림 메시지용 템플릿 선택",
+ alertTemplateDesc: "템플릿 선택 전 알림을 활성화하세요",
+
+ serviceType: "서비스 유형",
+ serviceTypeHTTPDesc: "HTTP/HTTPS 프로토콜로 웹사이트 및 REST API 모니터링",
+ serviceTypePINGDesc: "PING 프로토콜로 호스트 가용성 모니터링",
+ serviceTypeTCPDesc: "TCP 프로토콜로 TCP 포트 연결 상태 모니터링",
+ serviceTypeDNSDesc: "DNS 해석 모니터링",
+
+ regionalMonitoring: "지역 모니터링",
+ regionalMonitoringDesc: "이 서비스를 지역 모니터링 에이전트에 할당하여 분산 모니터링",
+ regionalAgents: "지역 에이전트",
+ regionalAgentsLoading: "에이전트 로딩 중...",
+ regionalAgentsAvailablePlaceholder: "추가 지역 에이전트 선택...",
+ regionalAgentsAllSelected: "모든 사용 가능한 에이전트 선택됨",
+ regionalAgentsNoAvailable: "사용 가능한 지역 에이전트 없음",
+ regionalAgentsNoOnlineAvailable: "온라인 지역 에이전트 없음",
+ regionalAgentsNotFoundMessage: "온라인 지역 에이전트 없음. 기본 모니터링 사용",
+ regionalAgentsNotSelectedMessage: "지역 에이전트 선택 안됨. 기본 모니터링 사용",
+
+ targetDefault: "대상 URL/호스트",
+ targetDNS: "도메인 이름",
+ targetHTTPDesc: "프로토콜 포함 전체 URL 입력 (http:// 또는 https://)",
+ targetPINGDesc: "호스트 이름 또는 IP 주소 입력",
+ targetTCPDesc: "TCP 연결 테스트용 호스트 이름 또는 IP 입력",
+ targetTCPPortDesc: "TCP 연결 테스트용 포트 번호 입력",
+ targetDNSDesc: "DNS 레코드 모니터링용 도메인 이름 입력 (A, AAAA, MX 등)",
+ targetDefaultDesc: "모니터링 대상 URL 또는 호스트 이름 입력",
+ targetDefaultPlaceholder: "URL 또는 호스트 이름 입력",
+
+ serviceNameRequired: "서비스 이름은 필수입니다",
+ urlDomainHostRequired: "URL/도메인/호스트는 필수입니다",
+ enterValidUrlHostnameDomain: "유효한 URL, 호스트 이름 또는 도메인을 입력하세요",
+
+ upServices: "가동 서비스",
+ downServices: "다운 서비스",
+ pausedServices: "일시정지 서비스",
+ warningServices: "경고 서비스",
+};
diff --git a/application/src/translations/ko/settings.ts b/application/src/translations/ko/settings.ts
new file mode 100644
index 0000000..c8f2fd4
--- /dev/null
+++ b/application/src/translations/ko/settings.ts
@@ -0,0 +1,59 @@
+
+import { SettingsTranslations } from '../types/settings';
+
+export const settingsTranslations: SettingsTranslations = {
+ // General Settings - Tabs
+ systemSettings: "시스템 설정",
+ mailSettings: "메일 설정",
+
+ // General Settings - System Settings
+ appName: "앱 이름",
+ appURL: "앱 URL",
+ senderName: "발신자 이름",
+ senderEmail: "발신자 이메일 주소",
+ hideControls: "컨트롤 숨기기",
+
+ // General Settings - Mail Settings
+ smtpSettings: "SMTP 구성",
+ smtpEnabled: "SMTP 활성화",
+ smtpHost: "SMTP 호스트",
+ smtpPort: "SMTP 포트",
+ smtpUsername: "SMTP 사용자 이름",
+ smtpPassword: "SMTP 비밀번호",
+ smtpAuthMethod: "인증 방법",
+ enableTLS: "TLS 활성화",
+ localName: "로컬 이름",
+
+ // General Settings - Test Email
+ testEmail: "테스트 이메일",
+ sendTestEmail: "테스트 이메일 전송",
+ emailTemplate: "이메일 템플릿",
+ verification: "검증",
+ passwordReset: "비밀번호 재설정",
+ confirmEmailChange: "이메일 변경 확인",
+ otp: "OTP",
+ loginAlert: "로그인 알림",
+ authCollection: "인증 컬렉션",
+ selectCollection: "컬렉션 선택",
+ toEmailAddress: "받는 이메일",
+ enterEmailAddress: "이메일 주소 입력",
+ sending: "전송 중...",
+
+ // General Settings - Actions and status
+ save: "변경 사항 저장",
+ saving: "저장 중...",
+ settingsUpdated: "설정이 성공적으로 업데이트되었습니다",
+ errorSavingSettings: "설정 저장 중 오류 발생",
+ errorFetchingSettings: "설정 불러오기 중 오류 발생",
+ testConnection: "연결 테스트",
+ testingConnection: "연결 테스트 중...",
+ connectionSuccess: "연결 성공",
+ connectionFailed: "연결 실패",
+
+ // User Management
+ addUser: "사용자 추가",
+ permissionNotice: "권한 안내:",
+ permissionNoticeAddUser: "관리자 계정은 시스템 및 메일 설정을 확인하거나 변경할 수 없습니다. 이 설정은 슈퍼 관리자만 접근 및 수정할 수 있습니다. 시스템 구성 또는 메일 설정 변경이 필요하면 슈퍼 관리자에게 문의하세요.",
+ loadingSettings: "설정 로딩 중...",
+ loadingSettingsError: "설정 로딩 중 오류 발생",
+};
\ No newline at end of file
diff --git a/application/src/translations/ko/ssl.ts b/application/src/translations/ko/ssl.ts
new file mode 100644
index 0000000..d08add2
--- /dev/null
+++ b/application/src/translations/ko/ssl.ts
@@ -0,0 +1,117 @@
+
+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: "상세 정보",
+ viewDetailedInformation: "상세 정보 보기",
+
+ // 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: "유효 일수",
+ validityPeriod: "유효 기간",
+ organization: "조직",
+ commonName: "공통 이름",
+ serialNumber: "일련번호",
+ algorithm: "알고리즘",
+ subjectAltNames: "대체 이름",
+ subjectAlternativeNames: "대체 이름",
+ resolvedIP: "해결된 IP",
+ issuedTo: "발급 대상",
+ days: "일",
+
+ // Buttons and actions
+ addDomain: "도메인 추가",
+ refreshAll: "모두 새로고침",
+ cancel: "취소",
+ addCertificate: "인증서 추가",
+ check: "확인",
+ view: "보기",
+ edit: "편집",
+ delete: "삭제",
+ close: "닫기",
+ saveChanges: "변경 사항 저장",
+ updating: "업데이트 중",
+
+ // Sections in detail view
+ basicInformation: "기본 정보",
+ validity: "유효성",
+ issuerInfo: "발급자 정보",
+ technicalDetails: "기술 세부정보",
+ technicalInformation: "기술 정보",
+ monitoringConfig: "모니터링 구성",
+ monitoringConfiguration: "모니터링 구성",
+ recordInfo: "레코드 정보",
+ certificateDetails: "인증서 상세",
+
+ // Notifications and messages
+ sslCertificateAdded: "SSL 인증서가 성공적으로 추가되었습니다",
+ sslCertificateUpdated: "SSL 인증서가 성공적으로 업데이트되었습니다",
+ sslCertificateDeleted: "SSL 인증서가 성공적으로 삭제되었습니다",
+ sslCertificateRefreshed: "{domain}의 SSL 인증서가 성공적으로 갱신되었습니다",
+ 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: "컬렉션 ID",
+ noCertificatesFound: "인증서 없음",
+};
diff --git a/application/src/translations/types/common.ts b/application/src/translations/types/common.ts
index 275651b..5324bce 100644
--- a/application/src/translations/types/common.ts
+++ b/application/src/translations/types/common.ts
@@ -6,6 +6,7 @@ export interface CommonTranslations {
english: string;
khmer: string;
german: string;
+ korean: string;
japanese: string;
simplifiedChinese: string;
goodMorning: string;
diff --git a/application/src/translations/types/incident.ts b/application/src/translations/types/incident.ts
index 762338e..4ad5ccf 100644
--- a/application/src/translations/types/incident.ts
+++ b/application/src/translations/types/incident.ts
@@ -51,4 +51,12 @@ export interface IncidentTranslations {
failedToUpdateStatus: string;
inProgress: string;
enterRootCause: string;
+ enterIncidentTitle: string;
+ enterIncidentDescription: string;
+ enterServiceId: string;
+ selectAssignedUser: string;
+ noAssignedUser: string;
+ affectedSystems: string;
+ enterAffectedSystems: string;
+ separateSystemsWithComma: string;
}
diff --git a/application/src/translations/types/maintenance.ts b/application/src/translations/types/maintenance.ts
index 7170349..4189301 100644
--- a/application/src/translations/types/maintenance.ts
+++ b/application/src/translations/types/maintenance.ts
@@ -63,4 +63,17 @@ export interface MaintenanceTranslations {
noScheduledMaintenance: string;
noMaintenanceWindows: string;
maintenanceCreatedSuccess: string;
+ editMaintenanceWindow: string;
+ editMaintenanceDesc: string;
+ priorityDescription: string;
+ statusDescription: string;
+ impactLevel: string;
+ impactLevelDescription: string;
+ selectAssignedUsers: string;
+ assignedPersonnelDescription: string;
+ mutedNotifications: string;
+ notificationsAreMuted: string;
+ selectNotificationChannel: string;
+ enableNotificationsFirst: string;
+ updateMaintenance: string;
}
diff --git a/application/src/translations/types/services.ts b/application/src/translations/types/services.ts
index 63bd1bd..bd9e7a9 100644
--- a/application/src/translations/types/services.ts
+++ b/application/src/translations/types/services.ts
@@ -69,6 +69,7 @@ export interface ServicesTranslations {
regionalAgentsAvailablePlaceholder: string;
regionalAgentsAllSelected: string;
regionalAgentsNoAvailable: string;
+ regionalAgentsNoOnlineAvailable: string;
regionalAgentsNotFoundMessage: string;
regionalAgentsNotSelectedMessage: string;
@@ -92,5 +93,5 @@ export interface ServicesTranslations {
upServices: string;
downServices: string;
pausedServices: string;
- warningServices: string;
+ warningServices: string;
}
diff --git a/application/src/translations/zhcn/common.ts b/application/src/translations/zhcn/common.ts
index d6b8dad..7d30a2e 100644
--- a/application/src/translations/zhcn/common.ts
+++ b/application/src/translations/zhcn/common.ts
@@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = {
english: "Englisch",
khmer: "ភាសាខ្មែរ",
german: "Deutsch",
+ korean: "한국어",
japanese: "日本語",
simplifiedChinese: "简体中文",
goodMorning: "早上好",