@authrim/setup 0.1.89 → 0.1.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +58 -11
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/core/lock.d.ts +16 -16
- package/dist/core/wrangler.d.ts.map +1 -1
- package/dist/core/wrangler.js +21 -2
- package/dist/core/wrangler.js.map +1 -1
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +14 -3
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/locales/de.d.ts +8 -0
- package/dist/i18n/locales/de.d.ts.map +1 -0
- package/dist/i18n/locales/de.js +894 -0
- package/dist/i18n/locales/de.js.map +1 -0
- package/dist/i18n/locales/es.d.ts +8 -0
- package/dist/i18n/locales/es.d.ts.map +1 -0
- package/dist/i18n/locales/es.js +894 -0
- package/dist/i18n/locales/es.js.map +1 -0
- package/dist/i18n/locales/fr.d.ts +8 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -0
- package/dist/i18n/locales/fr.js +894 -0
- package/dist/i18n/locales/fr.js.map +1 -0
- package/dist/i18n/locales/id.d.ts +8 -0
- package/dist/i18n/locales/id.d.ts.map +1 -0
- package/dist/i18n/locales/id.js +894 -0
- package/dist/i18n/locales/id.js.map +1 -0
- package/dist/i18n/locales/ko.d.ts +8 -0
- package/dist/i18n/locales/ko.d.ts.map +1 -0
- package/dist/i18n/locales/ko.js +894 -0
- package/dist/i18n/locales/ko.js.map +1 -0
- package/dist/i18n/locales/pt.d.ts +8 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -0
- package/dist/i18n/locales/pt.js +894 -0
- package/dist/i18n/locales/pt.js.map +1 -0
- package/dist/i18n/locales/ru.d.ts +8 -0
- package/dist/i18n/locales/ru.d.ts.map +1 -0
- package/dist/i18n/locales/ru.js +894 -0
- package/dist/i18n/locales/ru.js.map +1 -0
- package/dist/i18n/locales/zh-CN.d.ts +8 -0
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
- package/dist/i18n/locales/zh-CN.js +894 -0
- package/dist/i18n/locales/zh-CN.js.map +1 -0
- package/dist/i18n/locales/zh-TW.d.ts +8 -0
- package/dist/i18n/locales/zh-TW.d.ts.map +1 -0
- package/dist/i18n/locales/zh-TW.js +894 -0
- package/dist/i18n/locales/zh-TW.js.map +1 -0
- package/dist/i18n/types.d.ts +1 -1
- package/dist/i18n/types.d.ts.map +1 -1
- package/dist/i18n/types.js +1 -0
- package/dist/i18n/types.js.map +1 -1
- package/dist/web/ui.d.ts.map +1 -1
- package/dist/web/ui.js +7 -2
- package/dist/web/ui.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,894 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Korean Translations for Authrim Setup Tool
|
|
3
|
+
* 한국어 번역 (합니다체 사용)
|
|
4
|
+
*/
|
|
5
|
+
const ko = {
|
|
6
|
+
// Language selection
|
|
7
|
+
'language.select': 'Select language / 언어 선택 / 言語を選択',
|
|
8
|
+
'language.selected': '언어: {{language}}',
|
|
9
|
+
// Banner
|
|
10
|
+
'banner.title': 'Authrim 설정',
|
|
11
|
+
'banner.subtitle': 'Cloudflare Workers 기반 OIDC 제공자',
|
|
12
|
+
'banner.warning': '경고: 개발 중입니다!',
|
|
13
|
+
'banner.warningDetail': '이 프로젝트는 아직 정상적으로 작동하지 않습니다.',
|
|
14
|
+
'banner.adminWarning': '관리자 UI는 불완전하며 로그인을 지원하지 않습니다.',
|
|
15
|
+
'banner.exitHint': '언제든지 Ctrl+C를 눌러 종료할 수 있습니다',
|
|
16
|
+
// Mode selection
|
|
17
|
+
'mode.prompt': '설정 방법을 선택하세요',
|
|
18
|
+
'mode.quick': 'Web UI (권장)',
|
|
19
|
+
'mode.quickDesc': '브라우저에서 대화형 설정',
|
|
20
|
+
'mode.advanced': 'CLI 모드',
|
|
21
|
+
'mode.advancedDesc': '터미널에서 대화형 설정',
|
|
22
|
+
// Startup menu
|
|
23
|
+
'startup.description': 'Cloudflare Workers에 Authrim OIDC 제공자를 설정합니다.',
|
|
24
|
+
'startup.cancel': '취소',
|
|
25
|
+
'startup.cancelDesc': '설정 종료',
|
|
26
|
+
'startup.cancelled': '설정이 취소되었습니다.',
|
|
27
|
+
'startup.resumeLater': '나중에 재개하려면:',
|
|
28
|
+
// Main menu
|
|
29
|
+
'menu.prompt': '무엇을 하시겠습니까?',
|
|
30
|
+
'menu.quick': '빠른 설정 (5분)',
|
|
31
|
+
'menu.quickDesc': '최소 구성으로 Authrim 배포',
|
|
32
|
+
'menu.custom': '사용자 정의 설정',
|
|
33
|
+
'menu.customDesc': '모든 옵션을 단계별로 구성',
|
|
34
|
+
// Setup titles
|
|
35
|
+
'quick.title': '⚡ 빠른 설정',
|
|
36
|
+
'custom.title': '🔧 사용자 정의 설정',
|
|
37
|
+
'menu.manage': '기존 환경 보기',
|
|
38
|
+
'menu.manageDesc': '기존 환경 조회, 검사 또는 삭제',
|
|
39
|
+
'menu.load': '기존 구성 로드',
|
|
40
|
+
'menu.loadDesc': 'authrim-config.json에서 설정 재개',
|
|
41
|
+
'menu.exit': '종료',
|
|
42
|
+
'menu.exitDesc': '설정 종료',
|
|
43
|
+
'menu.goodbye': '안녕히 가세요!',
|
|
44
|
+
// Update check
|
|
45
|
+
'update.checking': '업데이트 확인 중...',
|
|
46
|
+
'update.available': '업데이트 가능: {{localVersion}} → {{remoteVersion}}',
|
|
47
|
+
'update.prompt': '무엇을 하시겠습니까?',
|
|
48
|
+
'update.continue': '현재 버전으로 계속 ({{version}})',
|
|
49
|
+
'update.continueDesc': '기존 소스 코드 사용',
|
|
50
|
+
'update.update': '최신 버전으로 업데이트 ({{version}})',
|
|
51
|
+
'update.updateDesc': '새 버전 다운로드 및 교체',
|
|
52
|
+
'update.cancel': '취소',
|
|
53
|
+
'update.cancelled': '취소되었습니다.',
|
|
54
|
+
'update.current': 'Authrim 소스 사용 중 (v{{version}})',
|
|
55
|
+
// Source download
|
|
56
|
+
'source.downloading': '소스 코드 다운로드 중...',
|
|
57
|
+
'source.downloaded': '소스 코드 다운로드 완료 ({{version}})',
|
|
58
|
+
'source.extracting': '소스 코드 추출 중...',
|
|
59
|
+
'source.installing': '의존성 설치 중 (몇 분 소요될 수 있습니다)...',
|
|
60
|
+
'source.installed': '의존성 설치 완료',
|
|
61
|
+
'source.installFailed': '의존성 설치 실패',
|
|
62
|
+
'source.installManually': '수동으로 설치를 시도해 보세요:',
|
|
63
|
+
'source.notInSourceDir': 'Authrim 소스 코드를 찾을 수 없습니다',
|
|
64
|
+
'source.downloadPrompt': '소스 코드를 {{path}}에 다운로드하시겠습니까?',
|
|
65
|
+
'source.downloadOption': '소스 코드 다운로드',
|
|
66
|
+
'source.downloadOptionDesc': '최신 버전 다운로드',
|
|
67
|
+
'source.exitOption': '종료',
|
|
68
|
+
'source.exitOptionDesc': '설정 종료',
|
|
69
|
+
'source.cloneManually': '수동으로 클론하려면:',
|
|
70
|
+
'source.directoryExists': '{{path}} 디렉토리가 존재하지만 유효한 Authrim 소스가 아닙니다',
|
|
71
|
+
'source.replaceOption': '새로 다운로드하여 교체',
|
|
72
|
+
'source.replaceOptionDesc': '{{path}}를 삭제하고 최신 버전 다운로드',
|
|
73
|
+
'source.differentOption': '다른 디렉토리 사용',
|
|
74
|
+
'source.differentOptionDesc': '다른 위치 지정',
|
|
75
|
+
'source.enterPath': '디렉토리 경로 입력:',
|
|
76
|
+
'source.updateFailed': '업데이트 실패',
|
|
77
|
+
'source.downloadFailed': '다운로드 실패',
|
|
78
|
+
'source.verificationWarnings': '소스 구조 검증 경고:',
|
|
79
|
+
// Prerequisites
|
|
80
|
+
'prereq.checking': 'wrangler 상태 확인 중...',
|
|
81
|
+
'prereq.wranglerNotInstalled': 'wrangler가 설치되지 않았습니다',
|
|
82
|
+
'prereq.wranglerInstallHint': '다음 명령어를 실행하여 설치하세요:',
|
|
83
|
+
'prereq.notLoggedIn': 'Cloudflare에 로그인되지 않았습니다',
|
|
84
|
+
'prereq.loginHint': '다음 명령어를 실행하여 인증하세요:',
|
|
85
|
+
'prereq.loggedInAs': 'Cloudflare에 연결됨 ({{email}})',
|
|
86
|
+
'prereq.accountId': '계정 ID: {{accountId}}',
|
|
87
|
+
// Environment
|
|
88
|
+
'env.prompt': '환경 이름을 입력하세요',
|
|
89
|
+
'env.prod': '프로덕션',
|
|
90
|
+
'env.prodDesc': '프로덕션 용도',
|
|
91
|
+
'env.staging': '스테이징',
|
|
92
|
+
'env.stagingDesc': '프로덕션 전 테스트용',
|
|
93
|
+
'env.dev': '개발',
|
|
94
|
+
'env.devDesc': '로컬 개발용',
|
|
95
|
+
'env.custom': '사용자 정의',
|
|
96
|
+
'env.customDesc': '사용자 정의 환경 이름 입력',
|
|
97
|
+
'env.customPrompt': '사용자 정의 환경 이름 입력',
|
|
98
|
+
'env.customValidation': '소문자 영숫자와 하이픈만 허용됩니다 (예: prod, staging, dev)',
|
|
99
|
+
'env.detected': '감지된 환경:',
|
|
100
|
+
'env.selectExisting': '기존 환경 선택',
|
|
101
|
+
'env.createNew': '새 환경 생성',
|
|
102
|
+
'env.createNewDesc': '새 환경 설정',
|
|
103
|
+
'env.checking': '기존 환경 확인 중...',
|
|
104
|
+
'env.alreadyExists': '"{{env}}" 환경이 이미 존재합니다',
|
|
105
|
+
'env.existingResources': '기존 리소스:',
|
|
106
|
+
'env.workers': 'Workers: {{count}}',
|
|
107
|
+
'env.d1Databases': 'D1 데이터베이스: {{count}}',
|
|
108
|
+
'env.kvNamespaces': 'KV 네임스페이스: {{count}}',
|
|
109
|
+
'env.chooseAnother': '다른 이름을 선택하거나 "npx @authrim/setup manage"를 사용하여 먼저 삭제하세요.',
|
|
110
|
+
'env.available': '환경 이름 사용 가능',
|
|
111
|
+
'env.checkFailed': '기존 환경을 확인할 수 없습니다 (계속 진행)',
|
|
112
|
+
'env.noEnvFound': 'Authrim 환경을 찾을 수 없습니다.',
|
|
113
|
+
// Region
|
|
114
|
+
'region.prompt': '지역 선택',
|
|
115
|
+
'region.auto': '자동 (가장 가까운 지역)',
|
|
116
|
+
'region.autoDesc': 'Cloudflare가 가장 가까운 지역 선택',
|
|
117
|
+
'region.wnam': '북미 (서부)',
|
|
118
|
+
'region.wnamDesc': '북미 서부 지역',
|
|
119
|
+
'region.enam': '북미 (동부)',
|
|
120
|
+
'region.enamDesc': '북미 동부 지역',
|
|
121
|
+
'region.weur': '유럽 (서부)',
|
|
122
|
+
'region.weurDesc': '서유럽 지역',
|
|
123
|
+
'region.eeur': '유럽 (동부)',
|
|
124
|
+
'region.eeurDesc': '동유럽 지역',
|
|
125
|
+
'region.apac': '아시아 태평양',
|
|
126
|
+
'region.apacDesc': '아시아 태평양 지역',
|
|
127
|
+
'region.oceania': '오세아니아',
|
|
128
|
+
'region.oceaniaDesc': '호주 및 태평양 제도',
|
|
129
|
+
'region.euJurisdiction': 'EU 관할권 (GDPR 준수)',
|
|
130
|
+
'region.euJurisdictionDesc': 'EU 내 데이터 저장',
|
|
131
|
+
// UI deployment
|
|
132
|
+
'ui.prompt': 'UI 배포 방법',
|
|
133
|
+
'ui.pagesOption': 'Cloudflare Pages',
|
|
134
|
+
'ui.pagesDesc': 'Cloudflare Pages에 배포 (권장)',
|
|
135
|
+
'ui.customOption': '사용자 정의 도메인',
|
|
136
|
+
'ui.customDesc': '자체 호스팅 사용',
|
|
137
|
+
'ui.skipOption': '건너뛰기',
|
|
138
|
+
'ui.skipDesc': 'UI 배포 건너뛰기',
|
|
139
|
+
'ui.customPrompt': '사용자 정의 UI URL 입력',
|
|
140
|
+
// Domain
|
|
141
|
+
'domain.prompt': '사용자 정의 도메인을 구성하시겠습니까?',
|
|
142
|
+
'domain.workersDevOption': 'workers.dev 도메인 사용',
|
|
143
|
+
'domain.workersDevDesc': 'Cloudflare 기본 도메인 사용',
|
|
144
|
+
'domain.customOption': '사용자 정의 도메인 구성',
|
|
145
|
+
'domain.customDesc': '자체 도메인 사용',
|
|
146
|
+
'domain.customPrompt': '사용자 정의 도메인 입력 (예: auth.example.com)',
|
|
147
|
+
'domain.customValidation': '유효한 도메인을 입력하세요 (예: auth.example.com)',
|
|
148
|
+
'domain.issuerUrl': '발급자 URL: {{url}}',
|
|
149
|
+
'domain.apiDomain': 'API / 발급자 도메인 (예: auth.example.com)',
|
|
150
|
+
'domain.loginUiDomain': '로그인 UI 도메인 (건너뛰려면 Enter)',
|
|
151
|
+
'domain.adminUiDomain': '관리자 UI 도메인 (건너뛰려면 Enter)',
|
|
152
|
+
'domain.enterDomains': '사용자 정의 도메인 입력 (Cloudflare 기본값을 사용하려면 비워두세요)',
|
|
153
|
+
'domain.singleTenantNote': '단일 테넌트 모드에서는 발급자 URL = API 도메인',
|
|
154
|
+
'domain.usingWorkersDev': '(Cloudflare workers.dev 도메인 사용)',
|
|
155
|
+
// Database
|
|
156
|
+
'db.title': '데이터베이스 구성',
|
|
157
|
+
'db.regionWarning': '데이터베이스 지역은 생성 후 변경할 수 없습니다.',
|
|
158
|
+
'db.coreDescription': 'Core DB: OAuth 클라이언트, 토큰, 세션, 감사 로그 저장',
|
|
159
|
+
'db.coreRegion': 'Core 데이터베이스 지역',
|
|
160
|
+
'db.piiDescription': 'PII DB: 사용자 프로필, 자격 증명, 개인 데이터 저장',
|
|
161
|
+
'db.piiNote': '데이터 보호 요구사항을 고려하세요.',
|
|
162
|
+
'db.piiRegion': 'PII 데이터베이스 지역',
|
|
163
|
+
'db.creating': '데이터베이스 생성 중...',
|
|
164
|
+
'db.created': '데이터베이스 생성됨: {{name}}',
|
|
165
|
+
'db.existing': '기존 데이터베이스 사용: {{name}}',
|
|
166
|
+
'db.error': '데이터베이스 생성 실패',
|
|
167
|
+
'db.locationHints': '위치 힌트',
|
|
168
|
+
'db.jurisdictionCompliance': '관할권 (컴플라이언스)',
|
|
169
|
+
// KV
|
|
170
|
+
'kv.creating': 'KV 네임스페이스 생성 중...',
|
|
171
|
+
'kv.created': 'KV 네임스페이스 생성됨: {{name}}',
|
|
172
|
+
'kv.existing': '기존 KV 네임스페이스 사용: {{name}}',
|
|
173
|
+
'kv.error': 'KV 네임스페이스 생성 실패',
|
|
174
|
+
// Queue
|
|
175
|
+
'queue.creating': '큐 생성 중...',
|
|
176
|
+
'queue.created': '큐 생성됨: {{name}}',
|
|
177
|
+
'queue.existing': '기존 큐 사용: {{name}}',
|
|
178
|
+
'queue.error': '큐 생성 실패',
|
|
179
|
+
// R2
|
|
180
|
+
'r2.creating': 'R2 버킷 생성 중...',
|
|
181
|
+
'r2.created': 'R2 버킷 생성됨: {{name}}',
|
|
182
|
+
'r2.existing': '기존 R2 버킷 사용: {{name}}',
|
|
183
|
+
'r2.error': 'R2 버킷 생성 실패',
|
|
184
|
+
// Keys
|
|
185
|
+
'keys.generating': '암호화 키 생성 중...',
|
|
186
|
+
'keys.generated': '키 생성됨 ({{path}})',
|
|
187
|
+
'keys.existing': '"{{env}}" 환경의 키가 이미 존재합니다',
|
|
188
|
+
'keys.existingWarning': '기존 키가 덮어쓰기됩니다.',
|
|
189
|
+
'keys.error': '키 생성 실패',
|
|
190
|
+
'keys.regeneratePrompt': '키를 재생성하시겠습니까?',
|
|
191
|
+
'keys.regenerateWarning': '기존의 모든 토큰이 무효화됩니다!',
|
|
192
|
+
// Config
|
|
193
|
+
'config.saving': '구성 저장 중...',
|
|
194
|
+
'config.saved': '구성이 {{path}}에 저장됨',
|
|
195
|
+
'config.error': '구성 저장 실패',
|
|
196
|
+
'config.path': '구성 경로',
|
|
197
|
+
'config.summary': '구성 요약',
|
|
198
|
+
'config.infrastructure': '인프라:',
|
|
199
|
+
'config.environment': '환경:',
|
|
200
|
+
'config.workerPrefix': 'Worker 접두사:',
|
|
201
|
+
'config.profile': '프로필:',
|
|
202
|
+
'config.tenantIssuer': '테넌트 & 발급자:',
|
|
203
|
+
'config.mode': '모드:',
|
|
204
|
+
'config.multiTenant': '멀티 테넌트',
|
|
205
|
+
'config.singleTenant': '단일 테넌트',
|
|
206
|
+
'config.baseDomain': '기본 도메인:',
|
|
207
|
+
'config.issuerFormat': '발급자 형식:',
|
|
208
|
+
'config.issuerUrl': '발급자 URL:',
|
|
209
|
+
'config.defaultTenant': '기본 테넌트:',
|
|
210
|
+
'config.displayName': '표시 이름:',
|
|
211
|
+
'config.publicUrls': '공개 URL:',
|
|
212
|
+
'config.apiRouter': 'API 라우터:',
|
|
213
|
+
'config.loginUi': '로그인 UI:',
|
|
214
|
+
'config.adminUi': '관리자 UI:',
|
|
215
|
+
'config.components': '컴포넌트:',
|
|
216
|
+
'config.featureFlags': '기능 플래그:',
|
|
217
|
+
'config.emailSettings': '이메일:',
|
|
218
|
+
'config.oidcSettings': 'OIDC 설정:',
|
|
219
|
+
'config.accessTtl': '액세스 TTL:',
|
|
220
|
+
'config.refreshTtl': '리프레시 TTL:',
|
|
221
|
+
'config.authCodeTtl': '인증 코드 TTL:',
|
|
222
|
+
'config.pkceRequired': 'PKCE 필수:',
|
|
223
|
+
'config.sharding': '샤딩:',
|
|
224
|
+
'config.authCodeShards': '인증 코드:',
|
|
225
|
+
'config.refreshTokenShards': '리프레시 토큰:',
|
|
226
|
+
'config.database': '데이터베이스:',
|
|
227
|
+
'config.coreDb': 'Core DB:',
|
|
228
|
+
'config.piiDb': 'PII DB:',
|
|
229
|
+
'config.enabled': '활성화됨',
|
|
230
|
+
'config.disabled': '비활성화됨',
|
|
231
|
+
'config.standard': '(표준)',
|
|
232
|
+
'config.notConfigured': '구성되지 않음 (나중에 구성)',
|
|
233
|
+
'config.yes': '예',
|
|
234
|
+
'config.no': '아니오',
|
|
235
|
+
'config.shards': '샤드',
|
|
236
|
+
'config.sec': '초',
|
|
237
|
+
'config.automatic': '자동',
|
|
238
|
+
// Deploy
|
|
239
|
+
'deploy.prompt': '이 구성으로 설정을 시작하시겠습니까?',
|
|
240
|
+
'deploy.starting': '설정 실행 중...',
|
|
241
|
+
'deploy.building': '패키지 빌드 중...',
|
|
242
|
+
'deploy.deploying': 'Cloudflare에 배포 중...',
|
|
243
|
+
'deploy.success': '설정 완료!',
|
|
244
|
+
'deploy.error': '배포 실패',
|
|
245
|
+
'deploy.skipped': '배포 건너뜀',
|
|
246
|
+
'deploy.component': '{{component}} 배포 중...',
|
|
247
|
+
'deploy.uploadingSecrets': '시크릿 업로드 중...',
|
|
248
|
+
'deploy.secretsUploaded': '시크릿 업로드됨',
|
|
249
|
+
'deploy.runningMigrations': '데이터베이스 마이그레이션 실행 중...',
|
|
250
|
+
'deploy.migrationsComplete': '마이그레이션 완료',
|
|
251
|
+
'deploy.deployingWorker': '{{name}} worker 배포 중...',
|
|
252
|
+
'deploy.workerDeployed': 'Worker 배포됨: {{name}}',
|
|
253
|
+
'deploy.deployingUI': 'UI 배포 중...',
|
|
254
|
+
'deploy.uiDeployed': 'UI 배포됨',
|
|
255
|
+
'deploy.creatingResources': 'Cloudflare 리소스 생성 중...',
|
|
256
|
+
'deploy.resourcesFailed': '리소스 생성 실패',
|
|
257
|
+
'deploy.continueWithout': '프로비저닝 없이 계속하시겠습니까? (리소스를 수동으로 생성해야 합니다)',
|
|
258
|
+
'deploy.emailSecretsSaved': '이메일 시크릿이 {{path}}에 저장됨',
|
|
259
|
+
'deploy.confirmStart': '배포를 시작하시겠습니까?',
|
|
260
|
+
'deploy.confirmDryRun': 'dry-run 모드로 배포를 실행하시겠습니까?',
|
|
261
|
+
'deploy.cancelled': '배포가 취소되었습니다.',
|
|
262
|
+
'deploy.wranglerChanged': '이러한 변경 사항을 어떻게 처리하시겠습니까?',
|
|
263
|
+
'deploy.wranglerKeep': '📝 수동 변경 유지 (현재 상태로 배포)',
|
|
264
|
+
'deploy.wranglerBackup': '💾 백업 후 마스터로 덮어쓰기',
|
|
265
|
+
'deploy.wranglerOverwrite': '⚠️ 마스터로 덮어쓰기 (변경 사항 손실)',
|
|
266
|
+
// Email provider
|
|
267
|
+
'email.title': '이메일 제공자',
|
|
268
|
+
'email.description': '매직 링크 및 인증 코드를 위한 이메일 발송을 구성합니다.',
|
|
269
|
+
'email.prompt': '지금 이메일 제공자를 구성하시겠습니까?',
|
|
270
|
+
'email.resendOption': 'Resend',
|
|
271
|
+
'email.resendDesc': '개발자를 위한 현대적인 이메일 API',
|
|
272
|
+
'email.sesOption': 'AWS SES',
|
|
273
|
+
'email.sesDesc': 'Amazon Simple Email Service',
|
|
274
|
+
'email.smtpOption': 'SMTP',
|
|
275
|
+
'email.smtpDesc': '일반 SMTP 서버',
|
|
276
|
+
'email.skipOption': '없음 (나중에 구성)',
|
|
277
|
+
'email.skipDesc': '이메일 구성 건너뛰기',
|
|
278
|
+
'email.apiKeyPrompt': 'Resend API 키',
|
|
279
|
+
'email.apiKeyHint': 'API 키는 https://resend.com/api-keys 에서 받으세요',
|
|
280
|
+
'email.domainHint': '도메인 설정: https://resend.com/domains',
|
|
281
|
+
'email.apiKeyRequired': 'API 키가 필요합니다',
|
|
282
|
+
'email.apiKeyWarning': '경고: Resend API 키는 일반적으로 "re_"로 시작합니다',
|
|
283
|
+
'email.fromAddressPrompt': '발신 이메일 주소',
|
|
284
|
+
'email.fromAddressValidation': '유효한 이메일 주소를 입력하세요',
|
|
285
|
+
'email.fromNamePrompt': '발신자 표시 이름 (선택 사항)',
|
|
286
|
+
'email.domainVerificationRequired': '자체 도메인에서 발송하려면 도메인 인증이 필요합니다.',
|
|
287
|
+
'email.seeDocumentation': '참조: https://resend.com/docs/dashboard/domains/introduction',
|
|
288
|
+
'email.provider': '제공자:',
|
|
289
|
+
'email.fromAddress': '발신 주소:',
|
|
290
|
+
'email.fromName': '발신자 이름:',
|
|
291
|
+
// SMS provider
|
|
292
|
+
'sms.prompt': 'SMS 제공자를 구성하시겠습니까?',
|
|
293
|
+
'sms.twilioOption': 'Twilio',
|
|
294
|
+
'sms.twilioDesc': 'Twilio를 통한 SMS',
|
|
295
|
+
'sms.skipOption': '없음 (나중에 구성)',
|
|
296
|
+
'sms.skipDesc': 'SMS 구성 건너뛰기',
|
|
297
|
+
'sms.accountSidPrompt': 'Twilio Account SID',
|
|
298
|
+
'sms.authTokenPrompt': 'Twilio Auth Token',
|
|
299
|
+
'sms.fromNumberPrompt': '발신 전화번호',
|
|
300
|
+
// Social providers
|
|
301
|
+
'social.prompt': '소셜 로그인 제공자를 구성하시겠습니까?',
|
|
302
|
+
'social.googleOption': 'Google',
|
|
303
|
+
'social.googleDesc': 'Google로 로그인',
|
|
304
|
+
'social.githubOption': 'GitHub',
|
|
305
|
+
'social.githubDesc': 'GitHub로 로그인',
|
|
306
|
+
'social.appleOption': 'Apple',
|
|
307
|
+
'social.appleDesc': 'Apple로 로그인',
|
|
308
|
+
'social.microsoftOption': 'Microsoft',
|
|
309
|
+
'social.microsoftDesc': 'Microsoft로 로그인',
|
|
310
|
+
'social.skipOption': '없음 (나중에 구성)',
|
|
311
|
+
'social.skipDesc': '소셜 로그인 구성 건너뛰기',
|
|
312
|
+
'social.clientIdPrompt': '클라이언트 ID',
|
|
313
|
+
'social.clientSecretPrompt': '클라이언트 시크릿',
|
|
314
|
+
// Cloudflare API Token
|
|
315
|
+
'cf.apiTokenPrompt': 'Cloudflare API 토큰 입력',
|
|
316
|
+
'cf.apiTokenValidation': '유효한 API 토큰을 입력하세요',
|
|
317
|
+
// OIDC Profile
|
|
318
|
+
'profile.prompt': 'OIDC 프로필 선택',
|
|
319
|
+
'profile.basicOp': 'Basic OP (표준 OIDC 제공자)',
|
|
320
|
+
'profile.basicOpDesc': '표준 OIDC 기능',
|
|
321
|
+
'profile.fapiRw': 'FAPI Read-Write (금융 등급)',
|
|
322
|
+
'profile.fapiRwDesc': 'FAPI 1.0 Read-Write 보안 프로필 준수',
|
|
323
|
+
'profile.fapi2Security': 'FAPI 2.0 Security Profile',
|
|
324
|
+
'profile.fapi2SecurityDesc': 'FAPI 2.0 보안 프로필 준수 (최고 보안)',
|
|
325
|
+
// Tenant configuration
|
|
326
|
+
'tenant.title': '테넌트 모드',
|
|
327
|
+
'tenant.multiTenantPrompt': '멀티 테넌트 모드를 활성화하시겠습니까? (서브도메인 기반 테넌트 격리)',
|
|
328
|
+
'tenant.multiTenantTitle': '멀티 테넌트 URL 구성',
|
|
329
|
+
'tenant.multiTenantNote1': '멀티 테넌트 모드에서는:',
|
|
330
|
+
'tenant.multiTenantNote2': '각 테넌트에 서브도메인이 있습니다: https://{tenant}.{base-domain}',
|
|
331
|
+
'tenant.multiTenantNote3': '기본 도메인은 라우터 Worker를 가리킵니다',
|
|
332
|
+
'tenant.multiTenantNote4': '발급자 URL은 Host 헤더에서 동적으로 생성됩니다',
|
|
333
|
+
'tenant.baseDomainPrompt': '기본 도메인 (예: authrim.com)',
|
|
334
|
+
'tenant.baseDomainRequired': '멀티 테넌트 모드에는 기본 도메인이 필요합니다',
|
|
335
|
+
'tenant.baseDomainValidation': '유효한 도메인을 입력하세요 (예: authrim.com)',
|
|
336
|
+
'tenant.issuerFormat': '발급자 URL 형식: https://{tenant}.{{domain}}',
|
|
337
|
+
'tenant.issuerExample': '예시: https://acme.{{domain}}',
|
|
338
|
+
'tenant.defaultTenantPrompt': '기본 테넌트 이름 (식별자)',
|
|
339
|
+
'tenant.defaultTenantValidation': '소문자 영숫자와 하이픈만 허용됩니다',
|
|
340
|
+
'tenant.displayNamePrompt': '기본 테넌트 표시 이름',
|
|
341
|
+
'tenant.singleTenantTitle': '단일 테넌트 URL 구성',
|
|
342
|
+
'tenant.singleTenantNote1': '단일 테넌트 모드에서는:',
|
|
343
|
+
'tenant.singleTenantNote2': '발급자 URL = API 사용자 정의 도메인 (또는 workers.dev 폴백)',
|
|
344
|
+
'tenant.singleTenantNote3': '모든 클라이언트가 동일한 발급자를 공유합니다',
|
|
345
|
+
'tenant.organizationName': '조직 이름 (표시 이름)',
|
|
346
|
+
'tenant.uiDomainTitle': 'UI 도메인 구성',
|
|
347
|
+
'tenant.customUiDomainPrompt': '사용자 정의 UI 도메인을 구성하시겠습니까?',
|
|
348
|
+
'tenant.loginUiDomain': '로그인 UI 도메인 (예: login.example.com)',
|
|
349
|
+
'tenant.adminUiDomain': '관리자 UI 도메인 (예: admin.example.com)',
|
|
350
|
+
// Optional components
|
|
351
|
+
'components.title': '선택적 컴포넌트',
|
|
352
|
+
'components.note': '참고: 소셜 로그인과 정책 엔진은 표준 컴포넌트입니다',
|
|
353
|
+
'components.samlPrompt': 'SAML 지원을 활성화하시겠습니까?',
|
|
354
|
+
'components.vcPrompt': '검증 가능한 자격 증명(VC)을 활성화하시겠습니까?',
|
|
355
|
+
'components.saml': 'SAML:',
|
|
356
|
+
'components.vc': 'VC:',
|
|
357
|
+
'components.socialLogin': '소셜 로그인:',
|
|
358
|
+
'components.policyEngine': '정책 엔진:',
|
|
359
|
+
// Feature flags
|
|
360
|
+
'features.title': '기능 플래그',
|
|
361
|
+
'features.queuePrompt': 'Cloudflare Queues를 활성화하시겠습니까? (감사 로그용)',
|
|
362
|
+
'features.r2Prompt': 'Cloudflare R2를 활성화하시겠습니까? (아바타용)',
|
|
363
|
+
'features.queue': '큐:',
|
|
364
|
+
'features.r2': 'R2:',
|
|
365
|
+
// OIDC settings
|
|
366
|
+
'oidc.configurePrompt': 'OIDC 설정을 구성하시겠습니까? (토큰 TTL 등)',
|
|
367
|
+
'oidc.title': 'OIDC 설정',
|
|
368
|
+
'oidc.accessTokenTtl': '액세스 토큰 TTL (초)',
|
|
369
|
+
'oidc.refreshTokenTtl': '리프레시 토큰 TTL (초)',
|
|
370
|
+
'oidc.authCodeTtl': '인증 코드 TTL (초)',
|
|
371
|
+
'oidc.pkceRequired': 'PKCE 필수?',
|
|
372
|
+
'oidc.positiveInteger': '양의 정수를 입력하세요',
|
|
373
|
+
// Sharding settings
|
|
374
|
+
'sharding.configurePrompt': '샤딩을 구성하시겠습니까? (고부하 환경용)',
|
|
375
|
+
'sharding.title': '샤딩 설정',
|
|
376
|
+
'sharding.note': '참고: 샤드 수는 2의 거듭제곱을 권장합니다 (8, 16, 32, 64, 128)',
|
|
377
|
+
'sharding.authCodeShards': '인증 코드 샤드 수',
|
|
378
|
+
'sharding.refreshTokenShards': '리프레시 토큰 샤드 수',
|
|
379
|
+
// Infrastructure
|
|
380
|
+
'infra.title': '인프라 (자동 생성)',
|
|
381
|
+
'infra.workersNote': '다음 Workers가 배포됩니다:',
|
|
382
|
+
'infra.router': '라우터:',
|
|
383
|
+
'infra.auth': '인증:',
|
|
384
|
+
'infra.token': '토큰:',
|
|
385
|
+
'infra.management': '관리:',
|
|
386
|
+
'infra.otherWorkers': '... 및 기타 지원 workers',
|
|
387
|
+
'infra.defaultEndpoints': '기본 엔드포인트 (사용자 정의 도메인 없이):',
|
|
388
|
+
'infra.api': 'API:',
|
|
389
|
+
'infra.ui': 'UI:',
|
|
390
|
+
'infra.workersToDeploy': '배포할 Workers: {{workers}}',
|
|
391
|
+
'infra.defaultApi': '기본 API: {{url}}',
|
|
392
|
+
// Completion
|
|
393
|
+
'complete.title': '설정 완료!',
|
|
394
|
+
'complete.summary': 'Authrim OIDC 제공자가 배포되었습니다.',
|
|
395
|
+
'complete.issuerUrl': '발급자 URL: {{url}}',
|
|
396
|
+
'complete.adminUrl': '관리자 패널: {{url}}',
|
|
397
|
+
'complete.uiUrl': '로그인 UI: {{url}}',
|
|
398
|
+
'complete.nextSteps': '다음 단계:',
|
|
399
|
+
'complete.nextStep1': '1. 발급자 URL을 방문하여 배포 확인',
|
|
400
|
+
'complete.nextStep2': '2. 관리자 패널에서 OAuth 클라이언트 구성',
|
|
401
|
+
'complete.nextStep3': '3. 필요시 사용자 정의 도메인 설정',
|
|
402
|
+
'complete.warning': '키를 안전하게 보관하고 백업하세요!',
|
|
403
|
+
'complete.success': '설정이 성공적으로 완료되었습니다!',
|
|
404
|
+
'complete.urls': 'URL:',
|
|
405
|
+
'complete.configLocation': '구성:',
|
|
406
|
+
'complete.keysLocation': '키:',
|
|
407
|
+
// Resource provisioning
|
|
408
|
+
'resource.provisioning': '{{resource}} 프로비저닝 중...',
|
|
409
|
+
'resource.provisioned': '{{resource}} 프로비저닝 성공',
|
|
410
|
+
'resource.failed': '{{resource}} 프로비저닝 실패',
|
|
411
|
+
'resource.skipped': '{{resource}} 건너뜀',
|
|
412
|
+
// Manage environments
|
|
413
|
+
'manage.title': '기존 환경',
|
|
414
|
+
'manage.loading': '로딩 중...',
|
|
415
|
+
'manage.detecting': '환경 감지 중...',
|
|
416
|
+
'manage.detected': '감지된 환경:',
|
|
417
|
+
'manage.noEnvs': 'Authrim 환경을 찾을 수 없습니다.',
|
|
418
|
+
'manage.selectAction': '작업 선택',
|
|
419
|
+
'manage.viewDetails': '세부 정보 보기',
|
|
420
|
+
'manage.viewDetailsDesc': '상세 리소스 정보 표시',
|
|
421
|
+
'manage.deleteEnv': '환경 삭제',
|
|
422
|
+
'manage.deleteEnvDesc': '환경 및 리소스 제거',
|
|
423
|
+
'manage.backToMenu': '메인 메뉴로 돌아가기',
|
|
424
|
+
'manage.backToMenuDesc': '메인 메뉴로 돌아가기',
|
|
425
|
+
'manage.selectEnv': '환경 선택',
|
|
426
|
+
'manage.back': '뒤로',
|
|
427
|
+
'manage.continueManaging': '환경 관리를 계속하시겠습니까?',
|
|
428
|
+
// Load config
|
|
429
|
+
'loadConfig.title': '기존 구성 로드',
|
|
430
|
+
'loadConfig.found': '{{count}}개의 구성을 찾았습니다:',
|
|
431
|
+
'loadConfig.new': '(신규)',
|
|
432
|
+
'loadConfig.legacy': '(레거시)',
|
|
433
|
+
'loadConfig.legacyDetected': '레거시 구조 감지됨',
|
|
434
|
+
'loadConfig.legacyFiles': '레거시 파일:',
|
|
435
|
+
'loadConfig.newBenefits': '새 구조의 장점:',
|
|
436
|
+
'loadConfig.benefit1': '환경 이식성 (zip .authrim/prod/)',
|
|
437
|
+
'loadConfig.benefit2': '환경별 버전 추적',
|
|
438
|
+
'loadConfig.benefit3': '더 깔끔한 프로젝트 구조',
|
|
439
|
+
'loadConfig.migratePrompt': '새 구조로 마이그레이션하시겠습니까?',
|
|
440
|
+
'loadConfig.migrateOption': '새 구조로 마이그레이션 (.authrim/{env}/)',
|
|
441
|
+
'loadConfig.continueOption': '레거시 구조로 계속',
|
|
442
|
+
'loadConfig.migrationComplete': '마이그레이션이 성공적으로 완료되었습니다!',
|
|
443
|
+
'loadConfig.validationPassed': '유효성 검사 통과',
|
|
444
|
+
'loadConfig.validationIssues': '유효성 검사 문제:',
|
|
445
|
+
'loadConfig.newLocation': '새 구성 위치:',
|
|
446
|
+
'loadConfig.migrationFailed': '마이그레이션 실패:',
|
|
447
|
+
'loadConfig.continuingLegacy': '레거시 구조로 계속 진행 중...',
|
|
448
|
+
'loadConfig.loadThis': '이 구성 로드',
|
|
449
|
+
'loadConfig.specifyOther': '다른 파일 지정',
|
|
450
|
+
'loadConfig.noConfigFound': '현재 디렉토리에서 구성을 찾을 수 없습니다.',
|
|
451
|
+
'loadConfig.tip': '팁: 구성 파일을 다음과 같이 지정할 수 있습니다:',
|
|
452
|
+
'loadConfig.specifyPath': '파일 경로 지정',
|
|
453
|
+
'loadConfig.enterPath': '구성 파일 경로 입력',
|
|
454
|
+
'loadConfig.pathRequired': '경로를 입력하세요',
|
|
455
|
+
'loadConfig.fileNotFound': '파일을 찾을 수 없습니다: {{path}}',
|
|
456
|
+
'loadConfig.selectConfig': '로드할 구성 선택',
|
|
457
|
+
// Common
|
|
458
|
+
'common.yes': '예',
|
|
459
|
+
'common.no': '아니오',
|
|
460
|
+
'common.continue': '계속',
|
|
461
|
+
'common.cancel': '취소',
|
|
462
|
+
'common.skip': '건너뛰기',
|
|
463
|
+
'common.back': '뒤로',
|
|
464
|
+
'common.confirm': '확인',
|
|
465
|
+
'common.error': '오류',
|
|
466
|
+
'common.warning': '경고',
|
|
467
|
+
'common.success': '성공',
|
|
468
|
+
'common.info': '정보',
|
|
469
|
+
'common.loading': '로딩 중...',
|
|
470
|
+
'common.saving': '저장 중...',
|
|
471
|
+
'common.processing': '처리 중...',
|
|
472
|
+
'common.done': '완료',
|
|
473
|
+
'common.required': '필수',
|
|
474
|
+
'common.optional': '선택 사항',
|
|
475
|
+
// Errors
|
|
476
|
+
'error.generic': '오류가 발생했습니다',
|
|
477
|
+
'error.network': '네트워크 오류',
|
|
478
|
+
'error.timeout': '요청 시간 초과',
|
|
479
|
+
'error.invalidInput': '잘못된 입력',
|
|
480
|
+
'error.fileNotFound': '파일을 찾을 수 없습니다',
|
|
481
|
+
'error.permissionDenied': '권한이 거부되었습니다',
|
|
482
|
+
'error.configNotFound': '구성을 찾을 수 없습니다',
|
|
483
|
+
'error.configInvalid': '잘못된 구성',
|
|
484
|
+
'error.deployFailed': '배포 실패',
|
|
485
|
+
'error.resourceCreationFailed': '리소스 생성 실패',
|
|
486
|
+
// Validation
|
|
487
|
+
'validation.required': '이 필드는 필수입니다',
|
|
488
|
+
'validation.invalidFormat': '잘못된 형식',
|
|
489
|
+
'validation.tooShort': '너무 짧습니다',
|
|
490
|
+
'validation.tooLong': '너무 깁니다',
|
|
491
|
+
'validation.invalidDomain': '잘못된 도메인',
|
|
492
|
+
'validation.invalidEmail': '잘못된 이메일 주소',
|
|
493
|
+
'validation.invalidUrl': '잘못된 URL',
|
|
494
|
+
// Delete command
|
|
495
|
+
'delete.title': '환경 삭제',
|
|
496
|
+
'delete.prompt': '삭제할 리소스 선택',
|
|
497
|
+
'delete.confirm': '"{{env}}"를 삭제하시겠습니까?',
|
|
498
|
+
'delete.confirmPermanent': '⚠️ "{{env}}"의 모든 리소스가 영구적으로 삭제됩니다. 계속하시겠습니까?',
|
|
499
|
+
'delete.confirmWarning': '이 작업은 취소할 수 없습니다!',
|
|
500
|
+
'delete.deleting': '{{resource}} 삭제 중...',
|
|
501
|
+
'delete.deleted': '{{resource}} 삭제됨',
|
|
502
|
+
'delete.error': '{{resource}} 삭제 실패',
|
|
503
|
+
'delete.cancelled': '삭제가 취소되었습니다',
|
|
504
|
+
'delete.noEnvFound': '환경을 찾을 수 없습니다',
|
|
505
|
+
'delete.selectEnv': '삭제할 환경 선택',
|
|
506
|
+
'delete.workers': 'Workers',
|
|
507
|
+
'delete.databases': 'D1 데이터베이스',
|
|
508
|
+
'delete.kvNamespaces': 'KV 네임스페이스',
|
|
509
|
+
'delete.queues': '큐',
|
|
510
|
+
'delete.r2Buckets': 'R2 버킷',
|
|
511
|
+
// Info command
|
|
512
|
+
'info.title': '환경 정보',
|
|
513
|
+
'info.loading': '환경 정보 로딩 중...',
|
|
514
|
+
'info.noResources': '리소스를 찾을 수 없습니다',
|
|
515
|
+
'info.environment': '환경',
|
|
516
|
+
'info.issuer': '발급자',
|
|
517
|
+
'info.workers': 'Workers',
|
|
518
|
+
'info.databases': '데이터베이스',
|
|
519
|
+
'info.kvNamespaces': 'KV 네임스페이스',
|
|
520
|
+
'info.queues': '큐',
|
|
521
|
+
'info.r2Buckets': 'R2 버킷',
|
|
522
|
+
'info.status': '상태',
|
|
523
|
+
'info.deployed': '배포됨',
|
|
524
|
+
'info.notDeployed': '배포되지 않음',
|
|
525
|
+
// Config command
|
|
526
|
+
'configCmd.title': '구성',
|
|
527
|
+
'configCmd.showing': '구성 표시',
|
|
528
|
+
'configCmd.validating': '구성 유효성 검사 중...',
|
|
529
|
+
'configCmd.valid': '구성이 유효합니다',
|
|
530
|
+
'configCmd.invalid': '구성이 유효하지 않습니다',
|
|
531
|
+
'configCmd.notFound': '구성을 찾을 수 없습니다',
|
|
532
|
+
'configCmd.error': '구성 읽기 오류',
|
|
533
|
+
// Migrate command
|
|
534
|
+
'migrate.title': '새 구조로 마이그레이션',
|
|
535
|
+
'migrate.checking': '마이그레이션 상태 확인 중...',
|
|
536
|
+
'migrate.noLegacyFound': '레거시 구조를 찾을 수 없습니다',
|
|
537
|
+
'migrate.legacyFound': '레거시 구조 감지됨',
|
|
538
|
+
'migrate.prompt': '새 구조로 마이그레이션하시겠습니까?',
|
|
539
|
+
'migrate.migrating': '마이그레이션 중...',
|
|
540
|
+
'migrate.success': '마이그레이션 성공',
|
|
541
|
+
'migrate.cancelled': '마이그레이션이 취소되었습니다.',
|
|
542
|
+
'migrate.error': '마이그레이션 실패',
|
|
543
|
+
'migrate.dryRun': 'Dry run - 변경 사항 없음',
|
|
544
|
+
'migrate.backup': '백업 생성 중...',
|
|
545
|
+
'migrate.backupCreated': '백업이 {{path}}에 생성됨',
|
|
546
|
+
// Manage command
|
|
547
|
+
'manage.commandTitle': 'Authrim 환경 관리자',
|
|
548
|
+
// Web UI specific
|
|
549
|
+
'web.title': 'Authrim 설정',
|
|
550
|
+
'web.subtitle': 'Cloudflare Workers 기반 OIDC 제공자',
|
|
551
|
+
'web.loading': '로딩 중...',
|
|
552
|
+
'web.error': '오류가 발생했습니다',
|
|
553
|
+
'web.retry': '재시도',
|
|
554
|
+
'web.languageSelector': '언어',
|
|
555
|
+
'web.darkMode': '다크',
|
|
556
|
+
'web.lightMode': '라이트',
|
|
557
|
+
'web.systemMode': '시스템',
|
|
558
|
+
// Web UI Prerequisites
|
|
559
|
+
'web.prereq.title': '사전 요구사항',
|
|
560
|
+
'web.prereq.checking': '확인 중...',
|
|
561
|
+
'web.prereq.checkingRequirements': '시스템 요구사항 확인 중...',
|
|
562
|
+
'web.prereq.ready': '준비됨',
|
|
563
|
+
'web.prereq.wranglerInstalled': 'Wrangler 설치됨',
|
|
564
|
+
'web.prereq.loggedInAs': '{{email}}로 로그인됨',
|
|
565
|
+
// Web UI Top Menu
|
|
566
|
+
'web.menu.title': '시작하기',
|
|
567
|
+
'web.menu.subtitle': '계속하려면 옵션을 선택하세요:',
|
|
568
|
+
'web.menu.newSetup': '새 설정',
|
|
569
|
+
'web.menu.newSetupDesc': '새 Authrim 배포를 처음부터 생성',
|
|
570
|
+
'web.menu.loadConfig': '구성 로드',
|
|
571
|
+
'web.menu.loadConfigDesc': '기존 구성을 사용하여 재개 또는 재배포',
|
|
572
|
+
'web.menu.manageEnv': '환경 관리',
|
|
573
|
+
'web.menu.manageEnvDesc': '기존 환경 조회, 검사 또는 삭제',
|
|
574
|
+
// Web UI Setup Mode
|
|
575
|
+
'web.mode.title': '설정 모드',
|
|
576
|
+
'web.mode.subtitle': 'Authrim 설정 방법을 선택하세요:',
|
|
577
|
+
'web.mode.quick': '빠른 설정',
|
|
578
|
+
'web.mode.quickDesc': '약 5분 안에 시작',
|
|
579
|
+
'web.mode.quickEnv': '환경 선택',
|
|
580
|
+
'web.mode.quickDomain': '선택적 사용자 정의 도메인',
|
|
581
|
+
'web.mode.quickDefault': '기본 컴포넌트',
|
|
582
|
+
'web.mode.recommended': '권장',
|
|
583
|
+
'web.mode.custom': '사용자 정의 설정',
|
|
584
|
+
'web.mode.customDesc': '구성에 대한 완전한 제어',
|
|
585
|
+
'web.mode.customComp': '컴포넌트 선택',
|
|
586
|
+
'web.mode.customUrl': 'URL 구성',
|
|
587
|
+
'web.mode.customAdvanced': '고급 설정',
|
|
588
|
+
// Web UI Load Config
|
|
589
|
+
'web.loadConfig.title': '구성 로드',
|
|
590
|
+
'web.loadConfig.subtitle': 'authrim-config.json 파일을 선택하세요:',
|
|
591
|
+
'web.loadConfig.chooseFile': '파일 선택',
|
|
592
|
+
'web.loadConfig.preview': '구성 미리보기',
|
|
593
|
+
'web.loadConfig.validationFailed': '구성 유효성 검사 실패',
|
|
594
|
+
'web.loadConfig.valid': '구성이 유효합니다',
|
|
595
|
+
'web.loadConfig.loadContinue': '로드 및 계속',
|
|
596
|
+
// Web UI Configuration
|
|
597
|
+
'web.config.title': '구성',
|
|
598
|
+
'web.config.components': '컴포넌트',
|
|
599
|
+
'web.config.apiRequired': 'API (필수)',
|
|
600
|
+
'web.config.apiDesc': 'OIDC 제공자 엔드포인트: authorize, token, userinfo, discovery, management API.',
|
|
601
|
+
'web.config.saml': 'SAML IdP',
|
|
602
|
+
'web.config.deviceFlow': 'Device Flow / CIBA',
|
|
603
|
+
'web.config.vcSdJwt': 'VC SD-JWT',
|
|
604
|
+
'web.config.loginUi': '로그인 UI',
|
|
605
|
+
'web.config.loginUiDesc': 'Cloudflare Pages에 배포되는 사전 구축된 인증 UI.',
|
|
606
|
+
'web.config.adminUi': '관리자 UI',
|
|
607
|
+
'web.config.adminUiDesc': '사용자, 클라이언트 및 설정을 위한 관리 대시보드.',
|
|
608
|
+
// Web UI URLs
|
|
609
|
+
'web.url.title': 'URL 구성',
|
|
610
|
+
'web.url.apiDomain': 'API 도메인',
|
|
611
|
+
'web.url.apiDomainHint': 'workers.dev 서브도메인을 사용하려면 비워두세요',
|
|
612
|
+
'web.url.loginDomain': '로그인 UI 도메인',
|
|
613
|
+
'web.url.loginDomainHint': 'pages.dev 서브도메인을 사용하려면 비워두세요',
|
|
614
|
+
'web.url.adminDomain': '관리자 UI 도메인',
|
|
615
|
+
'web.url.adminDomainHint': 'pages.dev 서브도메인을 사용하려면 비워두세요',
|
|
616
|
+
// Web UI Database
|
|
617
|
+
'web.db.title': '데이터베이스 구성',
|
|
618
|
+
'web.db.coreTitle': 'Core 데이터베이스',
|
|
619
|
+
'web.db.coreSubtitle': '(비PII)',
|
|
620
|
+
'web.db.coreDesc': '클라이언트, 인증 코드, 토큰, 세션을 저장합니다. 전역 복제 가능.',
|
|
621
|
+
'web.db.piiTitle': 'PII 데이터베이스',
|
|
622
|
+
'web.db.piiSubtitle': '(개인 식별 정보)',
|
|
623
|
+
'web.db.piiDesc': '사용자 프로필, 자격 증명, PII를 저장합니다. 컴플라이언스를 위해 단일 관할권에 있어야 합니다.',
|
|
624
|
+
'web.db.name': '이름',
|
|
625
|
+
'web.db.region': '지역',
|
|
626
|
+
'web.db.regionAuto': '자동 (가장 가까운 지역)',
|
|
627
|
+
// Web UI Email
|
|
628
|
+
'web.email.title': '이메일 제공자',
|
|
629
|
+
'web.email.subtitle': '비밀번호 재설정 및 인증 이메일을 위한 이메일 서비스 선택:',
|
|
630
|
+
'web.email.none': '없음',
|
|
631
|
+
'web.email.noneDesc': '이메일 기능 비활성화',
|
|
632
|
+
'web.email.resend': 'Resend',
|
|
633
|
+
'web.email.resendDesc': '개발자 친화적인 이메일 API',
|
|
634
|
+
'web.email.sendgrid': 'SendGrid',
|
|
635
|
+
'web.email.sendgridDesc': '확장 가능한 이메일 전송',
|
|
636
|
+
'web.email.ses': 'Amazon SES',
|
|
637
|
+
'web.email.sesDesc': 'AWS Simple Email Service',
|
|
638
|
+
'web.email.resendConfig': 'Resend 구성',
|
|
639
|
+
'web.email.apiKey': 'API 키',
|
|
640
|
+
'web.email.apiKeyPlaceholder': 're_xxxxxxxx',
|
|
641
|
+
'web.email.fromAddress': '발신 주소',
|
|
642
|
+
'web.email.fromAddressPlaceholder': 'noreply@yourdomain.com',
|
|
643
|
+
// Web UI Provision
|
|
644
|
+
'web.provision.title': 'Cloudflare 리소스 생성',
|
|
645
|
+
'web.provision.ready': '프로비저닝 준비됨',
|
|
646
|
+
'web.provision.desc': '다음 리소스가 Cloudflare 계정에 생성됩니다:',
|
|
647
|
+
'web.provision.createResources': '리소스 생성',
|
|
648
|
+
'web.provision.saveConfig': '구성 저장',
|
|
649
|
+
'web.provision.continueDeploy': '배포로 계속 →',
|
|
650
|
+
// Web UI Deploy
|
|
651
|
+
'web.deploy.title': '배포',
|
|
652
|
+
'web.deploy.desc': 'Cloudflare에 workers와 UI 배포:',
|
|
653
|
+
'web.deploy.startDeploy': '배포 시작',
|
|
654
|
+
'web.deploy.deploying': '배포 중...',
|
|
655
|
+
// Web UI Complete
|
|
656
|
+
'web.complete.title': '설정 완료!',
|
|
657
|
+
'web.complete.desc': 'Authrim 배포가 준비되었습니다.',
|
|
658
|
+
'web.complete.issuerUrl': '발급자 URL',
|
|
659
|
+
'web.complete.loginUrl': '로그인 URL',
|
|
660
|
+
'web.complete.adminUrl': '관리자 URL',
|
|
661
|
+
'web.complete.nextSteps': '다음 단계:',
|
|
662
|
+
'web.complete.step1': '위 버튼을 사용하여 초기 관리자 설정 완료',
|
|
663
|
+
'web.complete.step2': '관리자 UI에서 첫 번째 OAuth 클라이언트 구성',
|
|
664
|
+
'web.complete.step3': '애플리케이션과 통합',
|
|
665
|
+
'web.complete.saveConfig': '구성 저장',
|
|
666
|
+
'web.complete.backToMain': '메인으로 돌아가기',
|
|
667
|
+
'web.complete.canClose': '설정이 완료되었습니다. 이 창을 안전하게 닫을 수 있습니다.',
|
|
668
|
+
// Web UI Environment Management
|
|
669
|
+
'web.env.title': '환경',
|
|
670
|
+
'web.env.loading': '환경 로딩 중...',
|
|
671
|
+
'web.env.noEnvFound': '환경을 찾을 수 없습니다',
|
|
672
|
+
'web.env.refresh': '새로고침',
|
|
673
|
+
'web.env.adminSetup': '관리자 초기 설정',
|
|
674
|
+
'web.env.adminSetupDesc': '관리자 계정 생성하려면 클릭',
|
|
675
|
+
'web.env.openSetup': '설정 열기',
|
|
676
|
+
'web.env.copyUrl': '복사',
|
|
677
|
+
'web.env.deleteTitle': '환경 삭제',
|
|
678
|
+
'web.env.deleteWarning': '이 작업은 취소할 수 없습니다. 다음 리소스가 영구적으로 삭제됩니다:',
|
|
679
|
+
'web.env.confirmDelete': '선택 항목 삭제',
|
|
680
|
+
'web.env.cancel': '취소',
|
|
681
|
+
// Web UI Common buttons
|
|
682
|
+
'web.btn.back': '뒤로',
|
|
683
|
+
'web.btn.continue': '계속',
|
|
684
|
+
'web.btn.cancel': '취소',
|
|
685
|
+
'web.btn.save': '저장',
|
|
686
|
+
'web.btn.skip': '건너뛰기',
|
|
687
|
+
// Web UI Save Modal
|
|
688
|
+
'web.modal.saveTitle': '구성을 저장하시겠습니까?',
|
|
689
|
+
'web.modal.saveDesc': '나중에 사용하기 위해 구성을 로컬 컴퓨터에 저장합니다.',
|
|
690
|
+
'web.modal.skipSave': '건너뛰기',
|
|
691
|
+
'web.modal.saveConfig': '구성 저장',
|
|
692
|
+
// Web UI steps
|
|
693
|
+
'web.step.environment': '환경',
|
|
694
|
+
'web.step.region': '지역',
|
|
695
|
+
'web.step.domain': '도메인',
|
|
696
|
+
'web.step.email': '이메일',
|
|
697
|
+
'web.step.sms': 'SMS',
|
|
698
|
+
'web.step.social': '소셜',
|
|
699
|
+
'web.step.advanced': '고급',
|
|
700
|
+
'web.step.review': '검토',
|
|
701
|
+
'web.step.deploy': '배포',
|
|
702
|
+
// Web UI forms
|
|
703
|
+
'web.form.submit': '제출',
|
|
704
|
+
'web.form.next': '다음',
|
|
705
|
+
'web.form.previous': '이전',
|
|
706
|
+
'web.form.reset': '재설정',
|
|
707
|
+
'web.form.validation': '위의 오류를 수정하세요',
|
|
708
|
+
// Web UI progress
|
|
709
|
+
'web.progress.preparing': '배포 준비 중...',
|
|
710
|
+
'web.progress.creatingResources': 'Cloudflare 리소스 생성 중...',
|
|
711
|
+
'web.progress.generatingKeys': '암호화 키 생성 중...',
|
|
712
|
+
'web.progress.configuringWorkers': 'workers 구성 중...',
|
|
713
|
+
'web.progress.deployingWorkers': 'workers 배포 중...',
|
|
714
|
+
'web.progress.deployingUI': 'UI 배포 중...',
|
|
715
|
+
'web.progress.runningMigrations': '데이터베이스 마이그레이션 실행 중...',
|
|
716
|
+
'web.progress.complete': '배포 완료!',
|
|
717
|
+
'web.progress.failed': '배포 실패',
|
|
718
|
+
// Web UI Form Labels
|
|
719
|
+
'web.form.envName': '환경 이름',
|
|
720
|
+
'web.form.envNamePlaceholder': '예: prod, staging, dev',
|
|
721
|
+
'web.form.envNameHint': '소문자, 숫자 및 하이픈만 허용',
|
|
722
|
+
'web.form.baseDomain': '기본 도메인 (API 도메인)',
|
|
723
|
+
'web.form.baseDomainPlaceholder': 'oidc.example.com',
|
|
724
|
+
'web.form.baseDomainHint': 'Authrim용 사용자 정의 도메인. workers.dev를 사용하려면 비워두세요',
|
|
725
|
+
'web.form.nakedDomain': 'URL에서 테넌트 이름 제외',
|
|
726
|
+
'web.form.nakedDomainHint': 'https://{tenant}.example.com 대신 https://example.com 사용',
|
|
727
|
+
'web.form.nakedDomainWarning': '테넌트 서브도메인에는 사용자 정의 도메인이 필요합니다. Workers.dev는 와일드카드 서브도메인을 지원하지 않습니다.',
|
|
728
|
+
'web.form.tenantId': '기본 테넌트 ID',
|
|
729
|
+
'web.form.tenantIdPlaceholder': 'default',
|
|
730
|
+
'web.form.tenantIdHint': '첫 번째 테넌트 식별자 (소문자, 공백 없음)',
|
|
731
|
+
'web.form.tenantIdWorkerNote': '(테넌트 ID는 내부적으로 사용됩니다. URL 서브도메인에는 사용자 정의 도메인이 필요합니다.)',
|
|
732
|
+
'web.form.tenantDisplay': '테넌트 표시 이름',
|
|
733
|
+
'web.form.tenantDisplayPlaceholder': '내 회사',
|
|
734
|
+
'web.form.tenantDisplayHint': '로그인 페이지와 동의 화면에 표시되는 이름',
|
|
735
|
+
'web.form.loginDomainPlaceholder': 'login.example.com',
|
|
736
|
+
'web.form.adminDomainPlaceholder': 'admin.example.com',
|
|
737
|
+
// Web UI Section Headers
|
|
738
|
+
'web.section.apiDomain': 'API / 발급자 도메인',
|
|
739
|
+
'web.section.uiDomains': 'UI 도메인 (선택 사항)',
|
|
740
|
+
'web.section.uiDomainsHint': '로그인/관리자 UI용 사용자 정의 도메인. 각각 독립적으로 설정할 수 있습니다. Cloudflare Pages 기본값을 사용하려면 비워두세요.',
|
|
741
|
+
'web.section.corsHint': 'CORS: 로그인/관리자 UI에서 API로의 교차 출처 요청은 자동으로 허용됩니다.',
|
|
742
|
+
'web.section.configPreview': '구성 미리보기',
|
|
743
|
+
'web.section.resourceNames': '리소스 이름',
|
|
744
|
+
// Web UI Preview Labels
|
|
745
|
+
'web.preview.components': '컴포넌트:',
|
|
746
|
+
'web.preview.workers': 'Workers:',
|
|
747
|
+
'web.preview.issuerUrl': '발급자 URL:',
|
|
748
|
+
'web.preview.loginUi': '로그인 UI:',
|
|
749
|
+
'web.preview.adminUi': '관리자 UI:',
|
|
750
|
+
// Web UI Component Labels
|
|
751
|
+
'web.comp.loginUi': '로그인 UI',
|
|
752
|
+
'web.comp.loginUiDesc': '로그인, 가입, 동의 및 계정 관리 페이지.',
|
|
753
|
+
'web.comp.adminUi': '관리자 UI',
|
|
754
|
+
'web.comp.adminUiDesc': '테넌트, 클라이언트, 사용자 및 시스템 설정을 관리하는 관리 대시보드.',
|
|
755
|
+
// Web UI Domain Row Labels
|
|
756
|
+
'web.domain.loginUi': '로그인 UI',
|
|
757
|
+
'web.domain.adminUi': '관리자 UI',
|
|
758
|
+
// Web UI Database Section
|
|
759
|
+
'web.db.introDesc': 'Authrim은 개인 데이터를 애플리케이션 데이터에서 분리하기 위해 두 개의 별도 D1 데이터베이스를 사용합니다.',
|
|
760
|
+
'web.db.regionNote': '참고: 데이터베이스 지역은 생성 후 변경할 수 없습니다.',
|
|
761
|
+
'web.db.coreNonPii': '비PII',
|
|
762
|
+
'web.db.coreDataDesc': '다음을 포함한 비개인 애플리케이션 데이터 저장:',
|
|
763
|
+
'web.db.coreData1': 'OAuth 클라이언트 및 구성',
|
|
764
|
+
'web.db.coreData2': '인증 코드 및 액세스 토큰',
|
|
765
|
+
'web.db.coreData3': '사용자 세션 및 로그인 상태',
|
|
766
|
+
'web.db.coreData4': '테넌트 설정 및 구성',
|
|
767
|
+
'web.db.coreData5': '감사 로그 및 보안 이벤트',
|
|
768
|
+
'web.db.coreHint': '이 데이터베이스는 모든 인증 흐름을 처리하며 주요 사용자 기반에 가깝게 배치되어야 합니다.',
|
|
769
|
+
'web.db.piiLabel': '개인 식별 정보',
|
|
770
|
+
'web.db.piiDataDesc': '다음을 포함한 개인 사용자 데이터 저장:',
|
|
771
|
+
'web.db.piiData1': '사용자 프로필 (이름, 이메일, 전화번호)',
|
|
772
|
+
'web.db.piiData2': 'Passkey/WebAuthn 자격 증명',
|
|
773
|
+
'web.db.piiData3': '사용자 환경설정 및 설정',
|
|
774
|
+
'web.db.piiData4': '사용자 정의 사용자 속성',
|
|
775
|
+
'web.db.piiHint': '이 데이터베이스에는 개인 데이터가 포함됩니다. 데이터 보호 요구사항을 준수하는 지역에 배치하는 것을 고려하세요.',
|
|
776
|
+
'web.db.locationHints': '위치 힌트',
|
|
777
|
+
'web.db.jurisdiction': '관할권 (컴플라이언스)',
|
|
778
|
+
'web.db.autoNearest': '자동 (가장 가까운 지역)',
|
|
779
|
+
'web.db.northAmericaWest': '북미 (서부)',
|
|
780
|
+
'web.db.northAmericaEast': '북미 (동부)',
|
|
781
|
+
'web.db.europeWest': '유럽 (서부)',
|
|
782
|
+
'web.db.europeEast': '유럽 (동부)',
|
|
783
|
+
'web.db.asiaPacific': '아시아 태평양',
|
|
784
|
+
'web.db.oceania': '오세아니아',
|
|
785
|
+
'web.db.euJurisdiction': 'EU 관할권 (GDPR 준수)',
|
|
786
|
+
// Web UI Email Section
|
|
787
|
+
'web.email.introDesc': '메일 OTP 및 이메일 주소 인증 발송에 사용됩니다. 원하시면 나중에 구성할 수 있습니다.',
|
|
788
|
+
'web.email.configureLater': '나중에 구성',
|
|
789
|
+
'web.email.configureLaterHint': '지금은 건너뛰고 나중에 구성합니다.',
|
|
790
|
+
'web.email.configureResend': 'Resend 구성',
|
|
791
|
+
'web.email.configureResendHint': 'Resend로 이메일 발송 설정 (프로덕션 권장).',
|
|
792
|
+
'web.email.resendSetup': 'Resend 구성',
|
|
793
|
+
'web.email.beforeBegin': '시작하기 전에:',
|
|
794
|
+
'web.email.step1': '다음에서 Resend 계정 생성',
|
|
795
|
+
'web.email.step2': '다음에서 도메인 추가 및 인증',
|
|
796
|
+
'web.email.step3': '다음에서 API 키 생성',
|
|
797
|
+
'web.email.resendApiKey': 'Resend API 키',
|
|
798
|
+
'web.email.resendApiKeyHint': 'API 키는 "re_"로 시작합니다',
|
|
799
|
+
'web.email.fromEmailAddress': '발신 이메일 주소',
|
|
800
|
+
'web.email.fromEmailHint': 'Resend 계정에서 인증된 도메인이어야 합니다',
|
|
801
|
+
'web.email.fromDisplayName': '발신자 표시 이름 (선택 사항)',
|
|
802
|
+
'web.email.fromDisplayHint': '이메일 클라이언트에서 발신자 이름으로 표시됩니다',
|
|
803
|
+
'web.email.domainVerificationTitle': '도메인 인증 필요',
|
|
804
|
+
'web.email.domainVerificationDesc': '도메인이 인증되기 전에는 onboarding@resend.dev (테스트용)에서만 이메일을 보낼 수 있습니다.',
|
|
805
|
+
'web.email.learnMore': '도메인 인증에 대해 자세히 알아보기 →',
|
|
806
|
+
// Web UI Provision Section
|
|
807
|
+
'web.provision.resourcePreview': '리소스 이름:',
|
|
808
|
+
'web.provision.d1Databases': 'D1 데이터베이스:',
|
|
809
|
+
'web.provision.kvNamespaces': 'KV 네임스페이스:',
|
|
810
|
+
'web.provision.cryptoKeys': '암호화 키:',
|
|
811
|
+
'web.provision.initializing': '초기화 중...',
|
|
812
|
+
'web.provision.showLog': '상세 로그 보기',
|
|
813
|
+
'web.provision.hideLog': '상세 로그 숨기기',
|
|
814
|
+
'web.provision.keysSavedTo': '키 저장 위치:',
|
|
815
|
+
'web.provision.keepSafe': '이 디렉토리를 안전하게 보관하고 .gitignore에 추가하세요',
|
|
816
|
+
// Web UI Deploy Section
|
|
817
|
+
'web.deploy.readyText': 'Cloudflare에 Authrim workers를 배포할 준비가 되었습니다.',
|
|
818
|
+
// Web UI Environment List
|
|
819
|
+
'web.env.detectedDesc': 'Cloudflare 계정에서 감지된 Authrim 환경:',
|
|
820
|
+
'web.env.noEnvsDetected': '이 Cloudflare 계정에서 Authrim 환경이 감지되지 않았습니다.',
|
|
821
|
+
'web.env.backToList': '← 목록으로 돌아가기',
|
|
822
|
+
'web.env.deleteEnv': '환경 삭제...',
|
|
823
|
+
// Web UI Environment Detail
|
|
824
|
+
'web.envDetail.title': '환경 세부 정보',
|
|
825
|
+
'web.envDetail.adminNotConfigured': '관리자 계정 미구성',
|
|
826
|
+
'web.envDetail.adminNotConfiguredDesc': '이 환경에 초기 관리자가 설정되지 않았습니다.',
|
|
827
|
+
'web.envDetail.startPasskey': 'Passkey로 관리자 계정 설정 시작',
|
|
828
|
+
'web.envDetail.setupUrlGenerated': '설정 URL 생성됨:',
|
|
829
|
+
'web.envDetail.copyBtn': '복사',
|
|
830
|
+
'web.envDetail.openSetup': '설정 열기',
|
|
831
|
+
'web.envDetail.urlValidFor': '이 URL은 1시간 동안 유효합니다. 브라우저에서 열어 첫 번째 관리자 계정을 등록하세요.',
|
|
832
|
+
'web.envDetail.workers': 'Workers',
|
|
833
|
+
'web.envDetail.d1Databases': 'D1 데이터베이스',
|
|
834
|
+
'web.envDetail.kvNamespaces': 'KV 네임스페이스',
|
|
835
|
+
'web.envDetail.queues': '큐',
|
|
836
|
+
'web.envDetail.r2Buckets': 'R2 버킷',
|
|
837
|
+
'web.envDetail.pagesProjects': 'Pages 프로젝트',
|
|
838
|
+
// Web UI Delete Section
|
|
839
|
+
'web.delete.title': '환경 삭제',
|
|
840
|
+
'web.delete.warning': '이 작업은 되돌릴 수 없습니다. 선택한 모든 리소스가 영구적으로 삭제됩니다.',
|
|
841
|
+
'web.delete.environment': '환경:',
|
|
842
|
+
'web.delete.selectResources': '삭제할 리소스 선택:',
|
|
843
|
+
'web.delete.workers': 'Workers',
|
|
844
|
+
'web.delete.d1Databases': 'D1 데이터베이스',
|
|
845
|
+
'web.delete.kvNamespaces': 'KV 네임스페이스',
|
|
846
|
+
'web.delete.queues': '큐',
|
|
847
|
+
'web.delete.r2Buckets': 'R2 버킷',
|
|
848
|
+
'web.delete.pagesProjects': 'Pages 프로젝트',
|
|
849
|
+
'web.delete.cancelBtn': '취소',
|
|
850
|
+
'web.delete.confirmBtn': '선택 항목 삭제',
|
|
851
|
+
// Web UI Save Modal
|
|
852
|
+
'web.modal.saveQuestion': '진행하기 전에 구성을 파일로 저장하시겠습니까?',
|
|
853
|
+
'web.modal.saveReason': '이렇게 하면 나중에 설정을 재개하거나 다른 배포에 동일한 설정을 사용할 수 있습니다.',
|
|
854
|
+
'web.modal.skipBtn': '건너뛰기',
|
|
855
|
+
'web.modal.saveBtn': '구성 저장',
|
|
856
|
+
// Web UI Error Messages
|
|
857
|
+
'web.error.wranglerNotInstalled': 'Wrangler가 설치되지 않았습니다',
|
|
858
|
+
'web.error.pleaseInstall': '먼저 wrangler를 설치하세요:',
|
|
859
|
+
'web.error.notLoggedIn': 'Cloudflare에 로그인되지 않았습니다',
|
|
860
|
+
'web.error.runCommand': '터미널에서 다음 명령을 실행하세요:',
|
|
861
|
+
'web.error.thenRefresh': '그런 다음 이 페이지를 새로고침하세요.',
|
|
862
|
+
'web.error.checkingPrereq': '사전 요구사항 확인 오류:',
|
|
863
|
+
'web.error.invalidJson': '잘못된 JSON:',
|
|
864
|
+
'web.error.validationFailed': '유효성 검사 요청 실패:',
|
|
865
|
+
// Web UI Status Messages
|
|
866
|
+
'web.status.checking': '확인 중...',
|
|
867
|
+
'web.status.running': '실행 중...',
|
|
868
|
+
'web.status.deploying': '배포 중...',
|
|
869
|
+
'web.status.complete': '완료',
|
|
870
|
+
'web.status.error': '오류',
|
|
871
|
+
'web.status.scanning': '스캔 중...',
|
|
872
|
+
'web.status.saving': '저장 중...',
|
|
873
|
+
'web.status.notDeployed': '(배포되지 않음)',
|
|
874
|
+
'web.status.startingDeploy': '배포 시작 중...',
|
|
875
|
+
'web.status.none': '없음',
|
|
876
|
+
'web.status.loading': '로딩 중...',
|
|
877
|
+
'web.status.failedToLoad': '로드 실패',
|
|
878
|
+
'web.status.adminNotConfigured': '관리자 미구성',
|
|
879
|
+
'web.status.initializing': '초기화 중...',
|
|
880
|
+
'web.status.found': '{{count}}개 발견됨',
|
|
881
|
+
// Web UI Button Labels (dynamic)
|
|
882
|
+
'web.btn.reprovision': '재프로비저닝 (삭제 및 생성)',
|
|
883
|
+
'web.btn.createResources': '리소스 생성',
|
|
884
|
+
'web.btn.saveConfiguration': '구성 저장',
|
|
885
|
+
// Quick setup specific
|
|
886
|
+
'quickSetup.title': '빠른 설정',
|
|
887
|
+
// Custom setup specific
|
|
888
|
+
'customSetup.title': '사용자 정의 설정',
|
|
889
|
+
'customSetup.cancelled': '설정이 취소되었습니다.',
|
|
890
|
+
// Web UI starting
|
|
891
|
+
'webUi.starting': 'Web UI 시작 중...',
|
|
892
|
+
};
|
|
893
|
+
export default ko;
|
|
894
|
+
//# sourceMappingURL=ko.js.map
|