forked from tashfeenahmed/freellmapi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathko.json
More file actions
844 lines (844 loc) · 44.5 KB
/
Copy pathko.json
File metadata and controls
844 lines (844 loc) · 44.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
{
"nav": {
"models": "모델",
"playground": "놀이터",
"keys": "열쇠",
"analytics": "분석",
"premium": "프리미엄",
"upgrade": "업그레이드",
"settings": "설정",
"signOut": "로그아웃",
"openMenu": "탐색 메뉴 열기",
"switchLight": "밝은 테마로 전환",
"switchDark": "어두운 테마로 전환",
"switchToChinese": "중국어로 전환",
"switchToEnglish": "영어로 전환",
"modelsMenu": "모델 유형 찾아보기",
"agents": "에이전트"
},
"auth": {
"createYourAccount": "계정 만들기",
"signIn": "로그인",
"email": "이메일",
"password": "비밀번호",
"emailPlaceholder": "you@example.com",
"passwordPlaceholderSetup": "최소 8자",
"passwordPlaceholderLogin": "당신의 비밀번호",
"setupDescription": "이 대시보드를 보호할 이메일과 비밀번호를 설정하세요.",
"loginDescription": "키, 라우팅, 분석을 관리하려면 로그인하세요.",
"createAccount": "계정 만들기",
"creating": "만드는 중…",
"signingIn": "로그인 중…",
"loading": "로드 중…",
"newPasswordAutoComplete": "새 비밀번호",
"currentPasswordAutoComplete": "현재 비밀번호",
"serverUnreachableBefore": "서버에 연결할 수 없습니다. Make sure the backend is running (",
"serverUnreachableAfter": ").",
"setupCode": "설정 코드",
"setupCodePlaceholder": "code from the server logs",
"setupCodeHint": "다른 장치에서 설정하려면 시작 시 서버 로그에 인쇄된 일회성 코드가 필요합니다.",
"changePassword": "비밀번호 변경",
"changeEmail": "이메일 변경",
"forgotPassword": "비밀번호를 잊으셨나요?",
"currentPassword": "현재 비밀번호",
"newPassword": "새 비밀번호",
"newEmail": "새 이메일",
"resetCode": "재설정 코드",
"resetCodePlaceholder": "서버 로그의 코드",
"resetCodeHint": "비밀번호 재설정 코드는 서버 로그에서 확인하세요.",
"forgotPasswordDescription": "아래를 클릭해 재설정 코드를 생성하세요. 코드는 서버 로그에 표시되며, 여기에 입력하면 새 비밀번호를 설정할 수 있습니다.",
"requestResetCode": "재설정 코드 보내기",
"requestingResetCode": "보내는 중…",
"resetPassword": "비밀번호 재설정",
"resettingPassword": "재설정 중…",
"changingPassword": "변경 중…",
"changingEmail": "변경 중…",
"backToLogin": "로그인으로 돌아가기",
"passwordChanged": "비밀번호가 변경되었습니다.",
"emailChanged": "이메일이 변경되었습니다.",
"passwordReset": "비밀번호가 재설정되었습니다. 로그인해 주세요."
},
"common": {
"save": "저장",
"saving": "저장 중…",
"cancel": "취소",
"discard": "폐기",
"delete": "삭제",
"confirm": "확인",
"copy": "복사",
"copied": "복사됨",
"copyFailed": "복사하지 못했습니다 — 텍스트를 선택해 직접 복사하세요",
"show": "쇼",
"hide": "숨기기",
"apply": "적용",
"applied": "적용됨",
"applying": "신청 중…",
"active": "활성",
"inactive": "비활성",
"never": "결코",
"loading": "로드 중…",
"error": "오류",
"noData": "아직 데이터가 없습니다",
"unsavedChanges": "저장되지 않은 변경사항",
"saveChanges": "변경사항 저장",
"remove": "제거",
"unknownError": "알 수 없는 오류",
"model": "모델",
"provider": "공급자",
"success": "성공",
"failures": "실패",
"dismiss": "닫기",
"status": "상태"
},
"settings": {
"title": "설정",
"language": "언어",
"theme": "테마",
"themeSystem": "시스템",
"themeLight": "라이트",
"themeDark": "다크",
"searchLanguage": "언어 검색…",
"noLanguages": "언어를 찾을 수 없습니다.",
"sections": "설정 섹션",
"sectionGeneral": "일반",
"sectionCompression": "압축",
"sectionAdvanced": "고급",
"sectionPreview": "미리보기",
"generalDescription": "이 대시보드의 언어와 모양입니다.",
"advancedDescription": "압축 파이프라인의 임계값과 안전 스위치입니다.",
"compressionTitle": "프롬프트 압축",
"compressionDescription": "코드, 오류, 경로, 숫자, 도구 정의를 유지하면서 라우팅 전에 요청 크기를 줄입니다.",
"compressionHelp": "각 요청을 공급자에게 보내기 전에 다시 작성하여 토큰을 더 적게 사용하도록 합니다. 코드, 오류, 파일 경로, 숫자는 보호되며 이를 손상시키는 재작성은 폐기됩니다.",
"compressionMode": "모드",
"compressionModeHelp": "꺼짐은 요청을 그대로 보냅니다. 무손실은 중복되고 낭비되는 텍스트만 제거합니다. 표준은 도구 출력도 줄입니다. 적극적은 여기에 더해 이전 대화까지 압축합니다.",
"compressionOff": "꺼짐",
"compressionLossless": "무손실",
"compressionStandard": "표준",
"compressionAggressive": "적극적",
"compressionLossy": "손실",
"compressionEngines": "엔진",
"compressionEnginesHelp": "각 엔진은 하나의 재작성 단계입니다. 어떤 엔진이 실행될지는 모드가 결정하며, 여기서 끈 엔진은 모든 모드에서 제외됩니다.",
"engineDedup": "반복된 블록",
"engineDedupHelp": "대화에서 이미 나왔던 텍스트 블록을 그것을 가리키는 짧은 참조로 대체합니다.",
"engineLite": "공백 정리",
"engineLiteHelp": "줄 끝 공백을 없애고 반복된 빈 줄을 합치며 중복된 시스템 메시지를 제거합니다.",
"engineReadLifecycle": "대체된 파일 읽기",
"engineReadLifecycleHelp": "같은 파일을 나중에 다시 읽거나 편집하면 이전 파일 읽기 결과를 안내 문구로 대체합니다.",
"engineToolfilter": "도구 출력 필터",
"engineToolfilterHelp": "빌드, 테스트, 설치 등 명령 및 도구 출력을 줄입니다. 오류와 스택 트레이스 줄은 항상 유지됩니다.",
"engineJsoncompact": "JSON 테이블",
"engineJsoncompactHelp": "같은 필드를 가진 긴 JSON 배열을 간결한 테이블로 다시 인코딩합니다. 되돌릴 수 있으므로 잃는 것이 없습니다.",
"engineRelevance": "관련성 필터",
"engineRelevanceHelp": "메시지가 크기 한도를 넘으면 최신 메시지와 관련성이 가장 낮은 문장부터 제거합니다.",
"engineAging": "이전 대화",
"engineAgingHelp": "최근 몇 개를 제외한 이전 대화를 경로, 오류, 결정 사항을 유지한 짧은 요약으로 압축합니다.",
"engineHardBudget": "토큰 상한",
"engineHardBudgetHelp": "요청이 목표 토큰 수에 맞을 때까지 가치가 가장 낮은 줄부터 제거합니다.",
"compressionAutoTrigger": "예상 토큰 초과 시 자동 실행",
"compressionAutoTriggerHelp": "예상 토큰이 이 값을 넘는 요청은 자동으로 적극적으로 전환됩니다. 비워 두면 비활성화됩니다.",
"compressionPrefixFreeze": "반복되는 프롬프트 접두사 고정",
"compressionPrefixFreezeHelp": "같은 텍스트가 세 번 확인되면 시스템 프롬프트를 그대로 두어 공급자 측 프롬프트 캐싱이 계속 작동하도록 합니다.",
"compressionTrustProjectFilters": "프로젝트 필터 파일 신뢰",
"compressionTrustProjectFiltersHelp": "작업 디렉터리에서도 도구 출력 필터를 불러옵니다. 저장소가 이를 이용해 모델에서 출력을 숨길 수 있으므로 기본값은 꺼짐입니다.",
"compressionStats": "크기 절감",
"compressionEstimatedTokensSaved": "예상 절감 토큰",
"compressionPreview": "실시간 미리보기",
"compressionPreviewDescription": "요청 본문을 파이프라인에 통과시켜 공급자가 받게 될 내용을 확인합니다.",
"compressionPreviewPlaceholder": "요청 JSON 또는 일반 텍스트를 붙여넣으세요",
"compressionRunPreview": "미리보기 실행",
"updatesTitle": "업데이트",
"checkForUpdates": "업데이트 확인",
"lastChecked": "마지막 확인: {when}",
"currentVersion": "현재 빌드:",
"updateAvailable": "업데이트 사용 가능",
"changelog": "변경 사항",
"upToDate": "최신 상태",
"buildAhead": "이 빌드는 공식 main 브랜치보다 앞서 있습니다.",
"buildDiverged": "이 빌드는 공식 main 브랜치에서 분기되었습니다.",
"buildUnknown": "이 사용자 지정 빌드는 공식 main 브랜치와 비교할 수 없습니다.",
"notGitInstall": "이 설치에는 커밋 정보가 포함되어 있지 않습니다.",
"checkFailed": "업데이트를 확인할 수 없습니다.",
"contactsGithub": "확인은 수동으로 진행되며 GitHub에 연결합니다.",
"openReleases": "GitHub 릴리스 열기",
"restartAfterUpdate": "빌드가 완료되면 FreeLLMAPI를 다시 시작하세요."
},
"models": {
"title": "모델",
"chatModelsTab": "채팅 모델",
"fusionTab": "퓨전",
"embeddingsTab": "임베딩",
"imageTab": "이미지",
"audioTab": "오디오",
"imageDesc": "Text-to-image generation models.",
"audioDesc": "Text-to-speech and speech-to-text models.",
"mediaHint": "다음을 통해 생성",
"mediaEmpty": "아직 모델이 없습니다. They sync from the catalog.",
"ttsHeading": "텍스트 음성 변환",
"sttHeading": "음성을 텍스트로",
"sttHint": "다음을 통해 스크립트 작성",
"sttEmpty": "No speech-to-text models yet. They sync from the catalog.",
"newBadge": "새로운",
"monthlyTokenBudget": "월간 토큰 예산",
"remaining": "남은",
"used": "사용됨",
"of": "의",
"showAllModels": "모든 {count} 모델 보기",
"showLess": "간략히 보기",
"vision": "비전",
"visionTitle": "이미지 입력을 허용합니다",
"tools": "도구",
"toolsTitle": "구조화된 도구 호출을 내보내므로 도구 베어링 요청에 적합합니다.",
"retired": "지원 종료",
"penalty": "−{value} 페널티",
"obs": "{count} 관측",
"tokPerMonth": "{count} 톡/월",
"rpmLimit": "{count} rpm",
"rpdLimit": "{count} rpd",
"noKey": "열쇠 없음",
"dragToReorder": "드래그하여 재정렬하세요.",
"dragToReorderGroup": "드래그하여 모델 재정렬",
"providerCount": "{count} 제공업체",
"servedBy": "{providers} 제공",
"viewProviders": "공급자 보기",
"backToModels": "모델로 돌아가기",
"providersHeading": "이 모델을 제공하는 제공업체",
"codeSnippetHeading": "이 모델을 사용하세요",
"modelNotFound": "이 모델을 사용할 수 없거나 구성된 공급자가 없습니다.",
"providerIdsHeading": "제공업체 모델 ID",
"providerIdsHint": "모든 공급자에 걸쳐 장애 조치를 수행하려면 통합 모델 ID를 보내거나 하나의 공급자를 고정하려면 공급자별 ID를 보내세요.",
"copyModelName": "모델명 복사",
"settingsHeading": "공급자 설정",
"settingsHint": "카탈로그 모델에 대한 로컬 편집 내용은 카탈로그 동기화 전반에 걸쳐 유지됩니다. 삭제된 카탈로그 모델은 구성을 통해 다시 추가할 때까지 삭제된 상태로 유지됩니다.",
"catalogModel": "카탈로그",
"customModel": "관습",
"localOverride": "로컬 재정의",
"displayName": "표시 이름",
"sizeLabel": "역량 티어",
"sizeLabelHint": "Frontier/Large/Medium/Small가 지능 축을 결정합니다. 인식되는 티어가 없는 모델은 0점으로 처리됩니다.",
"sizeLabelNone": "없음(점수 없음)",
"contextWindow": "맥락",
"inFallback": "체인 내",
"saveModelSettings": "모델 설정 저장",
"aggregateBudget": "{count}/월",
"aggregateBudgetTitle": "이 모델 제공업체의 월별 총 무료 토큰",
"rateRpm": "{count} RPM",
"rateRpd": "{count} RPD",
"rateTitle": "비율 제한 — 고정된 월간 토큰 예산 없음",
"splitOut": "이 사본을 병합하지 마세요",
"splitOutHint": "이 공급자의 사본을 통합 모델에 병합하는 대신 별도의 항목을 제공하십시오. 사본의 자체 페이지에서 다시 병합할 수 있습니다.",
"splitUndo": "다시 병합",
"splitUndoHint": "이 사본은 통합 모델과 별도로 보관됩니다. 모든 공급자에 대해 다시 장애 조치를 수행하려면 다시 병합하세요.",
"splitBadge": "별도로 보관",
"noData": "데이터 없음",
"noDataTitle": "아직 기록된 요청이 없습니다. 이 공급자에 대한 신뢰성과 속도는 측정되지 않습니다.",
"bestOfN": "{count} 중 최고",
"perProviderScores": "공급자별 점수: {list}",
"columnModel": "모델",
"columnOn": "켜기",
"noModelsBefore": "사용 가능한 모델이 없습니다. API 키를 추가하세요.",
"keysPageLink": "키 페이지",
"noModelsAfter": "먼저.",
"hiddenNoKeys": "숨김(키 없음): {platforms}",
"searchPlaceholder": "모델 또는 제공업체 검색…",
"clearSearch": "검색 지우기",
"ctxAny": "모든 컨텍스트",
"ctxBadge": "{size} ctx",
"ctxTitle": "컨텍스트 창",
"copyModelId": "모델 ID 복사",
"showingCount": "{total} 모델의 {shown}",
"clearFilters": "필터 지우기",
"noMatches": "필터와 일치하는 모델이 없습니다.",
"noModelsTitle": "구성된 모델이 없습니다.",
"intelligenceRank": "지능",
"speedRank": "속도",
"rankHint": "카탈로그 내 순위 — 1이 가장 좋습니다.",
"limitRpm": "RPM",
"limitRpd": "RPD",
"limitTpm": "TPM",
"limitTpd": "TPD",
"limitHint": "제한 없음으로 두려면 비워 두세요.",
"usageThisMonth": "월간 사용량",
"usageEmpty": "이번 달에는 아직 요청이 없습니다.",
"usageRequestsMonth": "이번 달 {count}건"
},
"strategies": {
"explore": "미측정 모델 탐색",
"exploreHint": "신뢰성/속도 데이터가 없는 모델에 10% 확률로 시도 기회를 주어 샘플을 쌓게 합니다.",
"title": "라우팅 전략",
"description": "라우팅 전략을 선택하세요. 수동 모드에서는 드래그하여 순서를 설정합니다. 다른 전략은 안정성, 속도 및 지능 전반에 걸쳐 실시간 점수를 기준으로 라우팅됩니다.",
"weightsSummary": "신뢰성 {reliability}% · 속도 {speed}% · 지능 {intelligence}%",
"guardrails": "난간",
"guardrailsTooltip": "상시 가동 가드레일: 무료 할당량 헤드룸 × 실시간 속도 제한 페널티. 1.0 미만이면 모델이 보류되고 있음을 의미합니다.",
"scoreTooltip": "최종 라우팅 점수 = 3개 축의 가중 평균에 가드레일을 곱한 값입니다. 더 높은 경로가 먼저입니다.",
"modeManualHint": "수동 모드: 요청은 위에서 아래로 아래 순서를 따릅니다. 재정렬하려면 드래그하세요.",
"modeScoreHint": "실시간 교통정보를 통해 점수가 업데이트됩니다. 아래 순서는 현재 요청이 라우팅되는 방식입니다.",
"manual": "매뉴얼",
"manualBlurb": "아래에 설정한 정확한 순서로 라우팅하세요. 재정렬하려면 핸들을 드래그하세요. 득점 없음; 체인은 위에서 아래로 이어집니다.",
"balanced": "균형 잡힌",
"balancedBlurb": "속도와 지능이 동일하게 가중치를 적용한(각각 25%) 신뢰성 리드(50%). 합리적인 만능 기본값입니다.",
"smartest": "가장 똑똑하다",
"smartestBlurb": "여전히 작동하는 가장 유능한 모델을 선호하십시오. 지능 55%, 신뢰성 35%, 속도 10%.",
"fastest": "가장 빠른",
"fastestBlurb": "여전히 작동하는 가장 빠른 모델을 선호하십시오. 속도 55%, 신뢰성 35%, 지능 10%.",
"reliable": "가장 신뢰할 수 있는",
"reliableBlurb": "무엇보다 성공률을 극대화하세요. 신뢰성 70%, 속도 및 지능 15%.",
"custom": "맞춤",
"customBlurb": "슬라이더를 사용하여 안정성, 속도, 지능의 균형을 직접 설정하세요. 사전 설정과 동일한 엔진, 가중치만 적용됩니다.",
"adjust": "조정하다",
"customWeights": "맞춤 가중치",
"customWeightsHelp": "슬라이더는 독립적입니다. 자동 밸런스를 100%로 공유합니다.",
"weightReliability": "신뢰성",
"weightSpeed": "속도",
"weightIntelligence": "지능",
"weightRequired": "하나 이상의 가중치가 0보다 커야 합니다.",
"scoreColumn": "점수"
},
"penaltyInspector": {
"title": "라우터 압력",
"subtitle": "지난 {minutes}분의 페널티, 쿨다운 및 실패",
"rowCount": "{count} 활성",
"offChain": "오프체인",
"penaltyValue": "페널티킥 {value}",
"factor": "점수 x{factor}",
"noCooldown": "쿨다운 없음",
"cooldownChip": "{key} - {time}",
"errorsHeading": "{count} 최근 오류",
"noRecentErrors": "최근 오류 없음",
"noKey": "열쇠 없음",
"reasons": {
"penalty": "처벌을 받음",
"cooldown": "쿨타임",
"recent_errors": "실패"
}
},
"keys": {
"pageTitle": "열쇠",
"pageDescription": "앱이 연결되는 공급자 자격 증명 및 통합 API 키.",
"tabProviders": "공급자",
"checklistSummary": "{total}개 공급자 중 {configured}개 설정됨",
"checklistKeyless": "키 필요 없음",
"tabQuotaSignals": "할당량 신호",
"tabApiKey": "통합 API 키",
"tabAnthropic": "Anthropic",
"unifiedKey": "통합 API 키",
"regenerate": "재생성",
"showKey": "쇼",
"hideKey": "숨기기",
"copyKey": "복사",
"copyFullKey": "전체 키 복사",
"copiedKey": "복사됨",
"baseUrl": "베이스 URL",
"endpointChat": "채팅",
"endpointResponses": "응답",
"endpointEmbeddings": "임베딩",
"endpointEmbeddingsHint": "model: \"auto\" 또는 Embeddings 탭의 제품군",
"endpointMessages": "메시지",
"endpointMessagesHint": "Anthropic 호환(Claude)",
"anthropicTitle": "Claude(Anthropic) 모델",
"anthropicDesc": "이 서버에서 Claude 또는 Anthropic SDK 클라이언트를 가리킵니다. Anthropic 클라이언트는 Claude 모델 이름을 보냅니다. 각각을 Auto(라우터가 무료 모델 선택)에 매핑하거나 특정 모델을 고정합니다.",
"anthropicBaseUrl": "베이스 URL",
"anthropicAuth": "인증 헤더",
"anthropicAuto": "자동 — 라우터가 가장 적합한 모델을 선택합니다.",
"anthropicSave": "매핑 저장",
"anthropicSaved": "저장됨",
"anthropicNote": "Anthropic 클라이언트는 내장된 Claude 모델 이름을 유지합니다. 위의 매핑은 각각이 풀로 라우팅되는 방식을 결정합니다.",
"familyDefault": "기본값",
"familyOpus": "오푸스",
"familySonnet": "소네트",
"familyHaiku": "하이쿠",
"selectPlatform": "제공업체 선택",
"addKey": "키 추가",
"keyAdded": "키가 추가됨",
"endpointKeysShareModels": "같은 엔드포인트의 키는 해당 모델을 공유합니다.",
"export": "수출",
"exportAll": "모든 키",
"exportHealthy": "건강한 것만",
"exportKeys": "API 키 내보내기",
"exportFormat": "형식",
"exportHealthyOnly": "정상 키만",
"exportHealthyOnlyDesc": "현재 상태 확인에 실패한 키 제외",
"exportWillExport": "수출할 예정",
"exportKey": "열쇠",
"exportKeys plural": "열쇠",
"exporting": "내보내는 중…",
"exportDownload": "다운로드",
"exportSuccess": "내보낸 {count} 키",
"adding": "추가 중…",
"selectProvider": "제공업체를 선택하세요…",
"accountId": "계정 ID",
"label": "라벨",
"noKeyNeeded": "(열쇠는 필요하지 않습니다)",
"outboundProxy": "아웃바운드 프록시",
"outboundProxyDescription": "프록시를 통해 아웃바운드 LLM 요청을 라우팅합니다. SOCKS5, HTTP 및 HTTPS를 지원합니다.",
"proxyUrl": "프록시 URL",
"saveProxy": "저장",
"savingProxy": "저장 중…",
"proxyLoadFailed": "프록시 설정을 로드할 수 없습니다.",
"addCustom": "맞춤형 OpenAI 호환 모델 추가",
"addCustomDescription": "모든 OpenAI 호환 엔드포인트에서 포인트 채팅, 임베딩, 이미지 또는 오디오 모델을 사용할 수 있습니다. API 키는 로컬 서버의 경우 선택 사항입니다.",
"customType": "유형",
"customTypeChat": "채팅",
"customTypeEmbedding": "임베딩",
"customTypeImage": "이미지",
"customTypeAudio": "오디오",
"customBaseUrl": "베이스 URL",
"customModels": "모델",
"customModel": "모델",
"customDisplayName": "표시 이름",
"customDisplayNamePerModel": "모델별",
"customDisplayNameOptional": "선택사항",
"customFamily": "가족",
"customFamilyPlaceholder": "기본값은 모델 ID입니다.",
"customApiKey": "API 키",
"customCapabilities": "기능",
"addModel": "모델 추가",
"modelAdded": "모델이 추가됨",
"addModels": "{count} 모델 추가",
"addEmbeddingModel": "임베딩 추가",
"addImageModel": "이미지 모델 추가",
"addAudioModel": "오디오 모델 추가",
"addingCustom": "추가 중…",
"discoverModels": "모델 가져오기",
"probeNow": "엔드포인트 테스트",
"probeSuccess": "{model} 테스트 완료 ({latency}ms)",
"probeFailed": "테스트 실패: {reason}",
"discoverTitle": "이 엔드포인트의 모델",
"discoverHint": "등록할 모델을 선택하세요. 이미 추가된 모델은 잠긴 상태로 유지됩니다.",
"discoverEmpty": "이 엔드포인트가 모델을 반환하지 않았습니다.",
"discoverAlreadyAdded": "추가됨",
"discoverSelectAll": "전체 선택",
"modelsAdded": "모델 {count}개를 추가했습니다",
"getApiKey": "API 키 가져오기",
"deleteKeyConfirm": "이 키를 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.",
"checkAll": "모두 확인",
"checking": "확인 중…",
"editLabel": "라벨 수정",
"saveLabel": "라벨 저장",
"unifiedKeyDescBefore": "이것을 OpenAI로 사용하세요",
"unifiedKeyDescAfter": "; 이 프록시에 대한 요청을 인증합니다.",
"serverUnreachableBefore": "다음 서버에 연결할 수 없습니다.",
"serverUnreachableAfter": ". 백엔드가 실행 중인지 확인하세요. npm run dev는 둘 다 시작하고 서버 로그는 서버 접두사 아래에 인쇄됩니다.",
"paneProviderKey": "공급자 키",
"paneImportFile": "파일 가져오기",
"paneCustomEndpoint": "커스텀 엔드포인트",
"platform": "플랫폼",
"apiToken": "API 토큰",
"noKeyNeededPlaceholder": "API 키가 필요하지 않습니다.",
"bearerTokenPlaceholder": "무기명 토큰",
"pasteKeyPlaceholder": "여기에 키를 붙여넣으세요",
"pasteSeveral": "여러 개 붙여넣기",
"keylessHint": "API 키가 필요하지 않습니다. 이 공급자의 무료 등급은 익명입니다(IP당 속도 제한).",
"enable": "활성화",
"noProviderKeys": "아직 제공업체 키가 없습니다. 라우팅을 시작하려면 위에 하나를 추가하세요.",
"filterPlaceholder": "필터 공급자 또는 키",
"filterAll": "모두",
"filterHealthy": "건강하다",
"filterIssues": "문제",
"filterDisabled": "장애인",
"noFilterMatch": "필터와 일치하는 제공업체가 없습니다.",
"providerCountSummary": "{providers} 공급자 · {keys} 키",
"summaryHealthy": "{count} 건강함",
"summaryIssueOne": "{count} 문제",
"summaryIssueOther": "{count} 문제",
"providerActions": "공급자 작업",
"routeViaProxy": "프록시를 통한 라우팅",
"checkNow": "지금 확인하세요",
"proxyEnvHintBefore": "또한 다음을 통해 구성할 수 있습니다.",
"proxyEnvHintAfter": "환경 변수(우선순위를 갖습니다). 비활성화하려면 비워 두세요. 예:",
"importKeys": "공급자 키 가져오기",
"importKeysDescription": ".env, JSON, JSONC, CSV, Markdown 또는 텍스트 파일을 업로드하세요.",
"importFiles": "파일",
"importFileCount": "{count} 선택됨",
"previewFiles": "미리보기",
"previewing": "미리보기 중…",
"selected": "선택됨",
"provider": "공급자",
"keyName": "키 이름",
"keyValue": "핵심 가치",
"chooseProvider": "제공업체 선택",
"noPreviewKeys": "해당 파일에는 키가 없습니다.",
"skippedItems": "건너뛴 항목:",
"moreItems": "+{count} 더보기",
"importSelected": "{count} 가져오기",
"importing": "가져오는 중…",
"noImportSelection": "공급자가 포함된 행을 하나 이상 선택하세요.",
"duplicate": "중복",
"duplicatesFound": "{count} 중복이 감지되었습니다. 이미 존재하며 건너뜁니다.",
"importResult": "수입된 {imported}; {failed}에 실패했습니다.",
"importModelCount": "+{count}개 모델",
"importResultWithModels": "수입된 {imported}; {models}개 모델 등록됨; {failed}에 실패했습니다.",
"confirmRemove": "확인하시겠습니까?",
"quotaSignalsTitle": "할당량 신호",
"quotaSignalsEmptyTitle": "아직 할당량 관찰이 없습니다.",
"quotaSignalsEmptyDesc": "이는 공급자가 속도 제한 헤더, 할당량 오류 또는 유효성 검사 신호를 반환한 후에 채워집니다.",
"quotaKeyRef": "키 #{id}",
"quotaPoolRef": "풀 {pool}",
"quotaLimit": "한도",
"quotaRemaining": "남은",
"quotaReset": "재설정",
"quotaObserved": "관찰됨",
"tabAgents": "에이전트",
"familyGeminiPro": "Gemini Pro",
"familyGeminiFlash": "Gemini Flash",
"familyGeminiFlashLite": "Gemini Flash-Lite",
"geminiTitle": "Gemini 모델 매핑",
"geminiDesc": "Gemini Pro, Flash, Flash-Lite 이름을 자동 또는 특정 카탈로그 모델에 매핑합니다.",
"compatibilityTitle": "에이전트 호환성",
"compatibilityDesc": "옵트인 호환성 표면과 Claude Code 모델 검색을 제어합니다.",
"ollamaMode": "Ollama 에뮬레이션",
"ollamaModeHint": "오픈 루프백은 인증되지 않은 LAN 트래픽을 절대 허용하지 않습니다.",
"ollamaOff": "끄기",
"ollamaLoopback": "루프백에서 열기",
"ollamaKeyRequired": "API 키 필요",
"claudeAliases": "Claude Code 검색 별칭",
"claudeAliasesHint": "claude/<model> 별칭을 노출하여 게이트웨이 모델 선택기가 카탈로그를 나열할 수 있게 합니다.",
"urlTokensTitle": "취소 가능한 URL 토큰",
"urlTokensDesc": "헤더를 쓸 수 없는 클라이언트 전용입니다. URL 토큰은 기록과 로그에 유출될 수 있으므로 더 이상 필요하지 않으면 취소하세요.",
"urlTokenLabel": "토큰 라벨",
"createUrlToken": "토큰 생성",
"urlTokenOnce": "이 토큰을 지금 복사하세요. 다시 표시되지 않습니다.",
"revoked": "취소됨",
"revoke": "취소",
"modelScope": "모델 범위",
"modelScopeDesc": "이 키를 특정 모델 ID로 제한합니다. 다른 모델에는 라우터가 이 키를 건너뜁니다.",
"modelScopeAdd": "모델 ID를 입력하고 Enter를 누르세요",
"modelScopeEmpty": "범위 미설정 — 이 키는 제공자의 모든 모델에 사용됩니다.",
"modelScopeClear": "범위 지우기",
"modelScopeBadgeOne": "제한됨 · 모델 1개",
"modelScopeBadgeOther": "제한됨 · 모델 {count}개",
"cpTitle": "클라이언트 프로필",
"cpDesc": "클라이언트별 API 키로, 각 키의 시스템 프롬프트를 서버가 항상 적용합니다.",
"cpEmpty": "아직 클라이언트 프로필이 없습니다.",
"cpNameLabel": "이름",
"cpNamePlaceholder": "예: 고객지원 봇",
"cpPromptLabel": "시스템 프롬프트 (선택)",
"cpPromptPlaceholder": "이 키로 보내는 모든 요청 앞에 서버가 추가하는 지침입니다.",
"cpCreate": "프로필 만들기",
"cpRotate": "키 교체",
"cpKeyOnce": "지금 이 키를 복사하세요. 다시 표시되지 않습니다.",
"cpEnabledAria": "프로필 활성화됨"
},
"status": {
"healthy": "건강한",
"rateLimited": "속도 제한",
"invalid": "유효하지 않은",
"error": "오류",
"unchecked": "선택 해제됨"
},
"analytics": {
"title": "분석",
"description": "요청 볼륨, 지연 시간, 토큰 사용량 및 실패.",
"range24h": "24시간",
"range7d": "7일",
"range30d": "30일",
"range90d": "90일",
"requests": "요청사항",
"successRate": "성공률",
"inputTokens": "입력 토큰",
"outputTokens": "출력 토큰",
"avgLatency": "평균 대기 시간",
"p95Latency": "P95 대기 시간",
"avgTtft": "평균 TTFT",
"estSavings": "예상 저축",
"requestsByProvider": "제공업체의 요청",
"avgLatencyByProvider": "제공업체별 평균 지연 시간",
"ttftByProvider": "공급자별 첫 번째 토큰 도달 시간",
"ttftEmpty": "아직 첫 번째 토큰이 기록될 시간이 없습니다.",
"requestsOverTime": "시간 경과에 따른 요청",
"tokensOverTime": "시간 경과에 따른 토큰",
"byModel": "모델별",
"byPlatform": "플랫폼별",
"errors": "오류",
"errorDistribution": "오류 분포",
"pinnedRequests": "고정된 요청",
"pinnedHonored": "우호적",
"fallbackAttempts": "대체 시도",
"savingsHint": "실제로 지난 {range}에 비해 ${actual}를 절약했습니다. 이는 동일한 토큰이 모델별로 가격이 책정되는 유료 API에 대한 비용입니다. 표시된 숫자는 마지막 {span} 데이터부터 전체 30일까지의 속도를 나타냅니다.",
"savingsHintExact": "실제로 지난 {range}에 비해 ${actual}를 절약했습니다. 이는 동일한 토큰이 모델별로 가격이 책정되는 유료 API에 대한 비용입니다. 표시된 숫자는 실제 30일 합계입니다.",
"requestsHintPinned": "이러한 요청 중 {pinned}는 특정 모델을 이름으로 고정했습니다. {honored}는 고정된 모델에 의해 제공되었습니다. {failed}는 다른 것으로 장애 조치되었습니다. 나머지는 자동으로 라우팅되었습니다.",
"requestsHintAuto": "이 기간의 모든 요청은 자동으로 라우팅되었습니다. 어떤 클라이언트도 특정 모델을 이름으로 고정하지 않았습니다.",
"requestsHintTypes": "{chat} 채팅 및 {embedding} 삽입 요청.",
"rangeLabel24h": "24시간",
"rangeLabel7d": "7일",
"rangeLabel30d": "30일",
"rangeLabel90d": "90일",
"spanDays": "{count}일",
"spanHours": "{count}시간",
"latencyMs": "지연 시간(밀리초)",
"latency": "대기 시간",
"pinned": "고정됨",
"inTokens": "토큰으로",
"outTokens": "아웃 토큰",
"saved": "저장됨",
"message": "메시지",
"time": "시간",
"perModelBreakdown": "모델별 분석",
"usageByKey": "키별 사용법",
"keyColumn": "열쇠",
"keyLabelFallback": "키 #{id}",
"errorsByProvider": "공급자별 오류",
"recentErrors": "최근 오류",
"noErrors": "오류 없음",
"recentCalls": "최근 통화",
"clientIp": "클라이언트 IP",
"clientAgent": "클라이언트 앱",
"requestedModelHint": "대체 서비스로 제공되는 {model} 요청",
"attempts": "시도",
"filterAll": "모두",
"filterCanceled": "취소됨",
"providerBreakdown": "공급자별 분석",
"tokensPerSec": "톡/초",
"allProviders": "모든 제공업체",
"requestDetailTitle": "요청 #{id}",
"failoverLadder": "장애 조치 사다리",
"failoverLadderHint": "이 요청이 폴백 체인을 순서대로 통과한 각 홉입니다.",
"noAttemptTrace": "이 요청에 대한 시도 추적이 기록되지 않았습니다.",
"keyOrdinal": "키 #{n}",
"attemptTimingHint": "요청 시작부터 시작 오프셋 · 시도 기간",
"requestedModel": "요청 모델",
"ttft": "TTFT",
"requestsByAgent": "에이전트별 요청"
},
"playground": {
"title": "놀이터",
"description": "라우터를 통해 채팅 완료를 보내고 어떤 공급자가 이를 제공하는지 확인하세요.",
"autoModel": "자동(대체 체인)",
"fusionModel": "융합(다중 모델 합성)",
"selectModel": "모델 선택",
"searchModels": "모델 검색…",
"noModelsFound": "모델을 찾을 수 없습니다.",
"send": "보내기",
"sending": "보내는 중…",
"clear": "지우기",
"inputPlaceholder": "메시지를 입력하세요… (보내려면 ⏎, 개행에는 ⇧⏎)",
"emptyTitle": "시작하려면 메시지를 보내세요.",
"emptyDescription": "{model}를 사용합니다. 위 선택기에서 모델을 전환하세요.",
"noModels": "아직 모델이 없습니다. 이 목록을 채우려면 키 페이지에 API 키를 추가하세요.",
"copyReply": "답글 복사",
"fallback": "대체",
"fallbacks": "대체",
"fusionPanel": "패널",
"fusionJudge": "판사",
"fusionTrace": "{count} 모델 응답",
"fusionFailed": "응답 없음",
"fusionJudgeSynth": "최종 답변을 종합했습니다",
"errorPrefix": "오류:",
"systemPromptLabel": "시스템 프롬프트",
"systemPromptPlaceholder": "선택사항. 채팅 전 시스템 메시지로 전송됩니다.",
"errorTitle": "요청 실패",
"attach": "파일 첨부",
"attachTooMany": "메시지당 최대 {count}개의 파일을 첨부할 수 있습니다.",
"attachTooLarge": "{name}이(가) 너무 큽니다. 제한은 {max}입니다.",
"attachUnsupported": "{name}은(는) 지원되지 않습니다. 이미지(PNG, JPEG, WebP, GIF) 또는 텍스트 파일(TXT, MD, CSV, JSON, LOG)을 첨부하세요.",
"attachFailed": "{name}을(를) 읽을 수 없습니다.",
"noVisionBadge": "이미지 불가",
"visionWarning": "{model}은(는) 이미지를 지원하지 않습니다. 이미지 입력이 가능한 모델 또는 자동을 선택하세요."
},
"embeddings": {
"title": "모델",
"description": "임베딩은 제품군 내에서만 장애 조치됩니다. 동일한 모델은 다른 공급자가 제공합니다. 다른 모델의 벡터는 호환되지 않으므로 라우터는 사용자의 모델을 절대 교체하지 않습니다.",
"defaultBadge": "기본 · 자동",
"makeDefault": "기본값으로 설정",
"moveUp": "위로 이동",
"moveDown": "아래로 이동",
"usageToday": "오늘 {count} 요청",
"usageMonth": "이번 달 {count} 톡",
"autoDescription": "POST /v1/embeddings의 model: \"auto\"는 기본 제품군으로 라우팅됩니다. 제품군(또는 공급자 모델 ID)의 이름을 지정하면 해당 제품군이 고정됩니다. 그 안에 있는 공급자는 순서대로 시도됩니다.",
"unsavedChanges": "저장되지 않은 변경사항",
"saveChanges": "변경사항 저장",
"savingChanges": "저장 중…",
"tokMax": "{tokens} 토크 최대",
"emptyTitle": "아직 임베딩 모델이 없습니다.",
"emptyDesc": "임베딩을 지원하는 공급자 키를 추가하면 임베딩 계열이 여기에 표시됩니다.",
"dragToReorder": "공급자를 재정렬하려면 드래그하세요."
},
"fusion": {
"title": "퓨전",
"description": "모델 패널이 동시에 답변한 후 심사위원이 하나의 더 강력한 답변을 종합합니다. 모델 \"fusion\"으로 API를 호출하여 사용하십시오.",
"panelSource": "패널 소스",
"panelSourceHelp": "요청이 자체 모델을 지정하지 않을 때 패널 모델을 가져오는 위치입니다.",
"mode": {
"auto": "자동(대체 체인)",
"autoHelp": "활성 라우팅 전략에 따라 순위가 매겨진 Fallback Chain에서 다양한 모델 세트를 선택하세요.",
"explicit": "명시적 패널",
"explicitHelp": "항상 아래에서 선택한 특정 모델을 사용하십시오."
},
"panelModels": "패널 모델",
"selectedCount": "{max} 중 {count}가 선택됨",
"noModels": "아직 연결된 모델이 없습니다. API 키를 추가한 다음 Fallback Chain에서 모델을 활성화합니다.",
"panelSize": "패널 크기",
"panelSizeHelp": "자동으로 선택할 다양한 모델 수(1–{max}).",
"judge": "판사 모델",
"judgeHelp": "패널의 답변을 하나로 종합하는 모델입니다. 자동은 사용 가능한 최상위 모델을 사용합니다.",
"judgeAuto": "자동(최상위 사용 가능)",
"strategy": "전략",
"strategySynthesize": "종합 — 패널을 하나의 답변으로 혼합",
"strategyBestOf": "최고 — 가장 강력한 단일 답변 반환(판사 호출 없음)",
"strategySynthesizeShort": "합성하다",
"strategyBestOfShort": "최고",
"exposePanel": "패널 세부정보 노출",
"exposePanelHelp": "응답의 x_fusion 필드 아래에 각 모델의 답변과 심사위원 메타데이터를 첨부하세요.",
"howToUse": "사용방법",
"howToUseHelp": "모델 \"fusion\"을 사용하여 일반 채팅 요청을 보냅니다. 이러한 설정은 기본값입니다. 모든 요청은 \"fusion\" 필드로 이를 재정의할 수 있습니다.",
"unsavedChanges": "저장되지 않은 변경사항",
"save": "저장"
},
"premium": {
"title": "프리미엄",
"description": "모든 장치에서 실시간 모델 카탈로그를 볼 수 있습니다.",
"loading": "로드 중…",
"checkForUpdates": "업데이트 확인",
"syncing": "동기화 중…",
"catalogFeed": "카탈로그 피드",
"liveFeed": "라이브 피드",
"monthlySnapshot": "월별 스냅샷",
"lastChecked": "마지막 확인: {when}",
"liveDescription": "새로운 무료 모델, 할당량 변경 및 특이한 수정 사항이 배송 후 몇 시간 내에 여기에 도착합니다. 앱은 하루에 두 번 자동으로 확인합니다. 할 일이 없습니다.",
"snapshotDescription": "무료 등급: 카탈로그는 월별 스냅샷에서 새로 고쳐지며 하루에 두 번 자동으로 확인됩니다. 프리미엄은 이를 라이브 피드로 전환하여 2~3일마다 업데이트됩니다.",
"lastSyncProblem": "마지막 동기화 문제: {error}",
"license": "라이센스",
"planAnnual": "프리미엄 연간",
"planLifetime": "프리미엄 평생",
"expired": "만료됨",
"inactive": "비활성",
"lifetimeNote": "평생 라이센스: 만료되지 않습니다.",
"renewsOn": "{date}에 갱신됩니다.",
"willNotRenew": "갱신되지 않습니다. {date}까지 프리미엄인 경우 이 설치는 무료 월간 카탈로그로 대체됩니다.",
"keyInactive": "이 키는 더 이상 활성화되지 않습니다. 앱은 무료 월간 카탈로그를 계속해서 작업합니다.",
"manageSubscription": "구독 관리",
"openingPortal": "여는 중…",
"removeKey": "이 기기에서 키 삭제",
"manageHint": "구독 관리를 클릭하면 Stripe의 청구 포털이 열립니다. 취소, 카드 업데이트 또는 송장 다운로드가 가능합니다. 키를 제거하면 이 장치만 비활성화됩니다. 귀하의 구매는 그대로 유지됩니다.",
"licenseKey": "라이센스 키",
"licenseKeyPlaceholder": "fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"activate": "활성화",
"activating": "활성화 중…",
"keyHint": "키는 구매 이메일과 결제 후 페이지에 있습니다. 잃어버렸나요?",
"recoverKey": "홈페이지에서 복구하세요",
"upsellTitle": "연간 19달러에 라이브로 전환하세요",
"upsellDescription": "새로운 무료 모델은 30일 후가 아니라 존재하는 순간부터 가능합니다. 하나의 키, 모든 장치. 언제든지 취소하세요. 라우터는 영원히 무료로 유지됩니다.",
"goPremium": "프리미엄으로 이동",
"bundled": "번들로 제공",
"planGeneric": "프리미엄"
},
"languages": {
"en": "English",
"zh-CN": "中文 (简体)",
"es": "Español",
"fr": "Français",
"pt-BR": "Português (Brasil)",
"it": "Italiano",
"hi": "हिन्दी",
"ar": "العربية",
"bn": "বাংলা",
"ru": "Русский",
"ur": "اردو",
"id": "Bahasa Indonesia",
"de": "Deutsch",
"ja": "日本語",
"sw": "Kiswahili",
"mr": "मराठी",
"te": "తెలుగు",
"tr": "Türkçe",
"ta": "தமிழ்",
"vi": "Tiếng Việt",
"ko": "한국어",
"fa": "فارسی",
"th": "ไทย",
"gu": "ગુજરાતી",
"pl": "Polski",
"uk": "Українська",
"kn": "ಕನ್ನಡ",
"ml": "മലയാളം",
"or": "ଓଡ଼ିଆ",
"my": "မြန်မာဘာသာ",
"pa": "ਪੰਜਾਬੀ",
"ro": "Română",
"nl": "Nederlands",
"ms": "Bahasa Melayu",
"tl": "Filipino",
"ha": "Hausa",
"yo": "Yorùbá",
"ig": "Igbo",
"am": "አማርኛ",
"uz": "Oʻzbekcha",
"az": "Azərbaycanca",
"si": "සිංහල",
"ne": "नेपाली",
"km": "ខ្មែរ",
"el": "Ελληνικά",
"cs": "Čeština",
"hu": "Magyar",
"sv": "Svenska",
"he": "עברית",
"da": "Dansk",
"fi": "Suomi",
"no": "Norsk",
"sk": "Slovenčina",
"bg": "Български",
"hr": "Hrvatski",
"sr": "Српски",
"lt": "Lietuvių",
"zh-TW": "中文 (繁體)",
"pt-PT": "Português (Portugal)",
"ka": "ქართული"
},
"errors": {
"boundaryTitle": "문제가 발생했습니다.",
"boundaryDescription": "대시보드에 예상치 못한 오류가 발생했습니다. 귀하의 데이터는 안전합니다. 다시 시도하거나 모델 페이지로 돌아가세요.",
"tryAgain": "다시 시도하세요",
"goHome": "모델로 돌아가기"
},
"notFound": {
"title": "페이지를 찾을 수 없습니다",
"description": "이 페이지는 존재하지 않거나 이동되었을 수 있습니다."
},
"setup": {
"title": "시작하기",
"subtitle": "첫 번째 요청을 라우팅하는 세 단계입니다.",
"progress": "{total}의 {done}",
"step1Title": "공급자 키 추가",
"step1Desc": "하나 이상의 공급자 계정을 연결하십시오. 무료 키가 작동합니다.",
"step1Cta": "키 추가",
"step2Title": "테스트 요청 보내기",
"step2Desc": "놀이터에서 모델을 선택하고 인사하세요.",
"step2Cta": "열린 놀이터",
"step3Title": "앱을 연결하세요",
"step3Desc": "OpenAI 호환 클라이언트에서 통합 API 키를 사용하세요.",
"copyKey": "API 키 복사",
"copyUrl": "베이스 URL 복사",
"copiedKey": "API 키가 클립보드에 복사되었습니다.",
"copiedUrl": "기본 URL가 클립보드에 복사되었습니다."
},
"palette": {
"title": "명령 팔레트",
"placeholder": "페이지, 모델, 작업 검색…",
"empty": "결과 없음",
"groupPages": "페이지",
"groupActions": "작업",
"groupModels": "모델",
"toggleTheme": "어두운 모드 전환"
},
"validation": {
"required": "필수",
"url": "http:// 또는 https://로 시작하는 유효한 URL를 입력하세요.",
"email": "유효한 이메일 주소를 입력하세요.",
"passwordMin": "{min}자 이상"
},
"agents": {
"title": "코딩 에이전트",
"description": "자동 생성되고 백업에 안전한 구성으로 코딩 도구를 하나의 무료 모델 게이트웨이에 연결하세요.",
"apiKey": "API 키",
"quickstartTitle": "빠른 시작",
"quickstart": "가장 빠른 방법: 라이브 카탈로그에서 Claude Code를 구성하세요.",
"currentKey": "현재 통합 키:",
"seenRecently": "최근 확인됨",
"setupLabel": "자동 설정",
"setupHint": "이 도구의 설정 파일을 이 게이트웨이를 가리키도록 대신 작성합니다.",
"setupGuideHint": "이 도구의 설정 단계를 출력합니다. 파일은 작성되지 않습니다.",
"manualLabel": "수동 연결",
"manualHint": "도구 자체 설정에 입력할 기본 URL과 키입니다.",
"endpoint": "엔드포인트",
"documentation": "문서"
}
}