Merge branch 'operacle:develop' into develop-fix-incident_assigned_user
This commit is contained in:
@@ -116,6 +116,9 @@ export const Header = ({
|
||||
<DropdownMenuItem onClick={() => setLanguage("de")} className={language === "de" ? "bg-accent" : ""}>
|
||||
{t("Deutsch")}
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onClick={() => setLanguage("ko")} className={language === "ko" ? "bg-accent" : ""}>
|
||||
{t("korean")}
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onClick={() => setLanguage("ja")} className={language === "ja" ? "bg-accent" : ""}>
|
||||
{t("japanese")}
|
||||
</DropdownMenuItem>
|
||||
|
||||
@@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = {
|
||||
english: "Englisch",
|
||||
khmer: "ភាសាខ្មែរ",
|
||||
german: "Deutsch",
|
||||
korean: "한국어",
|
||||
japanese: "日本語",
|
||||
simplifiedChinese: "简体中文",
|
||||
goodMorning: "Guten Morgen",
|
||||
|
||||
@@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = {
|
||||
english: "Englisch",
|
||||
khmer: "ភាសាខ្មែរ",
|
||||
german: "Deutsch",
|
||||
korean: "한국어",
|
||||
japanese: "日本語",
|
||||
simplifiedChinese: "简体中文",
|
||||
goodMorning: "Good morning",
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -7,6 +7,7 @@ export const commonTranslations: CommonTranslations = {
|
||||
english: "Englisch",
|
||||
khmer: "ភាសាខ្មែរ",
|
||||
german: "Deutsch",
|
||||
korean: "한국어",
|
||||
japanese: "日本語",
|
||||
simplifiedChinese: "简体中文",
|
||||
goodMorning: "おはようございます",
|
||||
|
||||
@@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = {
|
||||
english: "Englisch",
|
||||
khmer: "ភាសាខ្មែរ",
|
||||
german: "Deutsch",
|
||||
korean: "한국어",
|
||||
japanese: "日本語",
|
||||
simplifiedChinese: "简体中文",
|
||||
goodMorning: "អរុណសួស្តី",
|
||||
|
||||
@@ -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: "출시일",
|
||||
};
|
||||
@@ -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: "오류",
|
||||
};
|
||||
@@ -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: '영향 시스템을 콤마로 구분하여 입력',
|
||||
};
|
||||
@@ -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;
|
||||
@@ -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: "개인정보 처리방침",
|
||||
};
|
||||
@@ -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: '유지보수 업데이트',
|
||||
};
|
||||
@@ -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: "시스템 정보",
|
||||
};
|
||||
@@ -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: "경고 서비스",
|
||||
};
|
||||
@@ -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: "설정 로딩 중 오류 발생",
|
||||
};
|
||||
@@ -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: "인증서 없음",
|
||||
};
|
||||
@@ -6,6 +6,7 @@ export interface CommonTranslations {
|
||||
english: string;
|
||||
khmer: string;
|
||||
german: string;
|
||||
korean: string;
|
||||
japanese: string;
|
||||
simplifiedChinese: string;
|
||||
goodMorning: string;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = {
|
||||
english: "Englisch",
|
||||
khmer: "ភាសាខ្មែរ",
|
||||
german: "Deutsch",
|
||||
korean: "한국어",
|
||||
japanese: "日本語",
|
||||
simplifiedChinese: "简体中文",
|
||||
goodMorning: "早上好",
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
/// <reference path="../pb_data/types.d.ts" />
|
||||
migrate((app) => {
|
||||
const collection = app.findCollectionByNameOrId("pbc_1938176441")
|
||||
|
||||
// add field
|
||||
collection.fields.addAt(20, new Field({
|
||||
"autogeneratePattern": "",
|
||||
"hidden": false,
|
||||
"id": "text1654359675",
|
||||
"max": 0,
|
||||
"min": 0,
|
||||
"name": "ntfy_endpoint",
|
||||
"pattern": "",
|
||||
"presentable": false,
|
||||
"primaryKey": false,
|
||||
"required": false,
|
||||
"system": false,
|
||||
"type": "text"
|
||||
}))
|
||||
|
||||
// update field
|
||||
collection.fields.addAt(9, new Field({
|
||||
"hidden": false,
|
||||
"id": "select887233555",
|
||||
"maxSelect": 1,
|
||||
"name": "notification_type",
|
||||
"presentable": false,
|
||||
"required": false,
|
||||
"system": false,
|
||||
"type": "select",
|
||||
"values": [
|
||||
"telegram",
|
||||
"signal",
|
||||
"discord",
|
||||
"slack",
|
||||
"webhook",
|
||||
"google_chat",
|
||||
"email",
|
||||
"ntfy"
|
||||
]
|
||||
}))
|
||||
|
||||
return app.save(collection)
|
||||
}, (app) => {
|
||||
const collection = app.findCollectionByNameOrId("pbc_1938176441")
|
||||
|
||||
// remove field
|
||||
collection.fields.removeById("text1654359675")
|
||||
|
||||
// update field
|
||||
collection.fields.addAt(9, new Field({
|
||||
"hidden": false,
|
||||
"id": "select887233555",
|
||||
"maxSelect": 1,
|
||||
"name": "notification_type",
|
||||
"presentable": false,
|
||||
"required": false,
|
||||
"system": false,
|
||||
"type": "select",
|
||||
"values": [
|
||||
"telegram",
|
||||
"signal",
|
||||
"discord",
|
||||
"slack",
|
||||
"webhook",
|
||||
"google_chat",
|
||||
"email"
|
||||
]
|
||||
}))
|
||||
|
||||
return app.save(collection)
|
||||
})
|
||||
+6530
-3650
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user