feat(locales): Add multiple languages

This commit is contained in:
web@ppanel
2024-12-18 23:12:53 +07:00
parent a20834a9ac
commit b243ab9006
610 changed files with 23247 additions and 9 deletions
@@ -0,0 +1,30 @@
{
"actions": "작업",
"announcementList": "공지 목록",
"cancel": "취소",
"confirm": "확인",
"confirmDelete": "삭제하시겠습니까?",
"content": "내용",
"create": "생성",
"createAnnouncement": "공지 생성",
"createSuccess": "생성 성공",
"delete": "삭제",
"deleteDescription": "삭제하면 데이터는 복구할 수 없습니다. 신중하게 진행하세요.",
"deleteSuccess": "삭제 성공",
"edit": "편집",
"editAnnouncement": "공지 편집",
"enable": "사용",
"form": {
"cancel": "취소",
"confirm": "확인",
"content": "내용",
"contentPlaceholder": "공지 내용을 입력하세요 (Markdown 지원)",
"title": "제목",
"titlePlaceholder": "입력하세요"
},
"hide": "숨기기",
"show": "표시",
"title": "제목",
"updateSuccess": "업데이트 성공",
"updatedAt": "업데이트 시간"
}
+39
View File
@@ -0,0 +1,39 @@
{
"check": {
"checking": "확인 중...",
"continue": "계속",
"description": "로그인 또는 등록을 계속하려면 이메일을 입력하세요.",
"email": "유효한 이메일 주소를 입력하세요.",
"title": "로그인/등록",
"whitelist": "이메일 도메인이 허용된 화이트리스트에 없습니다."
},
"login": {
"description": "계정 정보를 입력하여 로그인하세요.",
"forgotPassword": "비밀번호를 잊으셨나요?",
"success": "로그인 성공!",
"switchAccount": "가입/계정 전환",
"title": "로그인"
},
"logout": "로그아웃",
"orWithEmail": "또는 이메일 사용",
"register": {
"description": "새 계정을 생성하고 정보를 입력하여 등록하세요.",
"existingAccount": "이미 계정이 있으신가요?",
"get": "받기",
"invite": "초대 코드",
"message": "#### 존경하는 사용자님, 안녕하세요!\n\n저희에 대한 관심과 지원에 감사드립니다. 사이트 운영 전략의 조정으로 인해 신규 사용자 등록 기능을 닫았습니다. 이 기간 동안 기존 사용자의 사용에는 아무런 영향이 없습니다.\n\n저희는 더 나은 서비스와 경험을 제공하기 위해 등록이 닫힌 동안 시스템 최적화와 기능 업그레이드를 전면적으로 진행할 것입니다. 앞으로 더 나은 콘텐츠와 서비스로 여러분을 맞이하겠습니다.\n\n저희 웹사이트와 소셜 미디어 플랫폼을 주시하여 최신 동향과 공지를 받아보세요. 이해와 지원에 감사드립니다.\n\n궁금한 점이나 도움이 필요하시면 언제든지 고객 서비스 팀에 문의해 주세요.\n\n**다시 한번 지원과 이해에 감사드립니다.**",
"passwordMismatch": "비밀번호가 일치하지 않습니다.",
"success": "등록 성공, 자동으로 로그인되었습니다!",
"switchToLogin": "로그인/이메일 재설정",
"title": "등록"
},
"reset": {
"description": "비밀번호를 재설정하려면 이메일 주소를 입력하세요.",
"existingAccount": "이미 계정이 있으신가요?",
"get": "받기",
"success": "비밀번호 재설정 성공, 자동으로 로그인으로 전환되었습니다!",
"switchToLogin": "로그인/회원가입",
"title": "비밀번호 재설정"
},
"tos": "서비스 약관"
}
+60
View File
@@ -0,0 +1,60 @@
{
"billing": {
"description": "후원은 PPanel이 계속해서 업데이트를 제공하는 데 도움이 됩니다!",
"title": "후원자"
},
"empty": [
"여기에 멋진 내용이 가득할 거라고 상상해 보세요! 지금은 상상에 맡겨야겠네요…",
"이 영역이 신비롭게 사라졌습니다. 우리는 그것을 다시 불러오고 있습니다!",
"아무 일도 일어나지 않았네요… 직접 무언가를 채워보세요!",
"마치 콘서트에서 무대에 아무도 없는 것을 발견한 것 같네요… 무대에 올라가서 공연해 보시겠어요?",
"빈 땅을 발견하셨군요! 집을 지어보시겠어요?",
"여기는 잠시 비어 있지만, 창의력은 여기서 시작됩니다!",
"아무것도 없네요… 하지만 걱정 마세요, 이건 시작일 뿐입니다!",
"여기에 큰 놀라움을 준비했는데, 놀라움이 도망갔네요!",
"지금은 아무것도 없지만, 마치 간식장이 비어 있는 것 같네요.",
"이 빈 공간은 주인공의 등장을 기다리고 있습니다!"
],
"request": {
"10001": "조회가 아직 성공하지 않았습니다. 잠시 후 다시 시도하거나 조건을 확인해 주세요.",
"10002": "업데이트 작업이 성공하지 않았습니다. 잠시 후 다시 시도해 주세요.",
"10003": "삽입 작업을 완료할 수 없습니다. 잠시 후 다시 시도해 주세요.",
"10004": "삭제 작업이 완료되지 않았습니다. 잠시 후 다시 시도해 주세요.",
"20001": "해당 사용자 정보가 이미 존재합니다. 정보를 변경한 후 다시 시도해 주세요.",
"20002": "해당 사용자를 찾을 수 없습니다. 정보를 확인한 후 다시 시도해 주세요.",
"20003": "입력하신 비밀번호가 올바르지 않습니다. 다시 입력해 주세요.",
"20004": "해당 사용자가 비활성화되었습니다. 문의 사항이 있으면 고객 서비스에 문의해 주세요.",
"20005": "잔액이 부족합니다. 충전 후 다시 시도해 주세요.",
"20006": "등록 기능을 현재 사용할 수 없습니다. 잠시 후 다시 시도해 주세요.",
"30001": "해당 노드가 이미 존재합니다. 중복 추가하지 마세요.",
"30002": "관련 노드를 찾을 수 없습니다. 확인 후 다시 시도해 주세요.",
"30003": "그룹이 이미 존재합니다. 다른 이름을 사용해 보세요.",
"30004": "해당 그룹을 찾을 수 없습니다. 정보를 확인한 후 다시 시도해 주세요.",
"30005": "해당 그룹 내에 여전히 내용이 있습니다. 비운 후 다시 시도해 주세요.",
"400": "요청 매개변수가 올바르지 않습니다. 확인 후 다시 제출해 주세요.",
"40002": "유효한 토큰을 찾을 수 없습니다. 먼저 로그인한 후 다시 시도해 주세요.",
"40003": "현재 토큰이 유효하지 않습니다. 다시 획득한 후 시도해 주세요.",
"40004": "토큰이 만료되었습니다. 다시 로그인해 주세요.",
"40005": "접근 권한이 없습니다. 문의 사항이 있으면 관리자에게 문의해 주세요.",
"401": "요청이 너무 빈번합니다. 잠시 후 다시 시도해 주세요.",
"500": "서버에 문제가 발생했습니다. 잠시 후 다시 시도해 주세요.",
"50001": "해당 쿠폰 정보를 찾을 수 없습니다. 확인 후 다시 시도해 주세요.",
"50002": "해당 쿠폰이 이미 사용되었습니다. 반복 사용할 수 없습니다.",
"60001": "구독이 만료되었습니다. 갱신 후 사용해 주세요.",
"60002": "현재 구독을 사용할 수 없습니다. 잠시 후 다시 시도해 주세요.",
"70001": "인증 코드가 잘못되었습니다. 다시 입력해 주세요.",
"80001": "작업이 큐에 성공적으로 추가되지 않았습니다. 잠시 후 다시 시도해 주세요.",
"90001": "DEBUG 모드를 끈 후 다시 시도해 주세요.",
"undefined": "시스템에 오류가 발생했습니다. 잠시 후 다시 시도해 주세요."
},
"table": {
"actions": "작업",
"asc": "오름차순",
"desc": "내림차순",
"hide": "숨기기",
"pageInfo": "{current} 페이지, 총 {total} 페이지",
"rowsPerPage": "페이지당 행 수",
"selectedItems": "{total}개 행 선택됨"
},
"unlimited": "무제한"
}
+50
View File
@@ -0,0 +1,50 @@
{
"actions": "작업",
"amount": "금액",
"cancel": "취소",
"code": "코드",
"confirm": "확인",
"confirmDelete": "삭제하시겠습니까?",
"count": "수량",
"couponList": "쿠폰 목록",
"create": "생성",
"createCoupon": "쿠폰 생성",
"createSuccess": "생성 성공",
"delete": "삭제",
"deleteSuccess": "삭제 성공",
"deleteWarning": "삭제하면 데이터는 복구할 수 없습니다. 신중하게 진행하세요.",
"discount": "할인",
"edit": "편집",
"editCoupon": "쿠폰 편집",
"enable": "사용",
"form": {
"amountDiscount": "금액 할인",
"cancel": "취소",
"confirm": "확인",
"count": "최대 사용 횟수",
"countPlaceholder": "최대 사용 횟수(비워두면 무제한)",
"customCouponCode": "사용자 정의 쿠폰 코드",
"customCouponCodePlaceholder": "사용자 정의 쿠폰 코드(비워두면 자동 생성)",
"enterCouponName": "쿠폰 이름을 입력하세요",
"enterValue": "값을 입력하세요",
"expireTime": "만료 시간",
"name": "이름",
"percentageDiscount": "백분율 할인",
"selectServer": "구독을 선택하세요",
"selectTime": "시간 선택",
"specifiedServer": "지정된 구독",
"startTime": "시작 시간",
"type": "쿠폰 유형",
"userLimit": "사용자당 최대 사용 횟수",
"userLimitPlaceholder": "사용자당 최대 사용 횟수(비워두면 무제한)"
},
"name": "이름",
"percentage": "백분율",
"remainingTimes": "남은 시간",
"subscribe": "구독",
"type": "유형",
"unlimited": "무제한",
"updateSuccess": "업데이트 성공",
"usedTimes": "사용 횟수",
"validityPeriod": "유효 기간"
}
+29
View File
@@ -0,0 +1,29 @@
{
"DocumentList": "문서 목록",
"actions": "작업",
"cancel": "취소",
"confirm": "확인",
"confirmDelete": "삭제하시겠습니까?",
"create": "생성",
"createDocument": "문서 생성",
"createSuccess": "생성 성공",
"delete": "삭제",
"deleteDescription": "삭제하면 데이터는 복구할 수 없습니다. 신중하게 진행하세요.",
"deleteSuccess": "삭제 성공",
"edit": "편집",
"editDocument": "문서 편집",
"form": {
"cancel": "취소",
"confirm": "확인",
"content": "내용",
"tags": "카테고리",
"tagsPlaceholder": "여러 카테고리를 입력하려면 Enter 키 또는 쉼표(,)로 구분하세요",
"title": "제목",
"titlePlaceholder": "입력하세요"
},
"show": "표시",
"tags": "카테고리",
"title": "제목",
"updateSuccess": "업데이트 성공",
"updatedAt": "업데이트 시간"
}
+29
View File
@@ -0,0 +1,29 @@
{
"email": "이메일",
"month": "이번 달",
"monthDownloadTraffic": "이번 달 다운로드 트래픽",
"monthUploadTraffic": "이번 달 업로드 트래픽",
"newPurchase": "신규 구매",
"nodeTraffic": "노드 트래픽",
"nodes": "노드",
"offlineNodeCount": "오프라인 노드 수",
"onlineIPCount": "온라인 IP 수",
"onlineNodeCount": "온라인 노드 수",
"pendingTickets": "처리 대기 중인 티켓",
"register": "등록",
"repurchase": "재구매",
"revenueTitle": "수입 통계",
"selectTypePlaceholder": "유형 선택",
"statisticsTitle": "통계",
"today": "오늘",
"todayDownloadTraffic": "오늘 다운로드 트래픽",
"todayUploadTraffic": "오늘 업로드 트래픽",
"total": "총계",
"totalIncome": "총수입",
"trafficRank": "트래픽 순위",
"type": "유형",
"userTitle": "사용자 통계",
"userTraffic": "사용자 트래픽",
"users": "사용자",
"yesterday": "어제"
}
+24
View File
@@ -0,0 +1,24 @@
{
"cs-CZ": "체코어",
"de-DE": "독일어",
"en-US": "영어",
"es-ES": "스페인어",
"es-MX": "스페인어(멕시코)",
"fi-FI": "핀란드어",
"fr-FR": "프랑스어",
"hi-IN": "힌디어",
"hu-HU": "헝가리어",
"ja-JP": "일본어",
"ko-KR": "한국어",
"no-NO": "노르웨이어",
"pl-PL": "폴란드어",
"pt-BR": "포르투갈어(브라질)",
"ro-RO": "루마니아어",
"ru-RU": "러시아어",
"th-TH": "태국어",
"tr-TR": "터키어",
"uk-UA": "우크라이나어",
"vi-VN": "베트남어",
"zh-CN": "중국어(간체)",
"zh-TW": "중국어(번체)"
}
+18
View File
@@ -0,0 +1,18 @@
{
"Announcement Management": "공지 관리",
"Coupon Management": "쿠폰 관리",
"Dashboard": "대시보드",
"Document Management": "문서 관리",
"Finance": "재무",
"Order Management": "주문 관리",
"Payment Config": "결제 구성",
"Server": "서버",
"Server Management": "서버 관리",
"Settings": "설정",
"Subscribe Management": "구독 관리",
"System Config": "시스템 구성",
"System Tool": "시스템 도구",
"Ticket Management": "티켓 관리",
"User": "사용자",
"User Management": "사용자 관리"
}
+37
View File
@@ -0,0 +1,37 @@
{
"amount": "금액",
"couponDiscount": "쿠폰 할인",
"discount": "할인 금액",
"failed": "실패",
"feeAmount": "수수료",
"method": "지불 방법",
"methods": {
"alipay_f2f": "알리페이(대면)",
"balance": "잔액",
"epay": "이페이",
"stripe_alipay": "Stripe(알리페이)",
"stripe_wechat_pay": "Stripe(위챗)"
},
"orderNumber": "주문 번호",
"status": {
"0": "상태",
"1": "결제 대기 중",
"2": "결제 완료",
"3": "취소됨",
"4": "닫힘",
"5": "완료됨"
},
"subscribe": "구독",
"subscribePrice": "구독 가격",
"total": "총계",
"tradeNo": "거래 번호",
"type": {
"0": "유형",
"1": "신규 구매",
"2": "갱신",
"3": "데이터 초기화",
"4": "충전"
},
"updateTime": "업데이트 시간",
"user": "사용자"
}
+44
View File
@@ -0,0 +1,44 @@
{
"aliPay": "알리페이 결제",
"alipayf2f": {
"appId": "알리페이 애플리케이션 ID",
"invoiceName": "사용자 정의 제품 이름",
"invoiceNameDescription": "알리페이 청구서에 표시됩니다",
"privateKey": "알리페이 개인 키",
"publicKey": "알리페이 공개 키",
"sandbox": "샌드박스 모드",
"sandboxDescription": "결제를 테스트하기 위해 샌드박스 모드를 활성화합니다"
},
"enable": "사용",
"enableDescription": "이 결제 수단을 활성화합니다",
"epay": {
"key": "키",
"pid": "PID",
"url": "URL"
},
"feeMode": "요금 방식",
"feeModeDescription": "추가 수수료의 부과 방식",
"feeModeItems": ["수수료 없음", "백분율", "고정 금액", "이상 두 가지"],
"feePercent": "수수료 비율(선택 사항)",
"feePercentDescription": "주문 금액에 추가 요금 부과",
"fixedFee": "고정 수수료(선택 사항)",
"fixedFeeDescription": "주문 금액에 고정 요금 추가",
"iconUrl": "아이콘 URL(선택 사항)",
"iconUrlDescription": "프론트엔드 표시용",
"inputPlaceholder": "입력하세요",
"key": "키",
"notifyUrl": "사용자 정의 알림 도메인 (선택 사항)",
"notifyUrlDescription": "게이트웨이 알림이 이 도메인으로 전송됩니다",
"payForRecommendations": "추천에 대한 지불",
"pid": "PID",
"saveSuccess": "저장 성공",
"showName": "이름 표시",
"showNameDescription": "프론트엔드 표시용",
"stripe": {
"publicKey": "공개 키",
"secretKey": "비밀 키",
"webhookSecret": "웹훅 비밀 서명"
},
"url": "URL",
"wechatPay": "위챗페이"
}
+122
View File
@@ -0,0 +1,122 @@
{
"group": {
"actions": "작업",
"cancel": "취소",
"confirm": "확인",
"confirmDelete": "삭제하시겠습니까?",
"create": "생성",
"createNodeGroup": "노드 그룹 생성",
"createdSuccessfully": "성공적으로 생성되었습니다",
"delete": "삭제",
"deleteWarning": "삭제 후 데이터는 복구할 수 없으니 신중히 진행하세요.",
"deletedSuccessfully": "성공적으로 삭제되었습니다",
"description": "설명",
"edit": "편집",
"editNodeGroup": "노드 그룹 편집",
"form": {
"cancel": "취소",
"confirm": "확인",
"description": "설명",
"name": "이름"
},
"name": "이름",
"title": "노드 그룹 목록",
"updatedAt": "업데이트 시간"
},
"node": {
"abnormal": "비정상",
"actions": "작업",
"address": "주소",
"all": "전체",
"cancel": "취소",
"confirm": "확인",
"confirmDelete": "삭제하시겠습니까?",
"create": "생성",
"createNode": "노드 생성",
"createSuccess": "생성 성공",
"delete": "삭제",
"deleteSuccess": "삭제 성공",
"deleteWarning": "삭제 후 데이터는 복구할 수 없습니다. 신중히 진행하세요.",
"disk": "디스크",
"edit": "편집",
"editNode": "노드 편집",
"enable": "활성화",
"form": {
"allowInsecure": "비보안 허용",
"cancel": "취소",
"confirm": "확인",
"edit": "편집",
"editSecurity": "보안 설정 편집",
"enableRelay": "중계 활성화",
"enableTLS": "TLS 활성화",
"encryptionMethod": "암호화 방법",
"flow": "흐름 제어 알고리즘",
"hopInterval": "홉 간격",
"hopPorts": "홉 포트",
"hopPortsPlaceholder": "여러 포트는 쉼표로 구분",
"name": "이름",
"nodeGroupId": "노드 그룹 ID",
"obfsPassword": "난독화 비밀번호",
"obfsPasswordPlaceholder": "비워두면 난독화 안 함",
"path": "경로",
"pleaseSelect": "선택하세요",
"port": "서비스 포트",
"protocol": "프로토콜",
"relayHost": "중계 주소",
"relayPort": "중계 포트",
"remarks": "비고",
"security": "보안",
"securityConfig": "보안 설정",
"security_config": {
"fingerprint": "지문",
"privateKey": "개인 키",
"privateKeyPlaceholder": "비워두면 자동 생성",
"publicKey": "공개 키",
"publicKeyPlaceholder": "비워두면 자동 생성",
"serverAddress": "서버 주소",
"serverAddressPlaceholder": "REALITY 대상 주소, 기본 SNI 사용",
"serverName": "서버 이름(SNI)",
"serverNamePlaceholder": "REALITY 필수, 백엔드와 일치",
"serverPort": "서버 포트",
"serverPortPlaceholder": "REALITY 대상 포트, 기본 443",
"shortId": "짧은 ID",
"shortIdPlaceholder": "비워두면 자동 생성",
"sni": "서버 이름 표시(SNI)"
},
"selectEncryptionMethod": "암호화 방법 선택",
"selectNodeGroup": "노드 그룹 선택",
"selectProtocol": "프로토콜 선택",
"serverAddr": "서버 주소",
"serverName": "서비스 이름",
"speedLimit": "속도 제한",
"speedLimitPlaceholder": "제한 없음",
"trafficRatio": "트래픽 비율",
"transport": "전송 프로토콜",
"transportConfig": "전송 프로토콜 설정",
"transportHost": "전송 서비스 주소",
"transportPath": "전송 경로",
"transportServerName": "전송 서비스 이름"
},
"lastUpdated": "마지막 업데이트",
"memory": "메모리",
"name": "이름",
"node": "노드",
"nodeGroup": "노드 그룹",
"normal": "정상",
"onlineCount": "온라인 인원",
"onlineUsers": "온라인 사용자",
"rate": "비율",
"relay": "중계",
"serverAddr": "서버 주소",
"speedLimit": "속도 제한",
"status": "상태",
"trafficRatio": "트래픽 비율",
"type": "유형",
"updateSuccess": "업데이트 성공",
"updatedAt": "업데이트 시간"
},
"tabs": {
"node": "노드",
"nodeGroup": "노드 그룹"
}
}
+79
View File
@@ -0,0 +1,79 @@
{
"actions": "작업",
"cancel": "취소",
"confirm": "확인",
"confirmDelete": "삭제하시겠습니까?",
"create": "생성",
"createSubscribe": "새 구독 생성",
"createSuccess": "생성 성공",
"delete": "삭제",
"deleteSuccess": "삭제 성공",
"deleteWarning": "삭제 후 데이터는 복구할 수 없으니 신중하게 진행하세요.",
"deviceLimit": "장치 수/대",
"edit": "편집",
"editSubscribe": "구독 편집",
"form": {
"cancel": "취소",
"confirm": "확인",
"description": "설명",
"deviceLimit": "기기 제한",
"discount": "할인",
"discountDescription": "단가 기준으로 할인 설정",
"discountMonths": "개월",
"discountPercent": "할인율",
"discount_price": "할인가",
"duration": "기간 (개월)",
"inventory": "재고",
"name": "이름",
"noLimit": "무제한",
"quota": "구매 한도",
"replacement": "재설정 가격 (매회)",
"selectSubscribeGroup": "구독 그룹을 선택하세요",
"server": "서버",
"serverGroup": "서버 그룹",
"speedLimit": "속도 제한 (Mbps)",
"subscribeGroup": "구독 그룹",
"traffic": "트래픽",
"unit_price": "월 단위 가격"
},
"group": {
"actions": "작업",
"cancel": "취소",
"confirm": "확인",
"confirmDelete": "삭제하시겠습니까?",
"create": "생성",
"createSubscribeGroup": "새 구독 그룹 생성",
"createSuccess": "생성 성공",
"delete": "삭제",
"deleteSuccess": "삭제 성공",
"deleteWarning": "삭제 후 데이터는 복구할 수 없습니다. 신중하게 진행하세요.",
"description": "설명",
"edit": "편집",
"editSubscribeGroup": "구독 그룹 편집",
"form": {
"cancel": "취소",
"confirm": "확인",
"description": "설명",
"name": "이름"
},
"name": "이름",
"title": "구독 그룹 목록",
"updateSuccess": "업데이트 성공",
"updatedAt": "업데이트 시간"
},
"inventory": "재고",
"name": "이름",
"quota": "구매 제한/회",
"replacement": "가격 재설정/회",
"sell": "판매",
"show": "홈 화면 표시",
"subscribe": "구독",
"subscribeGroup": "구독 그룹",
"tabs": {
"subscribe": "구독",
"subscribeGroup": "구독 그룹"
},
"traffic": "트래픽",
"unitPrice": "가격/월",
"updateSuccess": "업데이트 성공"
}
+156
View File
@@ -0,0 +1,156 @@
{
"currency": {
"accessKey": "액세스 키",
"accessKeyDescription": "https://exchangerate.host에서 무료로 제공하는 환율 API 키",
"currencySymbol": "통화 기호",
"currencySymbolDescription": "표시용으로만 사용되며, 변경 시 시스템 내 모든 통화 단위가 변경됩니다",
"currencyUnit": "통화 단위",
"currencyUnitDescription": "표시용으로만 사용되며, 변경 시 시스템 내 모든 통화 단위가 변경됩니다",
"saveSuccess": "저장 성공"
},
"email": {
"expiration_email_template": "만료 알림 템플릿",
"expiration_email_templateDescription": "템플릿의 {after}.변수명{before}은 실제 데이터로 대체됩니다. 이 변수를 반드시 유지하세요.",
"inputPlaceholder": "내용을 입력하세요...",
"maintenance_email_template": "유지보수 알림 템플릿",
"maintenance_email_templateDescription": "템플릿의 {after}.변수명{before}은 실제 데이터로 대체됩니다. 이 변수를 반드시 유지하세요.",
"saveSuccess": "구성이 성공적으로 저장되었습니다.",
"sendFailure": "테스트 이메일 전송에 실패했습니다. 구성을 확인하세요.",
"sendSuccess": "테스트 이메일이 성공적으로 전송되었습니다.",
"sendTestEmail": "테스트 이메일 전송",
"sendTestEmailDescription": "구성이 올바른지 확인하기 위해 테스트 이메일을 전송합니다.",
"senderAddress": "발신자 주소",
"senderAddressDescription": "기본적으로 이메일을 보내는 데 사용되는 이메일 주소입니다.",
"smtpAccount": "SMTP 계정",
"smtpAccountDescription": "인증에 사용되는 이메일 계정입니다.",
"smtpEncryptionMethod": "SMTP 암호화 방식",
"smtpEncryptionMethodDescription": "SSL/TLS 암호화 사용 여부를 선택하세요.",
"smtpPassword": "SMTP 비밀번호",
"smtpPasswordDescription": "이 SMTP 계정의 비밀번호입니다.",
"smtpServerAddress": "SMTP 서버 주소",
"smtpServerAddressDescription": "이메일 전송에 사용되는 서버 주소를 지정합니다.",
"smtpServerPort": "SMTP 서버 포트",
"smtpServerPortDescription": "SMTP 서버에 연결하는 데 사용되는 포트 번호를 지정합니다.",
"verify_email_template": "인증 이메일 템플릿",
"verify_email_templateDescription": "템플릿의 {after}.변수명{before}은 실제 데이터로 대체됩니다. 이 변수를 반드시 유지하세요."
},
"invite": {
"commissionFirstTimeOnly": "최초 구매 시에만 커미션",
"commissionFirstTimeOnlyDescription": "활성화하면, 초대받은 사람이 최초 결제 시에만 커미션이 생성됩니다. 사용자 관리에서 개별 사용자를 구성할 수 있습니다.",
"enableForcedInvite": "강제 초대 활성화",
"enableForcedInviteDescription": "활성화하면, 초대받은 사용자만 등록할 수 있습니다.",
"inputPlaceholder": "입력하세요",
"inviteCommissionPercentage": "초대 커미션 비율",
"inviteCommissionPercentageDescription": "기본 전역 커미션 배분 비율입니다. 사용자 관리에서 개별 비율을 구성할 수 있습니다.",
"saveSuccess": "저장 성공"
},
"node": {
"communicationKey": "통신 키",
"communicationKeyDescription": "데이터가 다른 사람에게 가로채이지 않도록 보장하는 노드 통신 키",
"inputPlaceholder": "입력하세요",
"nodePullInterval": "노드 가져오기 간격",
"nodePullIntervalDescription": "노드가 패널에서 데이터를 가져오는 빈도(초)",
"nodePushInterval": "노드 푸시 간격",
"nodePushIntervalDescription": "노드가 데이터를 패널로 푸시하는 빈도",
"saveSuccess": "저장 성공"
},
"register": {
"emailSuffixWhitelist": "이메일 접미사 화이트리스트",
"emailSuffixWhitelistDescription": "활성화하면, 목록에 있는 접미사의 이메일만 등록할 수 있습니다.",
"emailVerification": "이메일 인증",
"emailVerificationDescription": "활성화하면, 사용자는 이메일을 인증해야 합니다.",
"ipRegistrationLimit": "IP 등록 제한",
"ipRegistrationLimitDescription": "활성화하면, 규칙에 맞는 IP는 등록이 제한됩니다. CDN 또는 프론트엔드 프록시로 인해 IP 확인에 문제가 발생할 수 있습니다.",
"penaltyTime": "처벌 시간 (분)",
"penaltyTimeDescription": "사용자는 처벌 시간이 지나야 다시 등록할 수 있습니다.",
"registrationLimitCount": "등록 제한 횟수",
"registrationLimitCountDescription": "등록 제한에 도달하면 처벌이 활성화됩니다.",
"saveSuccess": "저장 성공",
"stopNewUserRegistration": "신규 사용자 등록 중지",
"stopNewUserRegistrationDescription": "활성화하면, 아무도 등록할 수 없습니다.",
"trialRegistration": "체험 등록",
"trialRegistrationDescription": "체험 등록을 활성화하려면, 먼저 체험 패키지와 기간을 수정하세요.",
"whitelistSuffixes": "화이트리스트 접미사",
"whitelistSuffixesDescription": "이메일 인증 등록에 사용됩니다. 한 줄에 하나씩 입력하세요.",
"whitelistSuffixesPlaceholder": "이메일 접미사를 입력하세요. 한 줄에 하나씩"
},
"site": {
"logo": "LOGO",
"logoDescription": "LOGO를 표시해야 하는 위치에 사용됩니다",
"logoPlaceholder": "LOGO의 URL 주소를 입력하세요. '/'로 끝나지 않도록 하세요",
"saveSuccess": "저장 성공",
"siteDesc": "사이트 설명",
"siteDescDescription": "사이트 설명을 표시해야 하는 위치에 사용됩니다",
"siteDescPlaceholder": "사이트 설명을 입력하세요",
"siteDomain": "사이트 도메인",
"siteDomainDescription": "현재 웹사이트의 도메인 주소로, 예를 들어 이메일에 사용됩니다",
"siteDomainPlaceholder": "도메인 주소를 입력하세요. 여러 도메인은 각 줄에 하나씩 입력하세요",
"siteName": "사이트 이름",
"siteNameDescription": "사이트 이름을 표시해야 하는 위치에 사용됩니다",
"siteNamePlaceholder": "사이트 이름을 입력하세요"
},
"subscription": {
"add": "추가",
"app": "앱",
"appDescription": "앱의 다운로드 주소와 가져오기 규칙을 구성합니다. 수정 후 저장하는 것을 잊지 마세요.",
"appDownloadURL": "앱 다운로드 주소",
"appIcon": "앱 아이콘",
"appName": "앱 이름",
"delete": "삭제",
"reset": "재설정",
"save": "저장",
"saveSuccess": "저장 성공",
"singleSubscriptionMode": "단일 구독 모드",
"singleSubscriptionModeDescription": "활성화하면 모든 사용자의 패키지가 잔액으로 전환됩니다.",
"subscriptionDomain": "구독 도메인",
"subscriptionDomainDescription": "구독에 사용됩니다. 비워두면 사이트 도메인을 사용합니다.",
"subscriptionDomainPlaceholder": "구독 도메인을 입력하세요. 여러 도메인은 각 줄에 하나씩 입력하세요.",
"subscriptionPath": "구독 경로",
"subscriptionPathDescription": "구독에 사용됩니다. 수정 후 최상의 성능을 위해 시스템을 반드시 재시작하세요.",
"subscriptionPathPlaceholder": "입력하세요",
"subscriptionProtocol": "구독 프로토콜",
"wildcardResolution": "와일드카드 해석",
"wildcardResolutionDescription": "구독에 사용됩니다."
},
"tabs": {
"currency": "통화",
"email": "이메일",
"invite": "초대",
"node": "노드",
"register": "등록",
"site": "사이트",
"subscription": "구독",
"telegram": "텔레그램",
"tos": "서비스 약관",
"verify": "검증"
},
"telegram": {
"botToken": "봇 토큰",
"botTokenDescription": "Botfather가 제공한 토큰을 입력하세요",
"enableBotNotifications": "봇 알림 활성화",
"enableBotNotificationsDescription": "활성화하면, 봇이 Telegram에 연결된 관리자와 사용자에게 기본 알림을 보냅니다",
"groupURL": "그룹 URL",
"groupURLDescription": "입력하면 사용자 인터페이스에 표시되거나 필요한 위치에 사용됩니다",
"inputPlaceholderBotToken": "0000000000:xxxxxxxxx_xxxxxxxxxxxxxxx",
"inputPlaceholderGroupURL": "https://t.me/xxxxxx",
"saveSuccess": "저장 성공"
},
"tos": {
"saveSuccess": "저장 성공",
"title": "서비스 약관"
},
"verify": {
"inputPlaceholder": "입력하세요",
"loginVerificationCode": "로그인 인증 코드",
"loginVerificationCodeDescription": "로그인 시의 인간 확인",
"registrationVerificationCode": "등록 인증 코드",
"registrationVerificationCodeDescription": "등록 시의 인간 확인",
"resetPasswordVerificationCode": "비밀번호 재설정 인증 코드",
"resetPasswordVerificationCodeDescription": "비밀번호 재설정 시의 인간 확인",
"saveSuccess": "저장 성공",
"turnstileSecret": "Turnstile 비밀키",
"turnstileSecretDescription": "Cloudflare에서 제공하는 Turnstile 비밀키",
"turnstileSiteKey": "Turnstile 사이트 키",
"turnstileSiteKeyDescription": "Cloudflare에서 제공하는 Turnstile 사이트 키"
}
}
+19
View File
@@ -0,0 +1,19 @@
{
"actions": "작업",
"cancel": "취소",
"check": "확인",
"close": "닫기",
"closeSuccess": "닫기 성공",
"closeWarning": "일단 닫으면 이 작업 티켓을 조작할 수 없습니다. 신중하게 처리하세요.",
"confirm": "확인",
"confirmClose": "닫으시겠습니까?",
"createdAt": "생성 시간",
"inputPlaceholder": "질문을 입력해 주시면 최대한 빨리 답변드리겠습니다.",
"open": "열기",
"reply": "답장",
"status": ["상태", "추적 대기", "답변 대기", "처리 완료", "닫힘"],
"ticketList": "티켓 목록",
"title": "제목",
"updatedAt": "업데이트 시간",
"user": "사용자"
}
+26
View File
@@ -0,0 +1,26 @@
{
"caller": "발신자",
"cancel": "취소",
"confirmReboot": "재부팅 확인",
"confirmSystemReboot": "시스템 재부팅 확인",
"confirmSystemUpgrade": "시스템 업그레이드를 확인",
"confirmUpgrade": "업그레이드 확인",
"currentVersion": "현재 시스템 버전:",
"errors": "오류",
"ip": "IP",
"lastUpdated": "마지막 업데이트:",
"none": "없음",
"query": "쿼리",
"rebootDescription": "시스템을 재부팅하시겠습니까? 이 작업은 일시적인 서비스 중단을 초래할 수 있습니다.",
"rebooting": "시스템을 재부팅 중입니다...",
"refreshLogs": "로그 새로고침",
"request": "요청",
"status": "상태",
"systemLogs": "시스템 로그",
"systemReboot": "시스템 재부팅",
"systemServices": "시스템 서비스",
"systemUpgrade": "시스템 업그레이드",
"upgradeDescription": "시스템 업그레이드를 수행하시겠습니까? 이 작업은 몇 분이 소요될 수 있으며, 그 동안 시스템이 응답하지 않을 수 있습니다.",
"userAgent": "사용자 에이전트",
"viewLogsAndManage": "시스템 로그를 보고 시스템 업그레이드 및 재시작 작업을 수행합니다"
}
+38
View File
@@ -0,0 +1,38 @@
{
"actions": "작업",
"balance": "잔액",
"cancel": "취소",
"confirm": "확인",
"confirmDelete": "삭제하시겠습니까?",
"create": "생성",
"createSuccess": "생성 성공",
"createUser": "사용자 생성",
"createdAt": "가입 시간",
"delete": "삭제",
"deleteDescription": "삭제 후 데이터는 복구할 수 없으니 신중하게 진행하세요.",
"deleteSuccess": "삭제 성공",
"edit": "편집",
"editUser": "사용자 편집",
"email": "이메일",
"enable": "사용",
"form": {
"balance": "잔액",
"balancePlaceholder": "잔액",
"cancel": "취소",
"confirm": "확인",
"invalidEmailFormat": "유효하지 않은 이메일 형식",
"inviteCode": "초대 코드",
"inviteCodePlaceholder": "초대 코드를 입력하세요 (비워두면 자동 생성)",
"manager": "관리자",
"password": "비밀번호",
"passwordPlaceholder": "새 비밀번호를 입력하세요 (비워둘 수 있음)",
"refererId": "추천인 ID",
"refererIdPlaceholder": "추천인 ID를 입력하세요",
"userEmail": "사용자 이메일",
"userEmailPlaceholder": "사용자 이메일을 입력하세요"
},
"referer": "추천인",
"updateSuccess": "업데이트 성공",
"userList": "사용자 목록",
"userName": "사용자 이메일"
}