♻️ refactor: Refactoring and adding multiple features

This commit is contained in:
web
2025-08-05 06:42:39 -07:00
parent 48415e9a30
commit 65c9b9f64f
106 changed files with 6893 additions and 4604 deletions
+4 -11
View File
@@ -1,32 +1,25 @@
{
"ADS Config": "ADS 구성",
"Announcement Management": "공지 관리",
"Apple": "Apple ID",
"Application Management": "애플리케이션 관리",
"Auth Control": "인증 제어",
"Coupon Management": "쿠폰 관리",
"Dashboard": "대시보드",
"Device": "장치",
"Document Management": "문서 관리",
"Email": "이메일",
"Facebook": "Facebook",
"Finance": "재무",
"General": "일반",
"GitHub": "GitHub",
"Google": "Google",
"Order Management": "주문 관리",
"Payment Config": "결제 구성",
"Phone Number": "전화번호",
"Product Management": "제품 관리",
"Protocol Management": "프로토콜 관리",
"Rule Management": "규칙 관리",
"Server": "서버",
"Server Management": "서버 관리",
"Settings": "설정",
"Subscribe Management": "구독 관리",
"Subscribe Config": "구독 설정",
"System Config": "시스템 구성",
"System Management": "시스템 관리",
"System Tool": "시스템 도구",
"Telegram": "텔레그램",
"Ticket Management": "티켓 관리",
"Twitter": "트위터",
"User": "사용자",
"User Detail": "사용자 세부 정보",
"User Management": "사용자 관리"
+160
View File
@@ -0,0 +1,160 @@
{
"actions": "작업",
"app": {
"appDownloadURL": "앱 다운로드 URL",
"appIcon": "앱 아이콘",
"appList": "앱 목록",
"appName": "앱 이름",
"backupDomains": "백업 도메인 목록",
"backupDomainsDescription": "도메인 해석을 위한 백업 도메인 목록, 한 줄에 하나의 도메인",
"batchDelete": "일괄 삭제",
"cancel": "취소",
"communicationKey": "통신 키",
"communicationKeyDescription": "클라이언트 통신에 사용되는 키",
"config": "설정",
"configApp": "앱 설정",
"confirm": "확인",
"confirmDelete": "삭제 확인",
"create": "생성",
"createApp": "앱 생성",
"createSuccess": "성공적으로 생성되었습니다",
"defaultVersion": "기본",
"delete": "삭제",
"deleteWarning": "이 작업은 되돌릴 수 없습니다",
"describeDescription": "애플리케이션을 설명하는 데 사용되며, 앱 목록에 표시됩니다",
"description": "설명",
"downloadLink": "다운로드 링크",
"edit": "편집",
"editApp": "앱 편집",
"encryption": "암호화 방법",
"encryptionDescription": "클라이언트 통신을 위한 암호화 방법을 선택하세요. 선택하면 클라이언트는 이 방법을 사용하여 서버와 통신합니다.",
"nameDescription": "애플리케이션 이름, 앱 목록에 표시됩니다",
"platform": "플랫폼",
"selectApp": "앱 선택",
"selectAppDescription": "구성할 앱을 선택하세요. 모든 설정은 선택한 앱에 적용됩니다.",
"startupPicture": "시작 화면",
"startupPictureDescription": "시작 화면, 네트워크 및 로컬 이미지를 지원합니다. 네트워크 이미지를 사용할 경우, 전체 이미지 URL을 입력하세요",
"startupPicturePreview": "시작 화면 미리보기",
"startupPictureSkip": "시작 화면 건너뛰기 시간",
"startupPictureSkipDescription": "시작 화면 표시 시간(초), 0을 입력하면 표시되지 않습니다",
"subscriptionProtocol": "구독 프로토콜",
"updateSuccess": "성공적으로 업데이트되었습니다",
"version": "버전"
},
"cancel": "취소",
"config": {
"singleSubscriptionMode": "단일 구독 모드",
"subscriptionDomain": "구독 도메인",
"subscriptionDomainDescription": "구독에 사용됩니다; 사이트 도메인을 사용하려면 비워 두세요",
"subscriptionDomainPlaceholder": "구독 도메인을 입력하세요, 한 줄에 하나씩",
"subscriptionPath": "구독 경로",
"subscriptionPathDescription": "구독에 사용됩니다; 최적의 성능을 위해 수정 후 시스템을 재시작하세요",
"subscriptionPathPlaceholder": "입력하세요",
"updateSuccess": "성공적으로 업데이트되었습니다",
"wildcardResolution": "와일드카드 해상도",
"wildcardResolutionDescription": "구독에 사용됩니다"
},
"confirm": "확인",
"confirmDelete": "삭제하시겠습니까?",
"copy": "복사",
"copySuccess": "성공적으로 복사되었습니다",
"create": "생성",
"createSubscribe": "새 구독 생성",
"createSuccess": "생성 성공",
"delete": "삭제",
"deleteSuccess": "삭제 성공",
"deleteWarning": "삭제 후 데이터는 복구할 수 없으니 신중하게 진행하세요.",
"deviceLimit": "장치 수/대",
"edit": "편집",
"editSubscribe": "구독 편집",
"form": {
"Day": "일",
"Hour": "시",
"Minute": "분",
"Month": "월",
"NoLimit": "제한 없음",
"Year": "년",
"annualReset": "연간 초기화",
"basic": "기본",
"cancel": "취소",
"confirm": "확인",
"deductionRatio": "자동/수동 공제 설정",
"deductionRatioDescription": "공제에 사용됩니다. 기본적으로 시스템은 자동 계산 알고리즘을 채택합니다. 수동 비율이 제공되면 시스템은 시간 및 트래픽 비율에 따라 비율을 계산하여 총합이 100%가 되도록 합니다.",
"description": "설명",
"deviceLimit": "기기 제한",
"discount": "할인",
"discountDescription": "단가 기준으로 할인 설정",
"discountMonths": "개월",
"discountPercent": "할인율",
"discount_price": "할인가",
"duration": "기간 (개월)",
"groupId": "구독 그룹",
"inventory": "구독 한도",
"monthlyReset": "월별 초기화",
"name": "이름",
"noLimit": "무제한",
"noReset": "초기화 없음",
"pricing": "가격",
"purchaseWithDiscount": "공제 허용",
"purchaseWithDiscountDescription": "구독 취소 기능을 활성화하거나 비활성화합니다. 활성화 후, 시스템은 설정된 규칙과 비율에 따라 공제 처리를 수행하며, 남은 가치는 잔액으로 반환됩니다.",
"quota": "구매 한도",
"renewalReset": "갱신 초기화",
"renewalResetDescription": "갱신 시 초기화 주기",
"replacement": "재설정 가격 (매회)",
"resetCycle": "초기화 주기",
"resetOn1st": "매월 1일 초기화",
"selectResetCycle": "초기화 주기를 선택하세요",
"selectSubscribeGroup": "구독 그룹을 선택하세요",
"selectUnitTime": "단위 시간을 선택하세요",
"server": "서버",
"serverGroup": "서버 그룹",
"servers": "서버",
"speedLimit": "속도 제한 ",
"traffic": "트래픽",
"unitPrice": "단가",
"unitTime": "단위 시간"
},
"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": "표시",
"sold": "구독 수",
"subscribe": "구독",
"subscribeGroup": "구독 그룹",
"tabs": {
"subscribe": "구독",
"subscribeApp": "앱 구성",
"subscribeConfig": "구독 구성",
"subscribeGroup": "구독 그룹"
},
"traffic": "트래픽",
"unitPrice": "단가",
"updateSuccess": "업데이트 성공"
}
+73 -145
View File
@@ -1,161 +1,89 @@
{
"actions": "작업",
"app": {
"appDownloadURL": "앱 다운로드 URL",
"appIcon": "앱 아이콘",
"appList": "앱 목록",
"appName": "앱 이름",
"backupDomains": "백업 도메인 목록",
"backupDomainsDescription": "도메인 해석을 위한 백업 도메인 목록, 한 줄에 하나의 도메인",
"batchDelete": "일괄 삭제",
"actions": {
"cancel": "취소",
"communicationKey": "통신 키",
"communicationKeyDescription": "클라이언트 통신에 사용되는 키",
"config": "설정",
"configApp": "앱 설정",
"confirm": "확인",
"confirmDelete": "삭제 확인",
"create": "생성",
"createApp": "앱 생성",
"createSuccess": "성공적으로 생성되었습니다",
"defaultVersion": "기본",
"delete": "삭제",
"deleteWarning": "이 작업은 되돌릴 수 없습니다",
"describeDescription": "애플리케이션을 설명하는 데 사용되며, 앱 목록에 표시됩니다",
"description": "설명",
"downloadLink": "다운로드 링크",
"edit": "편집",
"editApp": "앱 편집",
"encryption": "암호화 방법",
"encryptionDescription": "클라이언트 통신을 위한 암호화 방법을 선택하세요. 선택하면 클라이언트는 이 방법을 사용하여 서버와 통신합니다.",
"nameDescription": "애플리케이션 이름, 앱 목록에 표시됩니다",
"platform": "플랫폼",
"selectApp": "앱 선택",
"selectAppDescription": "구성할 앱을 선택하세요. 모든 설정은 선택한 앱에 적용됩니다.",
"startupPicture": "시작 화면",
"startupPictureDescription": "시작 화면, 네트워크 및 로컬 이미지를 지원합니다. 네트워크 이미지를 사용할 경우, 전체 이미지 URL을 입력하세요",
"startupPicturePreview": "시작 화면 미리보기",
"startupPictureSkip": "시작 화면 건너뛰기 시간",
"startupPictureSkipDescription": "시작 화면 표시 시간(초), 0을 입력하면 표시되지 않습니다",
"subscriptionProtocol": "구독 프로토콜",
"updateSuccess": "성공적으로 업데이트되었습니다",
"version": "버전"
"save": "저장",
"saveTemplate": "템플릿 저장"
},
"cancel": "취소",
"config": {
"description": "구독 시스템 설정 관리",
"restrictUserAgent": "사용자 에이전트 제한",
"restrictUserAgentDescription": "사용자 에이전트를 기반으로 한 접근 제한 활성화",
"singleSubscriptionMode": "단일 구독 모드",
"singleSubscriptionModeDescription": "활성화되면 모든 사용자 구독이 잔액으로 전환됩니다",
"singleSubscriptionModeDescription": "사용자를 하나의 활성 구독으로 제한합니다. 기존 구독에는 영향을 미치지 않습니다",
"subscriptionDomain": "구독 도메인",
"subscriptionDomainDescription": "구독에 사용됩니다; 사이트 도메인을 사용하려면 비워 두세요",
"subscriptionDomainDescription": "구독 링크를 위한 사용자 지정 도메인",
"subscriptionDomainPlaceholder": "구독 도메인을 입력하세요, 한 줄에 하나씩",
"subscriptionPath": "구독 경로",
"subscriptionPathDescription": "구독에 사용됩니다; 최적의 성능을 위해 수정 후 시스템 재시작하세요",
"subscriptionPathPlaceholder": "입력하세요",
"updateSuccess": "성공적으로 업데이트되었습니다",
"subscriptionPathDescription": "구독 엔드포인트를 위한 사용자 지정 경로 (시스템 재시작 후 성능 향상)",
"subscriptionPathPlaceholder": "구독 경로를 입력하세요",
"title": "구독 설정",
"updateError": "업데이트 실패",
"updateSuccess": "설정이 성공적으로 업데이트되었습니다",
"userAgentWhitelist": "사용자 에이전트 허용 목록",
"userAgentWhitelistDescription": "구독 접근을 위한 허용된 사용자 에이전트, 한 줄에 하나씩 입력합니다. 내장 템플릿은 자동으로 허용 목록에 포함됩니다",
"userAgentWhitelistPlaceholder": "허용된 사용자 에이전트를 입력하세요, 한 줄에 하나씩",
"wildcardResolution": "와일드카드 해상도",
"wildcardResolutionDescription": "구독에 사용됩니다"
"wildcardResolutionDescription": "구독을 위한 와일드카드 도메인 해상도 활성화"
},
"confirm": "확인",
"confirmDelete": "삭제하시겠습니까?",
"copy": "복사",
"copySuccess": "성공적으로 복사되었습니다",
"create": "생성",
"createSubscribe": "새 구독 생성",
"createSuccess": "생성 성공",
"delete": "삭제",
"deleteSuccess": "삭제 성공",
"deleteWarning": "삭제 후 데이터는 복구할 수 없으니 신중하게 진행하세요.",
"deviceLimit": "장치 수/대",
"edit": "편집",
"editSubscribe": "구독 편집",
"form": {
"Day": "일",
"Hour": "시",
"Minute": "분",
"Month": "월",
"NoLimit": "제한 없음",
"Year": "년",
"annualReset": "연간 초기화",
"basic": "기본",
"cancel": "취소",
"confirm": "확인",
"deductionRatio": "자동/수동 공제 설정",
"deductionRatioDescription": "공제에 사용됩니다. 기본적으로 시스템은 자동 계산 알고리즘을 채택합니다. 수동 비율이 제공되면 시스템은 시간 및 트래픽 비율에 따라 비율을 계산하여 총합이 100%가 되도록 합니다.",
"description": "설명",
"deviceLimit": "기기 제한",
"discount": "할인",
"discountDescription": "단가 기준으로 할인 설정",
"discountMonths": "개월",
"discountPercent": "할인율",
"discount_price": "할인가",
"duration": "기간 (개월)",
"groupId": "구독 그룹",
"inventory": "구독 한도",
"monthlyReset": "월별 초기화",
"name": "이름",
"noLimit": "무제한",
"noReset": "초기화 없음",
"pricing": "가격",
"purchaseWithDiscount": "공제 허용",
"purchaseWithDiscountDescription": "구독 취소 기능을 활성화하거나 비활성화합니다. 활성화 후, 시스템은 설정된 규칙과 비율에 따라 공제 처리를 수행하며, 남은 가치는 잔액으로 반환됩니다.",
"quota": "구매 한도",
"renewalReset": "갱신 초기화",
"renewalResetDescription": "갱신 시 초기화 주기",
"replacement": "재설정 가격 (매회)",
"resetCycle": "초기화 주기",
"resetOn1st": "매월 1일 초기화",
"selectResetCycle": "초기화 주기를 선택하세요",
"selectSubscribeGroup": "구독 그룹을 선택하세요",
"selectUnitTime": "단위 시간을 선택하세요",
"server": "서버",
"serverGroup": "서버 그룹",
"servers": "서버",
"speedLimit": "속도 제한 ",
"traffic": "트래픽",
"unitPrice": "단가",
"unitTime": "단위 시간"
"description": "구독 설정 및 클라이언트 템플릿 구성",
"messages": {
"noClients": "클라이언트 템플릿 없음",
"noClientsDescription": "아직 구성된 클라이언트 템플릿이 없습니다. 첫 번째 템플릿을 추가하여 시작하세요."
},
"group": {
"actions": "작업",
"cancel": "취소",
"confirm": "확인",
"confirmDelete": "삭제하시겠습니까?",
"create": "생성",
"createSubscribeGroup": "새 구독 그룹 생성",
"createSuccess": "생성 성공",
"delete": "삭제",
"deleteSuccess": "삭제 성공",
"deleteWarning": "삭제 후 데이터는 복구할 수 없습니다. 신중하게 진행하세요.",
"description": "설명",
"edit": "편집",
"editSubscribeGroup": "구독 그룹 편집",
"form": {
"cancel": "취소",
"confirm": "확인",
"description": "설명",
"name": "이름"
"protocol": {
"clients": {
"clash": {
"features": "대규모 생태계, 포괄적인 규칙, 활발한 커뮤니티"
},
"egern": {
"features": "현대적인 iOS 클라이언트, 뛰어난 성능"
},
"hiddify": {
"features": "다중 플랫폼, 포괄적인 프로토콜, 초보자 친화적"
},
"loon": {
"features": "iOS 고급 클라이언트, 풍부한 규칙, 아름다운 인터페이스"
},
"netch": {
"features": "게임 중심의 프록시 클라이언트"
},
"quantumult": {
"features": "iOS 고급 클라이언트, 유연한 규칙, 풍부한 스크립트"
},
"shadowrocket": {
"features": "클래식 iOS 클라이언트, 유연한 구성"
},
"singbox": {
"features": "최신 커널, 공식 GUI, 다중 플랫폼 지원"
},
"stash": {
"features": "현대적인 모바일 UI, 포괄적인 프로토콜"
},
"surfboard": {
"features": "무료, 활발한 개발, 현대적인 인터페이스"
},
"surge": {
"features": "프리미엄 iOS/Mac 도구, 강력한 기능"
},
"v2box": {
"features": "사용자 친화적인 V2Ray 클라이언트"
},
"v2rayn": {
"features": "인기 있는 Windows 클라이언트, 기능이 풍부함"
},
"v2rayng": {
"features": "인기 있는 Android 클라이언트, 경량"
}
},
"name": "이름",
"title": "구독 그룹 목록",
"updateSuccess": "업데이트 성공",
"updatedAt": "업데이트 시간"
"description": "프록시 클라이언트를 위한 구독 구성 템플릿 관리",
"features": "주요 기능",
"platforms": "플랫폼",
"subscribeTemplate": "구독 템플릿 구성",
"templateContent": "템플릿 내용",
"templatePlaceholder": "클라이언트 구성 템플릿을 입력하세요...",
"title": "클라이언트 구독 템플릿"
},
"inventory": "구독 한도",
"name": "이름",
"quota": "구매 제한/회",
"replacement": "가격 재설정/회",
"sell": "판매",
"show": "표시",
"sold": "구독 수",
"subscribe": "구독",
"subscribeGroup": "구독 그룹",
"tabs": {
"subscribe": "구독",
"subscribeApp": "앱 구성",
"subscribeConfig": "구독 구성",
"subscribeGroup": "구독 그룹"
},
"traffic": "트래픽",
"unitPrice": "단가",
"updateSuccess": "업데이트 성공"
"title": "구독 관리"
}