@object-ui/i18n 17.3.0 → 17.6.0
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/CHANGELOG.md +1929 -1
- package/README.md +41 -12
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.js +1 -2
- package/dist/index.d.ts +23 -21
- package/dist/index.js +31 -21
- package/dist/locales/ar.d.ts +638 -369
- package/dist/locales/ar.js +744 -424
- package/dist/locales/de.d.ts +638 -369
- package/dist/locales/de.js +759 -446
- package/dist/locales/en.d.ts +673 -404
- package/dist/locales/en.js +899 -406
- package/dist/locales/es.d.ts +638 -369
- package/dist/locales/es.js +739 -427
- package/dist/locales/fr.d.ts +638 -369
- package/dist/locales/fr.js +738 -423
- package/dist/locales/index.d.ts +6476 -3786
- package/dist/locales/index.js +20 -20
- package/dist/locales/ja.d.ts +638 -369
- package/dist/locales/ja.js +732 -417
- package/dist/locales/ko.d.ts +638 -369
- package/dist/locales/ko.js +736 -424
- package/dist/locales/pt.d.ts +638 -369
- package/dist/locales/pt.js +737 -425
- package/dist/locales/ru.d.ts +638 -369
- package/dist/locales/ru.js +750 -424
- package/dist/locales/zh.d.ts +672 -403
- package/dist/locales/zh.js +720 -403
- package/dist/pickLocalized.d.ts +58 -0
- package/dist/pickLocalized.js +115 -7
- package/dist/provider.d.ts +84 -2
- package/dist/provider.js +305 -31
- package/dist/useDisplayLocale.d.ts +49 -0
- package/dist/useDisplayLocale.js +55 -0
- package/dist/useObjectLabel.d.ts +94 -14
- package/dist/useObjectLabel.js +134 -21
- package/dist/useSafeTranslation.js +51 -3
- package/dist/utils/index.d.ts +4 -3
- package/dist/utils/index.js +4 -3
- package/dist/utils/number-display.d.ts +32 -0
- package/dist/utils/number-display.js +32 -0
- package/dist/utils/spec-formatters.d.ts +39 -13
- package/dist/utils/spec-formatters.js +3 -3
- package/package.json +4 -3
package/dist/locales/ko.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
const ko = {
|
|
2
|
+
// objectui#4467 — the impersonation banner (app-shell ImpersonationBanner).
|
|
3
|
+
// Raised by `session.impersonatedBy`, so it survives SPA reboots; it names
|
|
4
|
+
// BOTH parties because the audit trail attributes the work to the impersonated
|
|
5
|
+
// user, and the exit states its own failure rather than appearing to succeed.
|
|
6
|
+
impersonation: {
|
|
7
|
+
banner: {
|
|
8
|
+
message: '{{user}} 계정을 대행하고 있습니다. 모든 작업이 해당 사용자로 기록됩니다.',
|
|
9
|
+
startedBy: '관리자 {{admin}}이(가) 시작했습니다.',
|
|
10
|
+
stop: '대행 종료',
|
|
11
|
+
stopping: '종료하는 중…',
|
|
12
|
+
stopFailed: '대행을 종료할 수 없습니다: {{reason}}',
|
|
13
|
+
notRestored: '서버가 요청을 받았지만 관리자 세션을 복원하지 않았습니다. 여전히 {{user}} 계정을 대행하고 있습니다. 로그아웃 후 다시 로그인하여 종료하세요.',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
2
16
|
// objectui#2600 B5 — capability picker scope group headers (labels come from the sys_capability registry).
|
|
3
17
|
capability: {
|
|
4
18
|
label: {
|
|
@@ -16,6 +30,26 @@ const ko = {
|
|
|
16
30
|
other: '기타',
|
|
17
31
|
},
|
|
18
32
|
},
|
|
33
|
+
// objectui#3546 slice six — PermissionFacetLink 의 권한 파셋 요약.
|
|
34
|
+
// 수량 라벨은 appDesigner.objectManager.fieldCount 와 같은 "{{count}}개 + 단위" 형식.
|
|
35
|
+
// 한국어에는 단수/복수 구분이 없어 `_one` 은 기본 키와 같은 값(의도적).
|
|
36
|
+
perm: {
|
|
37
|
+
facet: {
|
|
38
|
+
none: "없음",
|
|
39
|
+
more: "+{{count}} 더보기",
|
|
40
|
+
objects: "{{count}}개 오브젝트",
|
|
41
|
+
objects_one: "{{count}}개 오브젝트",
|
|
42
|
+
fields: "{{count}}개 필드 규칙",
|
|
43
|
+
fields_one: "{{count}}개 필드 규칙",
|
|
44
|
+
rls: "{{count}}개 RLS 정책",
|
|
45
|
+
rls_one: "{{count}}개 RLS 정책",
|
|
46
|
+
tabs: "{{count}}개 탭 규칙",
|
|
47
|
+
tabs_one: "{{count}}개 탭 규칙",
|
|
48
|
+
adminScope: "위임 관리가 구성됨",
|
|
49
|
+
designInStudio: "Studio에서 디자인 →",
|
|
50
|
+
designInStudioHint: "Studio에서 디자인",
|
|
51
|
+
},
|
|
52
|
+
},
|
|
19
53
|
lookup: {
|
|
20
54
|
recentlyUsed: '최근 사용',
|
|
21
55
|
allResults: '모든 결과',
|
|
@@ -46,13 +80,13 @@ const ko = {
|
|
|
46
80
|
common: {
|
|
47
81
|
addToFavorites: "즐겨찾기에 추가",
|
|
48
82
|
removeFromFavorites: "즐겨찾기에서 제거",
|
|
49
|
-
loading: "로딩
|
|
83
|
+
loading: "로딩 중…",
|
|
50
84
|
save: "저장",
|
|
85
|
+
discard: "버리기",
|
|
51
86
|
cancel: "취소",
|
|
52
87
|
delete: "삭제",
|
|
53
88
|
edit: "편집",
|
|
54
89
|
create: "생성",
|
|
55
|
-
search: "검색",
|
|
56
90
|
filter: "필터",
|
|
57
91
|
reset: "초기화",
|
|
58
92
|
confirm: "확인",
|
|
@@ -76,7 +110,7 @@ const ko = {
|
|
|
76
110
|
required: "필수",
|
|
77
111
|
optional: "선택",
|
|
78
112
|
selectOption: "옵션을 선택하세요",
|
|
79
|
-
select: "
|
|
113
|
+
select: "선택…",
|
|
80
114
|
openChat: "채팅 열기",
|
|
81
115
|
closeChat: "채팅 닫기",
|
|
82
116
|
closePanel: "패널 닫기",
|
|
@@ -85,6 +119,11 @@ const ko = {
|
|
|
85
119
|
itemCountOne: "{{count}}개 항목",
|
|
86
120
|
toggleSidebar: "사이드바 전환",
|
|
87
121
|
package: "패키지",
|
|
122
|
+
done: "완료",
|
|
123
|
+
editInStudio: "Studio에서 편집",
|
|
124
|
+
record: "레코드",
|
|
125
|
+
retry: "다시 시도",
|
|
126
|
+
printDialogHint: "브라우저의 인쇄 대화 상자를 엽니다(PDF 내보내기가 아닙니다)",
|
|
88
127
|
},
|
|
89
128
|
actions: {
|
|
90
129
|
decisionOutput: {
|
|
@@ -116,6 +155,9 @@ const ko = {
|
|
|
116
155
|
submitFailed: "저장하지 못했습니다. 다시 시도해 주세요.",
|
|
117
156
|
discardTitle: "변경 내용을 버릴까요?",
|
|
118
157
|
discardMessage: "저장하지 않은 변경 내용이 있습니다. 지금 이 양식을 닫으면 편집 내용이 사라집니다.",
|
|
158
|
+
// objectui#4024 — the create/edit dialog's `sr-only` accessible
|
|
159
|
+
// description, used when the form declares no `description` of its own.
|
|
160
|
+
dialogDescriptionFallback: "양식 필드를 작성한 다음 제출하거나 취소하세요.",
|
|
119
161
|
keepEditing: "계속 편집",
|
|
120
162
|
discard: "버리기",
|
|
121
163
|
conflictTitle: "저장 충돌",
|
|
@@ -184,7 +226,7 @@ const ko = {
|
|
|
184
226
|
richText: {
|
|
185
227
|
format: "형식: {{format}}",
|
|
186
228
|
basicEditorHint: "서식 있는 텍스트 편집기 (기본)",
|
|
187
|
-
placeholder: "내용을
|
|
229
|
+
placeholder: "내용을 입력하세요…",
|
|
188
230
|
},
|
|
189
231
|
options: {
|
|
190
232
|
empty: "선택할 수 있는 옵션이 없습니다",
|
|
@@ -220,6 +262,14 @@ const ko = {
|
|
|
220
262
|
tags: {
|
|
221
263
|
placeholder: "입력 후 Enter 키로 추가…",
|
|
222
264
|
},
|
|
265
|
+
// objectui#4028 — `AddressField`'s five sub-labels.
|
|
266
|
+
address: {
|
|
267
|
+
street: "도로명 주소",
|
|
268
|
+
city: "시/군/구",
|
|
269
|
+
state: "시/도",
|
|
270
|
+
postalCode: "우편번호",
|
|
271
|
+
country: "국가",
|
|
272
|
+
},
|
|
223
273
|
textarea: {
|
|
224
274
|
characterCount: "글자 수: {{max}}자 중 {{count}}자",
|
|
225
275
|
charactersRemaining: "{{count}}자 남음",
|
|
@@ -250,7 +300,7 @@ const ko = {
|
|
|
250
300
|
saveAll: "모두 저장 ({{count}})",
|
|
251
301
|
addRecord: "레코드 추가",
|
|
252
302
|
open: "열기",
|
|
253
|
-
search: "
|
|
303
|
+
search: "검색…",
|
|
254
304
|
modified: "{{count}}개 행 수정됨",
|
|
255
305
|
saveFailed: '저장 실패',
|
|
256
306
|
selected: "{{count}}개 선택됨",
|
|
@@ -294,7 +344,7 @@ const ko = {
|
|
|
294
344
|
delete: "삭제",
|
|
295
345
|
export: "내보내기",
|
|
296
346
|
exportAs: "{{format}}으로 내보내기",
|
|
297
|
-
loading: "그리드 로딩
|
|
347
|
+
loading: "그리드 로딩 중…",
|
|
298
348
|
errorLoading: "그리드 로딩 오류",
|
|
299
349
|
pullToRefresh: "당겨서 새로고침",
|
|
300
350
|
refreshing: "새로고침 중…",
|
|
@@ -305,6 +355,22 @@ const ko = {
|
|
|
305
355
|
yes: "예",
|
|
306
356
|
no: "아니요",
|
|
307
357
|
systemFields: "시스템",
|
|
358
|
+
// objectui#4024 — column-footer aggregate prefixes, keyed by the spec's
|
|
359
|
+
// `ColumnSummary` vocabulary. `pattern` owns the label/value join so this
|
|
360
|
+
// pack controls its own separator and word order.
|
|
361
|
+
summary: {
|
|
362
|
+
pattern: "{{label}}: {{value}}",
|
|
363
|
+
count: "개수",
|
|
364
|
+
countEmpty: "빈 값",
|
|
365
|
+
countFilled: "채워짐",
|
|
366
|
+
countUnique: "고유",
|
|
367
|
+
percentEmpty: "빈 값",
|
|
368
|
+
percentFilled: "채워짐",
|
|
369
|
+
sum: "합계",
|
|
370
|
+
avg: "평균",
|
|
371
|
+
min: "최소",
|
|
372
|
+
max: "최대",
|
|
373
|
+
},
|
|
308
374
|
toolbar: {
|
|
309
375
|
densityMode: "밀도",
|
|
310
376
|
densityCompact: "컴팩트",
|
|
@@ -418,12 +484,12 @@ const ko = {
|
|
|
418
484
|
templateName: "템플릿 이름",
|
|
419
485
|
save: "저장",
|
|
420
486
|
deleteTemplate: "템플릿 삭제",
|
|
421
|
-
savedMapping: '
|
|
422
|
-
chooseSavedMapping: '
|
|
423
|
-
manualMapping: '—
|
|
424
|
-
transform: '
|
|
425
|
-
savedMappingHint: '
|
|
426
|
-
savedMappingPreviewNote: '
|
|
487
|
+
savedMapping: '저장된 매핑:',
|
|
488
|
+
chooseSavedMapping: '저장된 매핑 선택…',
|
|
489
|
+
manualMapping: '— 열 수동 매핑 —',
|
|
490
|
+
transform: '변환',
|
|
491
|
+
savedMappingHint: '매핑 "{{name}}"은(는) 서버에서 이름 변경 + 변환 + 형 변환을 적용합니다. 열 매핑은 읽기 전용입니다.',
|
|
492
|
+
savedMappingPreviewNote: '미리보기에는 원본 열이 표시됩니다. 가져올 때 매핑 "{{name}}"이(가) 서버에서 이름 변경, 변환, 형 변환을 적용합니다.',
|
|
427
493
|
csvColumn: "열",
|
|
428
494
|
mapsTo: "매핑 대상",
|
|
429
495
|
typeMismatch: "{{type}}인 것 같습니다",
|
|
@@ -483,6 +549,8 @@ const ko = {
|
|
|
483
549
|
loadErrorUnauthorizedMessage: "세션이 만료되었거나 로그아웃되었습니다. 다시 로그인한 후 확인하세요.",
|
|
484
550
|
loadErrorRejectedTitle: "이 뷰의 쿼리가 거부되었습니다",
|
|
485
551
|
loadErrorRejectedMessage: "서버가 이 뷰의 필터 또는 쿼리 옵션을 처리하지 못했습니다. 필터를 지우면 대부분 해결됩니다. 뷰가 이 상태로 저장되어 있다면 관리자가 수정해야 합니다.",
|
|
552
|
+
loadErrorApiDisabledTitle: "이 객체는 API로 제공되지 않습니다",
|
|
553
|
+
loadErrorApiDisabledMessage: "객체가 API에 공개되어 있지 않아 이 페이지는 레코드를 불러올 수 없습니다. 이는 권한이 아니라 객체 자체의 설정입니다. 관리자가 API 액세스를 활성화해야 이 페이지가 동작합니다.",
|
|
486
554
|
retry: "다시 시도",
|
|
487
555
|
managedBy: {
|
|
488
556
|
system: {
|
|
@@ -507,7 +575,7 @@ const ko = {
|
|
|
507
575
|
},
|
|
508
576
|
},
|
|
509
577
|
refresh: "새로고침",
|
|
510
|
-
loading:
|
|
578
|
+
loading: "레코드 로딩 중…",
|
|
511
579
|
recordCount: "{{count}}개 레코드",
|
|
512
580
|
recordCountOne: "{{count}}개 레코드",
|
|
513
581
|
addRecord: "레코드 추가",
|
|
@@ -519,7 +587,8 @@ const ko = {
|
|
|
519
587
|
sort: "정렬",
|
|
520
588
|
sortRecords: "레코드 정렬",
|
|
521
589
|
sortByIdSuffix: "(ID 기준)",
|
|
522
|
-
sortRelationalHint: "다른 레코드를 참조하는 열은 목록에 없습니다. 저장된 ID로만 정렬할 수 있고 셀에 표시되는 이름으로는 정렬할 수 없습니다. 그 이름으로 정렬하려면 이름을
|
|
590
|
+
sortRelationalHint: "다른 레코드를 참조하는 열은 목록에 없습니다. 저장된 ID로만 정렬할 수 있고 셀에 표시되는 이름으로는 정렬할 수 없습니다. 그 이름으로 정렬하려면 이름을 이 오브젝트에 비정규화하여 원본이 변경될 때 기록되는 저장 필드로 만든 다음, 그 필드로 정렬하세요. 수식 필드는 안 됩니다. 수식은 가상이라 저장되는 열이 없어 서버가 정렬을 거부합니다.",
|
|
591
|
+
resetSortToDefault: "뷰 기본 정렬로 재설정",
|
|
523
592
|
group: "그룹",
|
|
524
593
|
groupBy: "그룹 기준",
|
|
525
594
|
export: "내보내기",
|
|
@@ -577,13 +646,16 @@ const ko = {
|
|
|
577
646
|
},
|
|
578
647
|
kanban: {
|
|
579
648
|
uncategorized: "미분류",
|
|
649
|
+
columns: "열",
|
|
580
650
|
addCard: "카드 추가",
|
|
581
651
|
addColumn: "열 추가",
|
|
582
652
|
moveCard: "카드 이동",
|
|
583
653
|
deleteCard: "카드 삭제",
|
|
584
654
|
deleteColumn: "열 삭제",
|
|
585
655
|
noCards: "카드 없음",
|
|
586
|
-
cardTitlePlaceholder: "카드 제목
|
|
656
|
+
cardTitlePlaceholder: "카드 제목 입력…",
|
|
657
|
+
requiredFieldsTitle: "필수 항목 입력",
|
|
658
|
+
requiredFieldsDescription: "이 이동으로 아래 항목이 필수가 됩니다. 입력한 후 계속하세요.",
|
|
587
659
|
},
|
|
588
660
|
timeline: {
|
|
589
661
|
bucket: {
|
|
@@ -596,6 +668,13 @@ const ko = {
|
|
|
596
668
|
noDate: "날짜 없음",
|
|
597
669
|
unassigned: "미할당",
|
|
598
670
|
},
|
|
671
|
+
scale: {
|
|
672
|
+
week: "{{n}}주차",
|
|
673
|
+
quarter: "{{year}}년 {{quarter}}분기",
|
|
674
|
+
},
|
|
675
|
+
gantt: {
|
|
676
|
+
rowLabel: "항목",
|
|
677
|
+
},
|
|
599
678
|
},
|
|
600
679
|
gantt: {
|
|
601
680
|
viewMode: {
|
|
@@ -642,6 +721,18 @@ const ko = {
|
|
|
642
721
|
ff: "종료 → 종료",
|
|
643
722
|
sf: "시작 → 종료",
|
|
644
723
|
},
|
|
724
|
+
linkEnd: {
|
|
725
|
+
start: "시작",
|
|
726
|
+
end: "종료",
|
|
727
|
+
},
|
|
728
|
+
link: {
|
|
729
|
+
rejected: {
|
|
730
|
+
self: "작업은 자기 자신에 종속될 수 없습니다.",
|
|
731
|
+
locked: "이 행은 잠겨 있어 새 종속성을 추가할 수 없습니다.",
|
|
732
|
+
group: "요약 행은 종속 대상이 될 수 없습니다. 하위 작업에 연결하세요.",
|
|
733
|
+
cycle: "이 연결은 순환 종속성을 만듭니다.",
|
|
734
|
+
},
|
|
735
|
+
},
|
|
645
736
|
conflict: {
|
|
646
737
|
title: "일정 충돌",
|
|
647
738
|
body: "이 이동은 종속성 제약과 충돌합니다. 영향을 받는 작업 {{count}}건의 일정을 자동으로 조정할까요?",
|
|
@@ -650,8 +741,8 @@ const ko = {
|
|
|
650
741
|
},
|
|
651
742
|
autoScheduleDlg: {
|
|
652
743
|
title: "자동 일정 조정",
|
|
653
|
-
body: "종속성 연결을 충족하도록 작업 {count}건을 뒤로 미룰까요?",
|
|
654
|
-
skipped: "잠긴 작업 {count}건도 연결을 위반하지만 건너뛰었습니다.",
|
|
744
|
+
body: "종속성 연결을 충족하도록 작업 {{count}}건을 뒤로 미룰까요?",
|
|
745
|
+
skipped: "잠긴 작업 {{count}}건도 연결을 위반하지만 건너뛰었습니다.",
|
|
655
746
|
confirm: "적용",
|
|
656
747
|
cancel: "취소",
|
|
657
748
|
none: "모든 종속성이 충족되었습니다 — 조정할 일정이 없습니다.",
|
|
@@ -688,6 +779,7 @@ const ko = {
|
|
|
688
779
|
exportPng: "PNG로 내보내기",
|
|
689
780
|
exportPdf: "PDF로 내보내기",
|
|
690
781
|
saveLayout: "레이아웃 저장",
|
|
782
|
+
refresh: "새로 고침",
|
|
691
783
|
undo: "실행 취소",
|
|
692
784
|
redo: "다시 실행",
|
|
693
785
|
prevPeriod: "이전 기간",
|
|
@@ -728,11 +820,11 @@ const ko = {
|
|
|
728
820
|
defaultBadge: "기본",
|
|
729
821
|
tabActionsFor: "{{name}}의 보기 작업",
|
|
730
822
|
readonlyAriaLabel: "읽기 전용 보기",
|
|
731
|
-
readonlyTooltip: "시스템 보기 —
|
|
823
|
+
readonlyTooltip: "시스템 보기 — 코드에 정의되어 있으며 읽기 전용입니다.",
|
|
732
824
|
},
|
|
733
825
|
designer: {
|
|
734
|
-
undo:
|
|
735
|
-
redo:
|
|
826
|
+
undo: "실행 취소",
|
|
827
|
+
redo: "다시 실행",
|
|
736
828
|
},
|
|
737
829
|
detail: {
|
|
738
830
|
editInlineHint: "더블클릭하여 편집",
|
|
@@ -772,13 +864,15 @@ const ko = {
|
|
|
772
864
|
relatedRecords: "{{count}}개 레코드",
|
|
773
865
|
relatedRecordOne: "{{count}}개 레코드",
|
|
774
866
|
noRelatedRecords: "관련 레코드를 찾을 수 없습니다",
|
|
775
|
-
loading: "로딩
|
|
867
|
+
loading: "로딩 중…",
|
|
776
868
|
copyToClipboard: "클립보드에 복사",
|
|
777
869
|
copied: "복사됨!",
|
|
778
870
|
deleteConfirmation: "이 레코드를 삭제하시겠습니까?",
|
|
871
|
+
deleted: "레코드가 삭제됨",
|
|
779
872
|
editRecord: "레코드 편집",
|
|
780
873
|
viewAll: "모두 보기",
|
|
781
874
|
new: "새로 만들기",
|
|
875
|
+
add: "추가",
|
|
782
876
|
emptyValue: "—",
|
|
783
877
|
comments: "댓글",
|
|
784
878
|
searchComments: "댓글 검색…",
|
|
@@ -808,6 +902,10 @@ const ko = {
|
|
|
808
902
|
attachmentDownloadDenied: "이 첨부파일을 다운로드할 권한이 없습니다.",
|
|
809
903
|
attachmentAuthRequired: "이 첨부파일을 다운로드하려면 로그인하세요.",
|
|
810
904
|
attachmentPermissionDenied: "이 작업을 수행할 권한이 없습니다.",
|
|
905
|
+
attachmentsAccessDenied: "이 첨부파일에 접근할 권한이 없습니다.",
|
|
906
|
+
attachmentsLoadFailed: "이 레코드의 첨부파일을 불러오지 못했습니다.",
|
|
907
|
+
attachmentsApiUnavailable: "이 객체에서는 첨부 파일 목록을 사용할 수 없습니다.",
|
|
908
|
+
retryLoadAttachments: "다시 시도",
|
|
811
909
|
unifiedDiff: "통합 보기",
|
|
812
910
|
sideBySideDiff: "나란히 보기",
|
|
813
911
|
noChanges: "변경 없음",
|
|
@@ -843,6 +941,7 @@ const ko = {
|
|
|
843
941
|
loadMore: "더 보기",
|
|
844
942
|
edited: "(수정됨)",
|
|
845
943
|
via: "{{source}} 통해",
|
|
944
|
+
viewSource: "원본 보기",
|
|
846
945
|
replyCount: "답글 {{count}}개",
|
|
847
946
|
replyCountPlural: "답글 {{count}}개",
|
|
848
947
|
replyPlaceholder: "답글…",
|
|
@@ -858,6 +957,8 @@ const ko = {
|
|
|
858
957
|
writeStrippedTitle: "저장되었지만 일부 필드는 적용되지 않았습니다",
|
|
859
958
|
writeStrippedReadonly: "다음 필드는 읽기 전용이므로 적용되지 않았습니다: {{fields}}",
|
|
860
959
|
writeStrippedByState: "다음 필드는 이 레코드의 현재 상태에서 편집할 수 없으므로 적용되지 않았습니다: {{fields}}",
|
|
960
|
+
writeStrippedPrimaryKey: "다음 필드는 레코드의 식별자이며 저장으로 변경할 수 없으므로 적용되지 않았습니다: {{fields}}",
|
|
961
|
+
writeStrippedUnknownReason: "다음 필드는 서버에서 적용되지 않았습니다: {{fields}}",
|
|
861
962
|
approvalPendingEditable: "승인 진행 중 · 편집 가능",
|
|
862
963
|
approvalPendingTooltip: "이 레코드에 대기 중인 승인 요청이 있지만 이 단계에서는 편집할 수 있습니다",
|
|
863
964
|
approvalProgress: "승인 — {{need}}건 중 {{got}}건",
|
|
@@ -870,6 +971,13 @@ const ko = {
|
|
|
870
971
|
cancelApprovalTooltipUnlocked: "대기 중인 승인 요청 취소",
|
|
871
972
|
cancelApprovalFailed: "승인 취소 실패",
|
|
872
973
|
cancelApprovalUnavailable: "이 데이터 소스에서는 승인 취소가 지원되지 않습니다",
|
|
974
|
+
pathLabel: '레코드 경로',
|
|
975
|
+
pathStageCompleted: '{{stage}}, 완료됨',
|
|
976
|
+
pathStageCurrent: '{{stage}}, 현재 단계',
|
|
977
|
+
pathStageUpcoming: '{{stage}}, 예정',
|
|
978
|
+
pathStageLostCurrent: '{{stage}}, 실패, 현재 단계',
|
|
979
|
+
pathStageLostUpcoming: '{{stage}}, 실패, 도달하지 않음',
|
|
980
|
+
pathStageWonUpcoming: '{{stage}}, 목표 단계, 도달하지 않음',
|
|
873
981
|
linkCopied: "링크가 클립보드에 복사됨",
|
|
874
982
|
linkCopyFailed: "링크 복사 실패",
|
|
875
983
|
cancel: "취소",
|
|
@@ -884,9 +992,11 @@ const ko = {
|
|
|
884
992
|
concurrentUpdateReload: "현재 버전 로드",
|
|
885
993
|
concurrentUpdateOverwrite: "그래도 덮어쓰기",
|
|
886
994
|
concurrentUpdateCancel: "취소",
|
|
995
|
+
concurrentUpdateRecordLabel: "이 레코드",
|
|
887
996
|
openInNewTab: "새 탭에서 열기",
|
|
888
997
|
activity: "활동",
|
|
889
998
|
history: "기록",
|
|
999
|
+
historyEmpty: "아직 기록이 없습니다",
|
|
890
1000
|
editRow: "편집",
|
|
891
1001
|
deleteRow: "삭제",
|
|
892
1002
|
deleteRowConfirmation: "이 레코드를 삭제하시겠습니까?",
|
|
@@ -896,12 +1006,15 @@ const ko = {
|
|
|
896
1006
|
nextPage: "다음",
|
|
897
1007
|
pageOf: "{{total}}페이지 중 {{current}}페이지",
|
|
898
1008
|
sortBy: "정렬 기준",
|
|
899
|
-
filterPlaceholder: "
|
|
1009
|
+
filterPlaceholder: "필터…",
|
|
900
1010
|
highlightFields: "주요 필드",
|
|
901
1011
|
createdBy: "작성자",
|
|
902
1012
|
updatedBy: "업데이트한 사람",
|
|
903
1013
|
created: "작성됨",
|
|
904
1014
|
updated: "업데이트됨",
|
|
1015
|
+
// objectui#3863 — base key. ko has a single plural category (`other`), so this
|
|
1016
|
+
// slot is unreachable here and equals `_other` for key-set parity.
|
|
1017
|
+
showEmptyRelated: "+ {{count}}개 비어 있음",
|
|
905
1018
|
showEmptyRelated_one: "+ {{count}}개 비어 있음",
|
|
906
1019
|
showEmptyRelated_other: "+ {{count}}개 비어 있음",
|
|
907
1020
|
copyEmail: "이메일 복사",
|
|
@@ -913,7 +1026,8 @@ const ko = {
|
|
|
913
1026
|
},
|
|
914
1027
|
chart: {
|
|
915
1028
|
noData: "차트 데이터가 없습니다",
|
|
916
|
-
loading: "차트 로딩
|
|
1029
|
+
loading: "차트 로딩 중…",
|
|
1030
|
+
nullCategory: "(미지정)",
|
|
917
1031
|
},
|
|
918
1032
|
map: {
|
|
919
1033
|
searchLocations: "위치 검색…",
|
|
@@ -922,68 +1036,9 @@ const ko = {
|
|
|
922
1036
|
invalidCoordinates: "좌표가 누락되었거나 유효하지 않아 {{count}}개 레코드가 지도에서 제외되었습니다.",
|
|
923
1037
|
invalidCoordinatesPlural: "좌표가 누락되었거나 유효하지 않아 {{count}}개 레코드가 지도에서 제외되었습니다.",
|
|
924
1038
|
},
|
|
925
|
-
workflow: {
|
|
926
|
-
draft: "초안",
|
|
927
|
-
active: "활성",
|
|
928
|
-
paused: "일시 중지",
|
|
929
|
-
completed: "완료",
|
|
930
|
-
cancelled: "취소됨",
|
|
931
|
-
save: "저장",
|
|
932
|
-
publish: "게시",
|
|
933
|
-
addNode: "노드 추가",
|
|
934
|
-
workflowFlow: "워크플로우",
|
|
935
|
-
properties: "속성",
|
|
936
|
-
connections: "연결",
|
|
937
|
-
quickConnect: "빠른 연결",
|
|
938
|
-
fromPlaceholder: "시작...",
|
|
939
|
-
toPlaceholder: "종료...",
|
|
940
|
-
connect: "연결",
|
|
941
|
-
label: "라벨",
|
|
942
|
-
type: "유형",
|
|
943
|
-
description: "설명",
|
|
944
|
-
assignee: "담당자",
|
|
945
|
-
assigneeType: "담당자 유형",
|
|
946
|
-
user: "사용자",
|
|
947
|
-
role: "역할",
|
|
948
|
-
group: "그룹",
|
|
949
|
-
expression: "수식",
|
|
950
|
-
timeoutMinutes: "제한 시간(분)",
|
|
951
|
-
selectNodeToEdit: "속성을 편집할 노드를 선택하세요",
|
|
952
|
-
workflowTitle: "워크플로우 제목",
|
|
953
|
-
newWorkflow: "새 워크플로우",
|
|
954
|
-
outConnections: "{{count}}개 출력",
|
|
955
|
-
start: "시작",
|
|
956
|
-
end: "종료",
|
|
957
|
-
task: "작업",
|
|
958
|
-
userTask: "사용자 작업",
|
|
959
|
-
serviceTask: "서비스 작업",
|
|
960
|
-
scriptTask: "스크립트 작업",
|
|
961
|
-
approval: "승인",
|
|
962
|
-
condition: "조건",
|
|
963
|
-
parallelGateway: "병렬 게이트웨이",
|
|
964
|
-
joinGateway: "합류 게이트웨이",
|
|
965
|
-
boundaryEvent: "경계 이벤트",
|
|
966
|
-
delay: "지연",
|
|
967
|
-
notification: "알림",
|
|
968
|
-
webhook: "Webhook",
|
|
969
|
-
allowConcurrency: "허용 (동시 실행)",
|
|
970
|
-
forbidConcurrency: "금지 (새 작업 건너뛰기)",
|
|
971
|
-
replaceConcurrency: "대체 (기존 취소)",
|
|
972
|
-
queueConcurrency: "대기열 (현재 완료 후 실행)",
|
|
973
|
-
conditionEvent: "조건",
|
|
974
|
-
manualEvent: "수동",
|
|
975
|
-
webhookEvent: "Webhook",
|
|
976
|
-
timerEvent: "타이머",
|
|
977
|
-
signalEvent: "시그널",
|
|
978
|
-
versionHistory: "버전 기록",
|
|
979
|
-
importBpmn: "BPMN 가져오기",
|
|
980
|
-
exportBpmn: "BPMN 내보내기",
|
|
981
|
-
undo: "실행 취소",
|
|
982
|
-
redo: "다시 실행",
|
|
983
|
-
resetZoom: "확대/축소 초기화",
|
|
984
|
-
},
|
|
985
1039
|
dashboard: {
|
|
986
1040
|
noRows: "행 없음",
|
|
1041
|
+
loading: "로딩 중…",
|
|
987
1042
|
pickMeasures: "이 데이터셋 위젯의 측정값(값)을 선택하세요.",
|
|
988
1043
|
datasetUnsupported: "이 데이터 소스는 데이터셋 쿼리를 지원하지 않습니다.",
|
|
989
1044
|
details: "세부 정보",
|
|
@@ -1020,6 +1075,105 @@ const ko = {
|
|
|
1020
1075
|
total: "합계",
|
|
1021
1076
|
noDataAvailable: "사용 가능한 데이터 없음",
|
|
1022
1077
|
noDataSourceFor: "데이터 소스 없음:",
|
|
1078
|
+
config: {
|
|
1079
|
+
breadcrumb: {
|
|
1080
|
+
dashboard: "대시보드",
|
|
1081
|
+
configuration: "구성",
|
|
1082
|
+
widget: "위젯",
|
|
1083
|
+
chart: "차트",
|
|
1084
|
+
table: "테이블",
|
|
1085
|
+
pivotTable: "피벗 테이블",
|
|
1086
|
+
},
|
|
1087
|
+
section: {
|
|
1088
|
+
general: "일반",
|
|
1089
|
+
layout: "레이아웃",
|
|
1090
|
+
data: "데이터",
|
|
1091
|
+
dataBinding: "데이터 바인딩",
|
|
1092
|
+
appearance: "모양",
|
|
1093
|
+
},
|
|
1094
|
+
field: {
|
|
1095
|
+
title: "제목",
|
|
1096
|
+
description: "설명",
|
|
1097
|
+
columns: "열",
|
|
1098
|
+
gap: "간격",
|
|
1099
|
+
rowHeight: "행 높이(px)",
|
|
1100
|
+
autoRefresh: "자동 새로고침",
|
|
1101
|
+
showDescription: "설명 표시",
|
|
1102
|
+
theme: "테마",
|
|
1103
|
+
widgetType: "위젯 유형",
|
|
1104
|
+
colorVariant: "색상 변형",
|
|
1105
|
+
dataset: "데이터 세트",
|
|
1106
|
+
dimensions: "차원",
|
|
1107
|
+
values: "값",
|
|
1108
|
+
width: "너비(열)",
|
|
1109
|
+
height: "높이(행)",
|
|
1110
|
+
},
|
|
1111
|
+
placeholder: {
|
|
1112
|
+
dashboardTitle: "대시보드 제목",
|
|
1113
|
+
dashboardDescription: "제목 아래에 표시되는 간단한 요약",
|
|
1114
|
+
widgetTitle: "위젯 제목",
|
|
1115
|
+
widgetDescription: "위젯 설명",
|
|
1116
|
+
datasetName: "데이터 세트 이름",
|
|
1117
|
+
selectDataset: "데이터 세트 선택…",
|
|
1118
|
+
searchDatasets: "데이터 세트 검색…",
|
|
1119
|
+
addDimension: "차원 추가…",
|
|
1120
|
+
addMeasure: "측정값 추가…",
|
|
1121
|
+
searchMembers: "검색…",
|
|
1122
|
+
},
|
|
1123
|
+
empty: {
|
|
1124
|
+
datasets: "데이터 세트를 찾을 수 없습니다.",
|
|
1125
|
+
dimensions: "선택된 차원이 없습니다.",
|
|
1126
|
+
measures: "선택된 측정값이 없습니다.",
|
|
1127
|
+
nothingToAdd: "추가할 항목이 없습니다.",
|
|
1128
|
+
},
|
|
1129
|
+
help: {
|
|
1130
|
+
dataset: "이 위젯이 바인딩하는 시맨틱 레이어 데이터 세트(ADR-0021).",
|
|
1131
|
+
dimensions: "이러한 데이터 세트 차원으로 값을 그룹화/분할합니다.",
|
|
1132
|
+
dimensionsPivot: "그룹화/분할 필드입니다. 마지막 차원은 열로 가로 확장됩니다.",
|
|
1133
|
+
values: "표시할 데이터 세트의 측정값(하나 이상).",
|
|
1134
|
+
},
|
|
1135
|
+
action: {
|
|
1136
|
+
add: "추가",
|
|
1137
|
+
remove: "{{name}} 제거",
|
|
1138
|
+
},
|
|
1139
|
+
refresh: {
|
|
1140
|
+
off: "끄기",
|
|
1141
|
+
every30s: "30초마다",
|
|
1142
|
+
every1m: "1분마다",
|
|
1143
|
+
every5m: "5분마다",
|
|
1144
|
+
every15m: "15분마다",
|
|
1145
|
+
every30m: "30분마다",
|
|
1146
|
+
every1h: "1시간마다",
|
|
1147
|
+
},
|
|
1148
|
+
themeOption: {
|
|
1149
|
+
light: "라이트",
|
|
1150
|
+
dark: "다크",
|
|
1151
|
+
auto: "자동",
|
|
1152
|
+
},
|
|
1153
|
+
widgetType: {
|
|
1154
|
+
metric: "지표",
|
|
1155
|
+
bar: "막대 차트",
|
|
1156
|
+
horizontalBar: "가로 막대",
|
|
1157
|
+
line: "꺾은선형 차트",
|
|
1158
|
+
pie: "원형 차트",
|
|
1159
|
+
donut: "도넛 차트",
|
|
1160
|
+
area: "영역 차트",
|
|
1161
|
+
scatter: "분산형 차트",
|
|
1162
|
+
funnel: "퍼널",
|
|
1163
|
+
table: "테이블",
|
|
1164
|
+
pivot: "피벗 테이블",
|
|
1165
|
+
},
|
|
1166
|
+
color: {
|
|
1167
|
+
default: "기본",
|
|
1168
|
+
blue: "파랑",
|
|
1169
|
+
teal: "청록",
|
|
1170
|
+
orange: "주황",
|
|
1171
|
+
purple: "보라",
|
|
1172
|
+
success: "성공",
|
|
1173
|
+
warning: "경고",
|
|
1174
|
+
danger: "위험",
|
|
1175
|
+
},
|
|
1176
|
+
},
|
|
1023
1177
|
trend: {
|
|
1024
1178
|
vsLastQuarter: "전분기 대비",
|
|
1025
1179
|
vsLastMonth: "전월 대비",
|
|
@@ -1029,24 +1183,6 @@ const ko = {
|
|
|
1029
1183
|
vsPreviousPeriod: "이전 기간 대비",
|
|
1030
1184
|
},
|
|
1031
1185
|
},
|
|
1032
|
-
configPanel: {
|
|
1033
|
-
save: "저장",
|
|
1034
|
-
discard: "취소",
|
|
1035
|
-
close: "닫기",
|
|
1036
|
-
layout: "레이아웃",
|
|
1037
|
-
columns: "열",
|
|
1038
|
-
gap: "간격",
|
|
1039
|
-
rowHeight: "행 높이",
|
|
1040
|
-
data: "데이터",
|
|
1041
|
-
refreshInterval: "새로고침 간격",
|
|
1042
|
-
appearance: "모양",
|
|
1043
|
-
title: "제목",
|
|
1044
|
-
showDescription: "설명 표시",
|
|
1045
|
-
theme: "테마",
|
|
1046
|
-
configuration: "구성",
|
|
1047
|
-
general: "일반",
|
|
1048
|
-
advanced: "고급",
|
|
1049
|
-
},
|
|
1050
1186
|
appDesigner: {
|
|
1051
1187
|
createApp: "앱 만들기",
|
|
1052
1188
|
editApp: "앱 편집",
|
|
@@ -1077,7 +1213,7 @@ const ko = {
|
|
|
1077
1213
|
faviconUrl: "Favicon URL",
|
|
1078
1214
|
preview: "미리보기",
|
|
1079
1215
|
complete: "완료",
|
|
1080
|
-
snakeCaseHint: "
|
|
1216
|
+
snakeCaseHint: "snake_case 형식이어야 합니다 (예: my_app)",
|
|
1081
1217
|
modeEdit: "편집",
|
|
1082
1218
|
modePreview: "미리보기",
|
|
1083
1219
|
modeCode: "코드",
|
|
@@ -1097,8 +1233,6 @@ const ko = {
|
|
|
1097
1233
|
showSort: "정렬 표시",
|
|
1098
1234
|
appearance: "외관",
|
|
1099
1235
|
rowHeight: "행 높이",
|
|
1100
|
-
stripedRows: "줄무늬 행",
|
|
1101
|
-
bordered: "테두리",
|
|
1102
1236
|
livePreview: "실시간 미리보기",
|
|
1103
1237
|
stepBasicDesc: "이름, 제목 및 레이아웃",
|
|
1104
1238
|
stepObjectsDesc: "비즈니스 객체 선택",
|
|
@@ -1212,7 +1346,6 @@ const ko = {
|
|
|
1212
1346
|
unique: "고유",
|
|
1213
1347
|
readOnly: "읽기 전용",
|
|
1214
1348
|
hidden: "숨김",
|
|
1215
|
-
indexed: "인덱스됨",
|
|
1216
1349
|
externalId: "외부 ID",
|
|
1217
1350
|
trackHistory: "기록 추적",
|
|
1218
1351
|
defaultValue: "기본값",
|
|
@@ -1241,6 +1374,7 @@ const ko = {
|
|
|
1241
1374
|
},
|
|
1242
1375
|
},
|
|
1243
1376
|
console: {
|
|
1377
|
+
saveAdvisoryTitle: "저장되었습니다 — 작성 검사에서 {{count}}건의 권장 사항이 발견되었습니다",
|
|
1244
1378
|
settingsHub: {
|
|
1245
1379
|
title: "설정",
|
|
1246
1380
|
subtitle: "워크스페이스, 연동, 기능 플래그를 구성합니다.",
|
|
@@ -1285,6 +1419,13 @@ const ko = {
|
|
|
1285
1419
|
passwordsDownload: "CSV 다운로드",
|
|
1286
1420
|
},
|
|
1287
1421
|
ai: {
|
|
1422
|
+
pendingDrafts: {
|
|
1423
|
+
count: "게시되지 않은 변경이 {{count}}건 있습니다 — 사용자에게는 보이지 않습니다.",
|
|
1424
|
+
publish: "게시",
|
|
1425
|
+
published: "대기 중인 변경 사항이 모두 반영되었습니다.",
|
|
1426
|
+
failed: "게시에 실패했습니다.",
|
|
1427
|
+
publishedWithFindings: "게시했지만 런타임 프로브에서 문제가 보고되었습니다: {{detail}}",
|
|
1428
|
+
},
|
|
1288
1429
|
usage: {
|
|
1289
1430
|
title: "AI 사용량",
|
|
1290
1431
|
meterBuild: "빌드",
|
|
@@ -1307,7 +1448,7 @@ const ko = {
|
|
|
1307
1448
|
shareTitle: "이 대화 공유",
|
|
1308
1449
|
shareDisabledTitle: "공유하려면 먼저 대화를 시작하세요",
|
|
1309
1450
|
newChat: "새로 만들기",
|
|
1310
|
-
searchChats: "채팅
|
|
1451
|
+
searchChats: "채팅 검색…",
|
|
1311
1452
|
noChatsYet: "아직 채팅이 없습니다",
|
|
1312
1453
|
noChatsDescription: "새 대화를 시작하면 여기에 표시됩니다.",
|
|
1313
1454
|
noMatchingChats: "일치하는 채팅이 없습니다.",
|
|
@@ -1316,18 +1457,18 @@ const ko = {
|
|
|
1316
1457
|
deleteConversation: "대화 삭제",
|
|
1317
1458
|
saveRename: "이름 저장",
|
|
1318
1459
|
cancelRename: "이름 변경 취소",
|
|
1319
|
-
loadingHistory: "대화 기록을 불러오는
|
|
1460
|
+
loadingHistory: "대화 기록을 불러오는 중…",
|
|
1320
1461
|
conversationReady: "대화 준비 완료",
|
|
1321
1462
|
preparingConversation: "새 대화를 준비하는 중",
|
|
1322
1463
|
offlineDemoMode: "오프라인 데모 모드 — 에이전트 목록을 사용할 수 없습니다",
|
|
1323
1464
|
sendFailedRateLimited: "메시지를 너무 빠르게 보내고 있습니다. 메시지는 아래에 보관되어 있습니다 — 잠시 후 다시 시도하세요.",
|
|
1324
1465
|
sendFailedGeneric: "메시지를 보내지 못했습니다. 아래에 보관되어 있습니다 — 다시 시도해 주세요.",
|
|
1325
|
-
askAgent: "{{agent}}에게
|
|
1466
|
+
askAgent: "{{agent}}에게 질문…",
|
|
1326
1467
|
assistant: "어시스턴트",
|
|
1327
1468
|
liveCanvas: "실시간 미리보기 — {{app}}(초안)",
|
|
1328
1469
|
liveCanvasUnlisted: "실시간 앱 — {{app}}(게시 전까지 비공개)",
|
|
1329
|
-
loadingAgents: "에이전트를 불러오는
|
|
1330
|
-
askAnything: "무엇이든
|
|
1470
|
+
loadingAgents: "에이전트를 불러오는 중…",
|
|
1471
|
+
askAnything: "무엇이든 물어보세요…",
|
|
1331
1472
|
emptyTitle: "대화 시작하기",
|
|
1332
1473
|
emptyDescription: "무엇이든 물어보세요 — 어시스턴트는 현재 앱 컨텍스트에 접근할 수 있습니다.",
|
|
1333
1474
|
switchAssistant: "어시스턴트 전환",
|
|
@@ -1420,6 +1561,11 @@ const ko = {
|
|
|
1420
1561
|
changesConfirmed: "확인됨",
|
|
1421
1562
|
changesConfirm: "변경 확정",
|
|
1422
1563
|
changesConfirmHint: "회신하여 이 변경을 확정하거나 조정하세요.",
|
|
1564
|
+
changesApplying: "적용 중…",
|
|
1565
|
+
changesApplied: "적용됨",
|
|
1566
|
+
changesDrafted: "초안으로 저장됨",
|
|
1567
|
+
changesFailed: "적용되지 않음",
|
|
1568
|
+
discussing: "논의 중: {{target}}",
|
|
1423
1569
|
changeVerb: {
|
|
1424
1570
|
createObject: "객체 생성",
|
|
1425
1571
|
addField: "필드 추가",
|
|
@@ -1430,9 +1576,60 @@ const ko = {
|
|
|
1430
1576
|
createSeed: "샘플 데이터 생성",
|
|
1431
1577
|
createPackage: "앱 패키지 생성",
|
|
1432
1578
|
},
|
|
1579
|
+
// objectui#3546 slice four — the AI console surfaces: the /ai chat page's app switcher,
|
|
1580
|
+
// connection banner and plan/publish cards, the ChatDock chrome, and the
|
|
1581
|
+
// conversation-list date buckets. `group.*` is the template-key family
|
|
1582
|
+
// `console.ai.group.${key}` (ConversationsSidebar), enumerated from the
|
|
1583
|
+
// ConversationGroupKey union — all five members, no wildcard.
|
|
1584
|
+
collapseToDock: "사이드 패널로 접기",
|
|
1585
|
+
switchApp: "앱 전환",
|
|
1586
|
+
switchAppLabel: "앱별 빌드 대화",
|
|
1587
|
+
newApp: "새 앱",
|
|
1588
|
+
connectionWaiting: "서버를 기다리는 중…",
|
|
1589
|
+
connectionStalled: "계속 처리하는 중…",
|
|
1590
|
+
connectionOffline: "연결이 끊어졌습니다 — 다시 연결하는 중…",
|
|
1591
|
+
designingPlan: "앱을 설계하는 중…",
|
|
1592
|
+
designingPlanHint: {
|
|
1593
|
+
data: "추적할 데이터를 정리하는 중…",
|
|
1594
|
+
objects: "객체와 필드를 구성하는 중…",
|
|
1595
|
+
relations: "관련 레코드를 연결하는 중…",
|
|
1596
|
+
lookups: "관계와 조회 필드를 설정하는 중…",
|
|
1597
|
+
views: "화면과 뷰를 계획하는 중…",
|
|
1598
|
+
forms: "양식과 목록을 배치하는 중…",
|
|
1599
|
+
defaults: "합리적인 기본값과 검증을 추가하는 중…",
|
|
1600
|
+
dashboard: "추적용 대시보드를 스케치하는 중…",
|
|
1601
|
+
review: "구조가 잘 맞물리는지 다시 확인하는 중…",
|
|
1602
|
+
finalize: "계획을 정리하는 중…",
|
|
1603
|
+
},
|
|
1604
|
+
planBuilding: "빌드 중…",
|
|
1605
|
+
planBuilt: "빌드 완료",
|
|
1606
|
+
planDeferred: "아직 빌드하지 않음",
|
|
1607
|
+
planReady: "계획이 준비되었습니다. 지금 빌드하거나 조정할 부분을 알려주세요.",
|
|
1608
|
+
published: "게시했습니다",
|
|
1609
|
+
publishFailed: "게시에 실패했습니다",
|
|
1610
|
+
unavailableTitle: "AI 어시스턴트를 사용할 수 없습니다",
|
|
1611
|
+
unavailableDescription: "이 배포에는 AI 어시스턴트가 활성화되어 있지 않습니다. 나머지 기능은 정상적으로 작동합니다.",
|
|
1612
|
+
unavailableError: "AI 서비스에 연결할 수 없습니다. 일시적으로 오프라인일 수 있습니다 — 다시 시도하거나 홈으로 돌아가세요.",
|
|
1613
|
+
unavailableRetry: "다시 시도",
|
|
1614
|
+
unavailableHome: "홈으로 돌아가기",
|
|
1615
|
+
dock: {
|
|
1616
|
+
title: "어시스턴트",
|
|
1617
|
+
description: "AI 어시스턴트 채팅",
|
|
1618
|
+
resize: "채팅 크기 조정",
|
|
1619
|
+
collapse: "채팅 접기",
|
|
1620
|
+
maximize: "전체 페이지로 열기",
|
|
1621
|
+
open: "어시스턴트 열기",
|
|
1622
|
+
},
|
|
1623
|
+
group: {
|
|
1624
|
+
today: "오늘",
|
|
1625
|
+
yesterday: "어제",
|
|
1626
|
+
previous7Days: "지난 7일",
|
|
1627
|
+
previous30Days: "지난 30일",
|
|
1628
|
+
older: "이전",
|
|
1629
|
+
},
|
|
1433
1630
|
},
|
|
1434
1631
|
title: "ObjectStack 콘솔",
|
|
1435
|
-
initializing: "애플리케이션 초기화
|
|
1632
|
+
initializing: "애플리케이션 초기화 중…",
|
|
1436
1633
|
loadingHint: "새 환경을 설정하는 데 시간이 조금 걸릴 수 있습니다.",
|
|
1437
1634
|
breadcrumb: {
|
|
1438
1635
|
dashboards: "대시보드",
|
|
@@ -1440,6 +1637,31 @@ const ko = {
|
|
|
1440
1637
|
reports: "보고서",
|
|
1441
1638
|
system: "시스템",
|
|
1442
1639
|
},
|
|
1640
|
+
// objectui#4024 — the single-namespace settings screen. Its sibling
|
|
1641
|
+
// `settingsHub` above already resolved through this pack; the view was the
|
|
1642
|
+
// one file still carrying English literals.
|
|
1643
|
+
settingsView: {
|
|
1644
|
+
backToHub: "전체 설정",
|
|
1645
|
+
back: "뒤로",
|
|
1646
|
+
noNamespace: "선택된 네임스페이스가 없습니다.",
|
|
1647
|
+
loadError: "설정을 불러오지 못했습니다",
|
|
1648
|
+
saved: "설정이 저장되었습니다",
|
|
1649
|
+
saveFailed: "저장에 실패했습니다",
|
|
1650
|
+
lockedByEnv: "환경에 의해 잠김: {{key}}",
|
|
1651
|
+
lockedByEnvNoKey: "환경에 의해 잠김",
|
|
1652
|
+
actionSucceeded: "작업 성공",
|
|
1653
|
+
actionFailed: "작업 실패",
|
|
1654
|
+
discard: "버리기",
|
|
1655
|
+
saveChanges: "변경사항 저장",
|
|
1656
|
+
unsavedCount: "저장되지 않은 변경 {{count}}개",
|
|
1657
|
+
unsavedCount_one: "저장되지 않은 변경 {{count}}개",
|
|
1658
|
+
unsavedCount_other: "저장되지 않은 변경 {{count}}개",
|
|
1659
|
+
cryptoRefusalTitle: "이 배포는 시크릿을 암호화할 수 없습니다",
|
|
1660
|
+
cryptoRefusalSubjectSuffix: "은(는) 암호화 대상으로 선언되어 아무것도 기록되지 않았습니다.",
|
|
1661
|
+
cryptoRefusalNoSubject: "암호화 대상으로 선언된 값이 거부되어 아무것도 기록되지 않았습니다.",
|
|
1662
|
+
cryptoRefusalToast: "시크릿을 암호화할 수 없습니다: {{subject}}",
|
|
1663
|
+
cryptoRefusalToastNoSubject: "시크릿을 암호화할 수 없습니다",
|
|
1664
|
+
},
|
|
1443
1665
|
loadingSteps: {
|
|
1444
1666
|
connecting: "데이터 소스에 연결 중",
|
|
1445
1667
|
loadingConfig: "설정 로드 중",
|
|
@@ -1469,6 +1691,7 @@ const ko = {
|
|
|
1469
1691
|
general: "일반",
|
|
1470
1692
|
navigation: "탐색",
|
|
1471
1693
|
dataViews: "데이터 뷰",
|
|
1694
|
+
aiChat: "AI 어시스턴트",
|
|
1472
1695
|
preferences: "환경설정",
|
|
1473
1696
|
},
|
|
1474
1697
|
openCommandPalette: "명령 팔레트 열기",
|
|
@@ -1479,11 +1702,13 @@ const ko = {
|
|
|
1479
1702
|
createRecord: "새 레코드 생성",
|
|
1480
1703
|
refreshData: "데이터 새로고침",
|
|
1481
1704
|
editRecord: "선택한 레코드 편집",
|
|
1705
|
+
newChat: "새 채팅",
|
|
1706
|
+
toggleChatsList: "채팅 목록 전환",
|
|
1482
1707
|
toggleDarkMode: "다크 모드 전환",
|
|
1483
1708
|
},
|
|
1484
1709
|
commandPalette: {
|
|
1485
1710
|
title: "명령 팔레트",
|
|
1486
|
-
placeholder: "명령어를 입력하거나
|
|
1711
|
+
placeholder: "명령어를 입력하거나 검색…",
|
|
1487
1712
|
noResults: "결과를 찾을 수 없습니다.",
|
|
1488
1713
|
objects: "객체",
|
|
1489
1714
|
dashboards: "대시보드",
|
|
@@ -1509,6 +1734,12 @@ const ko = {
|
|
|
1509
1734
|
goHome: "홈으로 이동",
|
|
1510
1735
|
errorDetails: "오류 상세정보 (개발 모드 전용)",
|
|
1511
1736
|
},
|
|
1737
|
+
// objectui#3546 slice four — the console's catch-all route (AppContent `RouteNotFound`).
|
|
1738
|
+
notFound: {
|
|
1739
|
+
title: "페이지를 찾을 수 없습니다",
|
|
1740
|
+
description: "접속한 URL이 이 앱의 어떤 뷰와도 일치하지 않습니다.",
|
|
1741
|
+
back: "뒤로",
|
|
1742
|
+
},
|
|
1512
1743
|
theme: {
|
|
1513
1744
|
toggle: "테마 전환",
|
|
1514
1745
|
light: "라이트",
|
|
@@ -1524,109 +1755,41 @@ const ko = {
|
|
|
1524
1755
|
viewNameHelp: "머신 키(snake_case)입니다. 제목에서 자동으로 채워집니다 — 원하면 수정하세요.",
|
|
1525
1756
|
viewNameRequired: "키를 입력하세요(소문자, 숫자, 밑줄). 비라틴 문자 제목에서는 자동으로 채워지지 않습니다.",
|
|
1526
1757
|
viewNameInvalid: "소문자, 숫자, 밑줄을 사용하고 문자 또는 밑줄로 시작하세요.",
|
|
1527
|
-
systemViewReadonly:
|
|
1528
|
-
|
|
1758
|
+
systemViewReadonly: "시스템 보기는 코드에 정의되어 있어 읽기 전용입니다.",
|
|
1759
|
+
cannotEditMetaView: "이 보기는 코드에 정의된 기본 제공 보기이므로 변경할 수 없습니다.",
|
|
1760
|
+
cannotDeleteMetaView: "이 보기는 코드에 정의된 기본 제공 보기이므로 삭제할 수 없습니다.",
|
|
1761
|
+
expandToPage: "전체 페이지로 열기",
|
|
1529
1762
|
objectNotFound: "객체를 찾을 수 없음",
|
|
1530
1763
|
objectNotFoundDescription: "객체 \"{{objectName}}\"이(가) 현재 구성에 존재하지 않습니다.",
|
|
1531
1764
|
objectNotFoundHint: "앱 탐색 설정을 확인하거나 사이드바에서 다른 객체를 선택하세요.",
|
|
1532
1765
|
filterOrNotSavable: "이 필터는 조건 사이에 OR을 사용하며, 저장된 뷰에는 아직 저장할 수 없습니다. 현재 목록에는 계속 적용됩니다. 뷰에 저장하려면 OR 그룹을 해제하세요.",
|
|
1533
1766
|
filterNestedNotSavable: "이 필터는 중첩된 조건 그룹을 사용하며, 저장된 뷰에는 저장할 수 없습니다. 뷰에 저장하려면 단일 조건 목록으로 펼치세요.",
|
|
1534
1767
|
allRecords: "모든 레코드",
|
|
1535
|
-
exitDesignMode: "디자인 모드 종료",
|
|
1536
|
-
enterDesignMode: "디자인 모드 시작",
|
|
1537
|
-
metadataInspector: "메타데이터 인스펙터",
|
|
1538
|
-
editView: "뷰 편집",
|
|
1539
|
-
addView: "뷰 추가",
|
|
1540
|
-
designTools: "디자인 도구",
|
|
1541
1768
|
new: "새로 만들기",
|
|
1542
1769
|
configureView: "뷰 구성",
|
|
1543
|
-
closePanel: "패널 닫기",
|
|
1544
|
-
page: "페이지",
|
|
1545
|
-
pageConfigHint: "도구 모음, 탐색 및 뷰 셸 설정",
|
|
1546
|
-
listConfigHint: "이 목록 유형의 데이터 렌더링, 열 및 모양",
|
|
1547
|
-
general: "일반",
|
|
1548
|
-
generalHint: "보기 제목, 설명 및 유형",
|
|
1549
1770
|
toolbar: "도구 모음",
|
|
1550
|
-
toolbarHint: "검색, 필터, 정렬, 그룹화 및 밀도 전환",
|
|
1551
1771
|
toolbarEnabledCount: "{{total}}개 중 {{count}}개 활성화",
|
|
1552
|
-
|
|
1553
|
-
navigationHint: "행 클릭 동작 및 상세 보기 설정",
|
|
1554
|
-
records: "레코드",
|
|
1555
|
-
recordsHint: "선택 모드, 레코드 추가 및 인라인 편집",
|
|
1556
|
-
exportPrint: "내보내기 및 인쇄",
|
|
1557
|
-
exportPrintHint: "내보내기 형식, 인쇄 및 레코드 수 표시",
|
|
1558
|
-
showAllFields: "모두 표시",
|
|
1559
|
-
hideAllFields: "모두 숨기기",
|
|
1560
|
-
searchFields: "필드 검색...",
|
|
1772
|
+
searchFields: "필드 검색…",
|
|
1561
1773
|
title: "제목",
|
|
1562
|
-
description: "설명",
|
|
1563
|
-
data: "데이터",
|
|
1564
|
-
source: "소스",
|
|
1565
|
-
columns: "열",
|
|
1566
|
-
filterBy: "필터 기준",
|
|
1567
|
-
sortBy: "정렬 기준",
|
|
1568
|
-
appearance: "외관",
|
|
1569
|
-
showDescription: "설명 표시",
|
|
1570
1774
|
viewType: "뷰 유형",
|
|
1571
|
-
userFilters: "사용자 필터",
|
|
1572
|
-
enableSearch: "검색 활성화",
|
|
1573
|
-
enableFilter: "필터 활성화",
|
|
1574
|
-
enableSort: "정렬 활성화",
|
|
1575
|
-
enableHideFields: "필드 숨기기 활성화",
|
|
1576
|
-
enableGroup: "그룹 활성화",
|
|
1577
|
-
enableColor: "색상 활성화",
|
|
1578
|
-
enableDensity: "밀도 활성화",
|
|
1579
|
-
userActions: "사용자 작업",
|
|
1580
|
-
addRecordViaForm: "양식으로 레코드 추가",
|
|
1581
|
-
advanced: "고급",
|
|
1582
|
-
allowExport: "내보내기 허용",
|
|
1583
1775
|
recordCount: "{{count}}개 레코드",
|
|
1584
|
-
noDescription: "설명 없음",
|
|
1585
|
-
none: "없음",
|
|
1586
|
-
columnsConfigured: "{{count}}개 열",
|
|
1587
1776
|
save: "저장",
|
|
1588
1777
|
discard: "취소",
|
|
1589
1778
|
createView: "뷰 생성",
|
|
1590
1779
|
newView: "새 뷰",
|
|
1591
|
-
typeOptions: "유형 옵션",
|
|
1592
1780
|
groupByField: "그룹화 필드",
|
|
1593
1781
|
startDateField: "시작 날짜 필드",
|
|
1594
1782
|
titleField: "제목 필드",
|
|
1595
1783
|
latitudeField: "위도 필드",
|
|
1596
1784
|
longitudeField: "경도 필드",
|
|
1597
1785
|
imageField: "이미지 필드",
|
|
1598
|
-
|
|
1599
|
-
selectField: "필드 선택...",
|
|
1600
|
-
gridOptionsHint: "그리드 뷰는 위에서 구성된 열을 사용합니다.",
|
|
1786
|
+
selectField: "필드 선택…",
|
|
1601
1787
|
groupBy: "그룹화 기준",
|
|
1602
|
-
prefixField: "접두사 필드",
|
|
1603
|
-
fields: "필드",
|
|
1604
|
-
fieldsVisible: "{{count}}개 표시",
|
|
1605
|
-
sortsCount: "{{count}}개 정렬",
|
|
1606
|
-
filtersCount: "{{count}}개 필터",
|
|
1607
1788
|
endDateField: "종료 날짜 필드",
|
|
1608
|
-
color: "색상",
|
|
1609
|
-
fieldTextColor: "필드 텍스트 색상",
|
|
1610
|
-
rowHeight: "행 높이",
|
|
1611
|
-
wrapHeaders: "헤더 줄바꿈",
|
|
1612
|
-
showFieldDescriptions: "필드 설명 표시",
|
|
1613
|
-
collapseAllByDefault: "기본적으로 모두 접기",
|
|
1614
|
-
striped: "줄무늬 행",
|
|
1615
|
-
bordered: "테두리 셀",
|
|
1616
|
-
inlineEdit: "인라인으로 레코드 편집",
|
|
1617
|
-
addDeleteRecordsInline: "인라인으로 레코드 추가/삭제",
|
|
1618
|
-
clickIntoRecordDetails: "레코드 상세 보기 클릭",
|
|
1619
|
-
navigationMode: "탐색 모드",
|
|
1620
|
-
navigationWidth: "탐색 너비",
|
|
1621
|
-
navigationWidthHint: "서랍, 모달, 분할 탐색 모드에서 사용 가능",
|
|
1622
|
-
openNewTab: "새 탭에서 열기",
|
|
1623
|
-
openNewTabHint: "페이지 및 새 창 탐색 모드에서 사용 가능",
|
|
1624
1789
|
import: "가져오기",
|
|
1625
1790
|
importTitle: "CSV에서 가져오기",
|
|
1626
1791
|
importedToast: "{{count}}개 행 가져옴.",
|
|
1627
1792
|
importedWithSkipped: "{{ok}}개 행 가져옴; {{skipped}}개 건너뜀.",
|
|
1628
|
-
showAdvancedSettings: "고급 설정 표시",
|
|
1629
|
-
showFewerSettings: "설정 줄이기",
|
|
1630
1793
|
createViewDesc: "보기 유형을 선택하고 이름을 지정하세요. 모든 설정은 나중에 변경할 수 있습니다.",
|
|
1631
1794
|
cancel: "취소",
|
|
1632
1795
|
create: "생성",
|
|
@@ -1659,7 +1822,7 @@ const ko = {
|
|
|
1659
1822
|
latitudeFieldHelp: "위도를 포함하는 필드 (지리 필드만 해당).",
|
|
1660
1823
|
longitudeFieldHelp: "경도를 포함하는 필드 (지리 필드만 해당).",
|
|
1661
1824
|
imageFieldHelp: "갤러리 표지는 이 이미지 또는 첨부 파일 필드에서 가져옵니다.",
|
|
1662
|
-
selectOption: "
|
|
1825
|
+
selectOption: "선택…",
|
|
1663
1826
|
noEligibleFieldForType: "해당 유형의 적합한 필드가 없습니다. 먼저 개체에 추가하세요.",
|
|
1664
1827
|
viewTypeUnavailable: "이 개체에는 \"{{field}}\"로 사용할 수 있는 필드가 없습니다.",
|
|
1665
1828
|
viewTypeUnavailableShort: "이 개체에서 지원되지 않습니다.",
|
|
@@ -1674,58 +1837,9 @@ const ko = {
|
|
|
1674
1837
|
xAxisFieldHelp: "범주형 또는 시간 차원.",
|
|
1675
1838
|
yAxisField: "Y축 필드",
|
|
1676
1839
|
yAxisFieldHelp: "집계할 숫자 필드.",
|
|
1677
|
-
selectionMode: "선택 모드",
|
|
1678
|
-
selectionNone: "없음",
|
|
1679
|
-
selectionSingle: "단일",
|
|
1680
|
-
selectionMultiple: "다중",
|
|
1681
|
-
pageSize: "페이지 크기",
|
|
1682
|
-
pageSizeOptions: "페이지 크기 옵션",
|
|
1683
|
-
exportFormats: "내보내기 형식",
|
|
1684
|
-
exportMaxRecords: "최대 레코드 수",
|
|
1685
|
-
exportIncludeHeaders: "헤더 포함",
|
|
1686
|
-
exportFileNamePrefix: "파일 이름 접두사",
|
|
1687
|
-
searchableFields: "검색 가능한 필드",
|
|
1688
|
-
filterableFields: "필터링 가능한 필드",
|
|
1689
|
-
resizableColumns: "크기 조절 가능한 열",
|
|
1690
|
-
densityCompact: "컴팩트",
|
|
1691
|
-
densityComfortable: "보통",
|
|
1692
|
-
densitySpacious: "넓음",
|
|
1693
|
-
densityMode: "밀도 모드",
|
|
1694
|
-
hiddenFields: "숨겨진 필드",
|
|
1695
|
-
rowActions: "행 작업",
|
|
1696
|
-
bulkActions: "일괄 작업",
|
|
1697
|
-
sharing: "공유",
|
|
1698
|
-
sharingEnabled: "공유 활성화",
|
|
1699
|
-
sharingVisibility: "가시성",
|
|
1700
|
-
addRecordEnabled: "레코드 추가 활성화",
|
|
1701
|
-
addRecordPosition: "위치",
|
|
1702
|
-
addRecordMode: "모드",
|
|
1703
|
-
addRecordFormView: "양식 보기",
|
|
1704
|
-
conditionalFormatting: "조건부 서식",
|
|
1705
|
-
addRule: "규칙 추가",
|
|
1706
|
-
quickFilters: "빠른 필터",
|
|
1707
|
-
addQuickFilter: "빠른 필터 추가",
|
|
1708
|
-
ufElements: "요소",
|
|
1709
|
-
ufDropdown: "드롭다운",
|
|
1710
1840
|
ufTabs: "탭",
|
|
1711
|
-
|
|
1712
|
-
ufAddField: "+ 필터 필드 추가...",
|
|
1713
|
-
ufNoFields: "사용 가능한 필드 없음",
|
|
1714
|
-
ufAddTab: "+ 탭 추가",
|
|
1715
|
-
ufTabLabel: "레이블",
|
|
1841
|
+
ufAddField: "+ 필터 필드 추가…",
|
|
1716
1842
|
ufShowAllRecords: "\"모든 레코드\" 탭 표시",
|
|
1717
|
-
ufAllowAddTab: "탭 추가 허용",
|
|
1718
|
-
showRecordCount: "레코드 수 표시",
|
|
1719
|
-
allowPrinting: "인쇄 허용",
|
|
1720
|
-
virtualScroll: "가상 스크롤",
|
|
1721
|
-
emptyStateTitle: "빈 상태 제목",
|
|
1722
|
-
emptyStateMessage: "빈 상태 메시지",
|
|
1723
|
-
emptyStateIcon: "빈 상태 아이콘",
|
|
1724
|
-
ariaLabel: "ARIA 레이블",
|
|
1725
|
-
ariaDescribedBy: "ARIA 설명",
|
|
1726
|
-
ariaLive: "ARIA 라이브",
|
|
1727
|
-
accessibility: "접근성",
|
|
1728
|
-
viewTabs: "보기 탭",
|
|
1729
1843
|
},
|
|
1730
1844
|
localeSwitcher: {
|
|
1731
1845
|
label: "언어",
|
|
@@ -1769,7 +1883,7 @@ const ko = {
|
|
|
1769
1883
|
passwordPlaceholder: "비밀번호를 입력하세요",
|
|
1770
1884
|
forgotPasswordText: "비밀번호를 잊으셨나요?",
|
|
1771
1885
|
submitButton: "로그인",
|
|
1772
|
-
submittingButton: "로그인
|
|
1886
|
+
submittingButton: "로그인 중…",
|
|
1773
1887
|
noAccountText: "계정이 없으신가요?",
|
|
1774
1888
|
signUpText: "회원가입",
|
|
1775
1889
|
errors: {
|
|
@@ -1777,6 +1891,18 @@ const ko = {
|
|
|
1777
1891
|
invalidCredentials: "잘못된 이메일 또는 비밀번호입니다. 다시 시도하세요.",
|
|
1778
1892
|
emailNotVerified: "로그인하기 전에 이메일을 확인하세요.",
|
|
1779
1893
|
},
|
|
1894
|
+
// objectui#3546 slice three — phone/OTP sign-in. `{seconds}` is LoginForm's own
|
|
1895
|
+
// literal `.replace()` hole, not i18next interpolation: keep the single braces.
|
|
1896
|
+
emailOrPhoneLabel: "이메일 또는 전화번호",
|
|
1897
|
+
emailOrPhonePlaceholder: "name@example.com 또는 +1 555 000 0000",
|
|
1898
|
+
phoneLabel: "전화번호",
|
|
1899
|
+
phonePlaceholder: "+1 555 000 0000",
|
|
1900
|
+
otpCodeLabel: "인증 코드",
|
|
1901
|
+
otpCodePlaceholder: "6자리 코드",
|
|
1902
|
+
sendOtpButton: "코드 받기",
|
|
1903
|
+
resendOtpCountdownText: "{seconds}초 후 재전송",
|
|
1904
|
+
usePhoneOtpText: "인증 코드로 로그인",
|
|
1905
|
+
usePasswordSignInText: "비밀번호로 로그인하기",
|
|
1780
1906
|
},
|
|
1781
1907
|
register: {
|
|
1782
1908
|
title: "계정 만들기",
|
|
@@ -1792,7 +1918,7 @@ const ko = {
|
|
|
1792
1918
|
passwordMismatchError: "비밀번호가 일치하지 않습니다",
|
|
1793
1919
|
passwordTooShortError: "비밀번호는 최소 8자 이상이어야 합니다",
|
|
1794
1920
|
submitButton: "계정 만들기",
|
|
1795
|
-
submittingButton: "계정 생성
|
|
1921
|
+
submittingButton: "계정 생성 중…",
|
|
1796
1922
|
hasAccountText: "이미 계정이 있으신가요?",
|
|
1797
1923
|
signInText: "로그인",
|
|
1798
1924
|
errors: {
|
|
@@ -1813,12 +1939,26 @@ const ko = {
|
|
|
1813
1939
|
emailLabel: "이메일",
|
|
1814
1940
|
emailPlaceholder: "name@example.com",
|
|
1815
1941
|
submitButton: "재설정 링크 보내기",
|
|
1816
|
-
submittingButton: "전송
|
|
1942
|
+
submittingButton: "전송 중…",
|
|
1817
1943
|
successTitle: "이메일을 확인하세요",
|
|
1818
|
-
successDescription: "{
|
|
1944
|
+
successDescription: "{email}(으)로 비밀번호 재설정 링크를 전송했습니다. 수신함을 확인해주세요.",
|
|
1819
1945
|
backToSignInText: "로그인으로 돌아가기",
|
|
1820
1946
|
rememberPasswordText: "비밀번호가 기억나시나요?",
|
|
1821
1947
|
signInText: "로그인",
|
|
1948
|
+
// objectui#3546 slice three — the SMS reset branch of the same form.
|
|
1949
|
+
phoneLabel: "전화번호",
|
|
1950
|
+
phonePlaceholder: "+1 555 000 0000",
|
|
1951
|
+
otpCodeLabel: "인증 코드",
|
|
1952
|
+
otpCodePlaceholder: "6자리 코드",
|
|
1953
|
+
sendOtpButton: "코드 받기",
|
|
1954
|
+
resendOtpCountdownText: "{seconds}초 후 재전송",
|
|
1955
|
+
newPasswordLabel: "새 비밀번호",
|
|
1956
|
+
newPasswordPlaceholder: "새 비밀번호를 입력하세요",
|
|
1957
|
+
resetButton: "비밀번호 재설정",
|
|
1958
|
+
usePhoneResetText: "SMS 코드로 재설정",
|
|
1959
|
+
useEmailResetText: "이메일로 재설정하기",
|
|
1960
|
+
phoneSuccessTitle: "비밀번호가 재설정되었습니다",
|
|
1961
|
+
phoneSuccessDescription: "비밀번호가 재설정되었습니다. 이제 새 비밀번호로 로그인할 수 있습니다.",
|
|
1822
1962
|
},
|
|
1823
1963
|
resetPassword: {
|
|
1824
1964
|
title: "새 비밀번호 설정",
|
|
@@ -1857,6 +1997,8 @@ const ko = {
|
|
|
1857
1997
|
backToLogin: "로그인으로 돌아가기",
|
|
1858
1998
|
checkSpam: "이메일을 받지 못하셨나요? 스팸 폴더를 확인하거나 지원팀에 문의하세요.",
|
|
1859
1999
|
or: "또는",
|
|
2000
|
+
// objectui#3546 slice three.
|
|
2001
|
+
resendUnavailable: "이 환경에서는 이메일 발송이 구성되지 않았을 수 있습니다. 문제가 계속되면 지원팀에 문의하세요.",
|
|
1860
2002
|
},
|
|
1861
2003
|
setup: {
|
|
1862
2004
|
welcomeTitle: "ObjectStack에 오신 것을 환영합니다",
|
|
@@ -1895,6 +2037,9 @@ const ko = {
|
|
|
1895
2037
|
invalidDescription: "URL에 장치 코드가 제공되지 않았습니다.",
|
|
1896
2038
|
loading: "로딩 중…",
|
|
1897
2039
|
cancel: "취소",
|
|
2040
|
+
// objectui#3546 slice three — device-authorization plugin switched off.
|
|
2041
|
+
disabledTitle: "장치 승인이 활성화되지 않았습니다",
|
|
2042
|
+
disabledDescription: "이 배포에는 장치 승인이 활성화되어 있지 않으므로 여기에서 이 장치를 승인할 수 없습니다.",
|
|
1898
2043
|
},
|
|
1899
2044
|
shell: {
|
|
1900
2045
|
tenantHostHint: "이 작업 공간에 로그인하는 중입니다",
|
|
@@ -1934,6 +2079,29 @@ const ko = {
|
|
|
1934
2079
|
},
|
|
1935
2080
|
},
|
|
1936
2081
|
},
|
|
2082
|
+
// objectui#3546 slice three — the /oauth/consent screen.
|
|
2083
|
+
oauth: {
|
|
2084
|
+
consent: {
|
|
2085
|
+
title: "{{appName}}이(가) 계정에 액세스하려고 합니다",
|
|
2086
|
+
request: "{{appName}}이(가) 권한을 요청합니다{{suffix}}.",
|
|
2087
|
+
unknownApp: "어떤 애플리케이션",
|
|
2088
|
+
willAllow: "이 앱은 다음을 할 수 있습니다:",
|
|
2089
|
+
scope: {
|
|
2090
|
+
openid: "본인 확인",
|
|
2091
|
+
profile: "기본 프로필(이름, 사진) 읽기",
|
|
2092
|
+
email: "이메일 주소 읽기",
|
|
2093
|
+
offlineAccess: "로그인 상태 유지(액세스 갱신)",
|
|
2094
|
+
},
|
|
2095
|
+
deny: "거부",
|
|
2096
|
+
authorize: "허용",
|
|
2097
|
+
submitting: "허용 중…",
|
|
2098
|
+
granted: "액세스가 허용되었습니다",
|
|
2099
|
+
denied: "액세스 거부됨",
|
|
2100
|
+
noRedirect: "서버가 리디렉션 URL을 반환하지 않았습니다.",
|
|
2101
|
+
failed: "동의 실패",
|
|
2102
|
+
footer: "계정 설정에서 언제든지 액세스를 취소할 수 있습니다.",
|
|
2103
|
+
},
|
|
2104
|
+
},
|
|
1937
2105
|
profile: {
|
|
1938
2106
|
title: "프로필",
|
|
1939
2107
|
subtitle: "계정 설정을 관리하세요",
|
|
@@ -1995,6 +2163,8 @@ const ko = {
|
|
|
1995
2163
|
invite: "구성원 초대",
|
|
1996
2164
|
members: "구성원",
|
|
1997
2165
|
settings: "워크스페이스 설정",
|
|
2166
|
+
multiOrgDisabled: "이 인스턴스에서는 새 조직을 만들 수 없습니다.",
|
|
2167
|
+
createFailed: '워크스페이스를 만들지 못했습니다',
|
|
1998
2168
|
},
|
|
1999
2169
|
help: {
|
|
2000
2170
|
onThisPage: "이 페이지에서",
|
|
@@ -2005,7 +2175,7 @@ const ko = {
|
|
|
2005
2175
|
},
|
|
2006
2176
|
sidebar: {
|
|
2007
2177
|
packageManagement: "패키지 관리",
|
|
2008
|
-
searchNavigation: "내비게이션
|
|
2178
|
+
searchNavigation: "내비게이션 검색…",
|
|
2009
2179
|
settings: "설정",
|
|
2010
2180
|
help: "도움말",
|
|
2011
2181
|
helpTooltip: "도움말 및 문서",
|
|
@@ -2029,8 +2199,8 @@ const ko = {
|
|
|
2029
2199
|
switchObject: "객체 전환",
|
|
2030
2200
|
connection: {
|
|
2031
2201
|
connected: "연결됨",
|
|
2032
|
-
connecting: "연결
|
|
2033
|
-
reconnecting: "다시 연결
|
|
2202
|
+
connecting: "연결 중…",
|
|
2203
|
+
reconnecting: "다시 연결 중…",
|
|
2034
2204
|
disconnected: "연결 끊김",
|
|
2035
2205
|
error: "연결 오류",
|
|
2036
2206
|
},
|
|
@@ -2046,10 +2216,12 @@ const ko = {
|
|
|
2046
2216
|
build: {
|
|
2047
2217
|
title: "앱 만들기",
|
|
2048
2218
|
subtitle: "처음부터 시작 — 객체, 폼, 자동화, 인터페이스를 설계합니다.",
|
|
2219
|
+
noCapability: "이 워크스페이스에서는 앱 만들기를 사용할 수 없습니다 — ‘메타데이터 관리’ 권한이 필요하지만 계정에 해당 권한이 없습니다.",
|
|
2049
2220
|
},
|
|
2050
2221
|
template: {
|
|
2051
2222
|
title: "템플릿으로 시작",
|
|
2052
2223
|
subtitle: "마켓플레이스에서 템플릿 앱을 설치하고 원하는 대로 바꾸세요.",
|
|
2224
|
+
marketplaceDisabled: "이 런타임에는 앱 마켓플레이스가 구성되어 있지 않아 여기에서 설치할 템플릿이 없습니다.",
|
|
2053
2225
|
},
|
|
2054
2226
|
welcomeAdminDescription: "비즈니스를 한 문장으로 설명해 주세요 — AI가 객체, 화면, API, 에이전트 도구를 생성합니다. 왼쪽 메뉴에서 직접 설정할 수도 있습니다.",
|
|
2055
2227
|
welcomeAdminDescriptionNoBuild: "왼쪽 관리 메뉴에서 첫 애플리케이션을 설정하세요. 데이터가 쌓이면 AI 어시스턴트가 살펴보는 것을 도와줍니다.",
|
|
@@ -2069,6 +2241,13 @@ const ko = {
|
|
|
2069
2241
|
publishing: "게시하는 중…",
|
|
2070
2242
|
published: "게시했습니다! 변경 사항이 반영되었습니다.",
|
|
2071
2243
|
publishFailed: "게시에 실패했습니다",
|
|
2244
|
+
// objectui#3546 slice six — seedWarn 은 console.ai.seedWarn 과 영문이 같아
|
|
2245
|
+
// 기존 번역을 그대로 재사용.
|
|
2246
|
+
nothing: "게시할 내용이 없습니다.",
|
|
2247
|
+
probeWarn: "게시했지만 검증에서 문제를 발견했습니다.",
|
|
2248
|
+
seedWarn: "게시했지만 일부 샘플 데이터를 불러오지 못했습니다.",
|
|
2249
|
+
publishedVerified: "게시 및 검증 완료 — 샘플 데이터 {{count}}개 행이 반영되었습니다.",
|
|
2250
|
+
capabilityWarn: "작성 검사: 기능 권한 참조 {{count}}개가 아무것도 가리키지 않습니다.",
|
|
2072
2251
|
},
|
|
2073
2252
|
title: "홈",
|
|
2074
2253
|
subtitle: "워크스페이스 대시보드",
|
|
@@ -2082,7 +2261,7 @@ const ko = {
|
|
|
2082
2261
|
title: "확인이 필요한 항목",
|
|
2083
2262
|
empty: "모두 처리했습니다",
|
|
2084
2263
|
},
|
|
2085
|
-
loading: "워크스페이스 로드
|
|
2264
|
+
loading: "워크스페이스 로드 중…",
|
|
2086
2265
|
recent: "최근",
|
|
2087
2266
|
starred: "즐겨찾기",
|
|
2088
2267
|
welcome: "ObjectUI에 오신 것을 환영합니다",
|
|
@@ -2143,6 +2322,9 @@ const ko = {
|
|
|
2143
2322
|
roles: "역할",
|
|
2144
2323
|
configuration: "구성",
|
|
2145
2324
|
createApp: "앱 만들기",
|
|
2325
|
+
administration: "관리",
|
|
2326
|
+
datasources: "데이터 소스",
|
|
2327
|
+
documentation: "문서",
|
|
2146
2328
|
},
|
|
2147
2329
|
appSwitcher: {
|
|
2148
2330
|
switchApplication: "애플리케이션 전환",
|
|
@@ -2182,7 +2364,7 @@ const ko = {
|
|
|
2182
2364
|
search: {
|
|
2183
2365
|
title: "검색",
|
|
2184
2366
|
back: "뒤로",
|
|
2185
|
-
placeholder: "오브젝트, 대시보드, 페이지, 보고서
|
|
2367
|
+
placeholder: "오브젝트, 대시보드, 페이지, 보고서 검색…",
|
|
2186
2368
|
inputAriaLabel: "오브젝트, 대시보드, 페이지, 보고서 검색",
|
|
2187
2369
|
resultsCount: "\"{{query}}\"에 대한 {{count}}개 결과",
|
|
2188
2370
|
resultsCountPlural: "\"{{query}}\"에 대한 {{count}}개 결과",
|
|
@@ -2201,6 +2383,7 @@ const ko = {
|
|
|
2201
2383
|
empty: {
|
|
2202
2384
|
objectNotFound: "오브젝트를 찾을 수 없습니다",
|
|
2203
2385
|
objectNotFoundDescription: "\"{{name}}\" 오브젝트 정의가 없습니다. 구성을 확인하거나 뒤로 이동하세요.",
|
|
2386
|
+
interfacePageSourceMissing: "이 인터페이스 페이지는 \"{{name}}\"을(를) 참조하지만 사용할 수 없습니다.",
|
|
2204
2387
|
pageNotFound: "페이지를 찾을 수 없습니다",
|
|
2205
2388
|
pageNotFoundDescription: "\"{{name}}\" 페이지를 찾을 수 없습니다. 삭제되거나 이름이 변경되었을 수 있습니다.",
|
|
2206
2389
|
dashboardNotFound: "대시보드를 찾을 수 없습니다",
|
|
@@ -2209,27 +2392,17 @@ const ko = {
|
|
|
2209
2392
|
reportNotFoundDescription: "\"{{name}}\" 보고서를 찾을 수 없습니다. 삭제되거나 이름이 변경되었을 수 있습니다.",
|
|
2210
2393
|
noAppsConfigured: "구성된 앱 없음",
|
|
2211
2394
|
noAppsConfiguredDescription: "등록된 앱이 없습니다. 첫 번째 앱을 만들거나 시스템 설정을 방문하세요.",
|
|
2395
|
+
appNotAvailable: "앱을 사용할 수 없습니다",
|
|
2396
|
+
appNotAvailableDescription: "이 앱을 아직 사용할 수 없습니다 — 아직 게시 중일 수 있습니다. 잠시 후 다시 시도하세요.",
|
|
2397
|
+
appAccessDenied: "이 앱에 접근할 권한이 없습니다",
|
|
2398
|
+
appAccessDeniedDescription: "이 앱은 존재하지만 계정에 여는 권한이 없습니다. 관리자에게 접근 권한을 요청하세요.",
|
|
2399
|
+
appAccessDeniedHome: "홈으로 돌아가기",
|
|
2212
2400
|
createFirstApp: "첫 번째 앱 만들기",
|
|
2213
2401
|
systemSettings: "시스템 설정",
|
|
2214
2402
|
back: "뒤로",
|
|
2215
2403
|
recordNotFound: "레코드를 찾을 수 없습니다",
|
|
2216
2404
|
recordNotFoundDescription: "찾고 있는 레코드가 존재하지 않거나 삭제되었을 수 있습니다.",
|
|
2217
2405
|
},
|
|
2218
|
-
renderer: {
|
|
2219
|
-
noPageSchema: "페이지 스키마가 없습니다",
|
|
2220
|
-
noFormSchema: "양식 스키마가 없습니다",
|
|
2221
|
-
noDashboardSchema: "대시보드 스키마가 없습니다",
|
|
2222
|
-
pageRendering: "페이지 렌더링: {{name}}",
|
|
2223
|
-
dashboardRendering: "대시보드 렌더링: {{name}}",
|
|
2224
|
-
formRenderingMode: "{{mode}} 모드로 양식 렌더링",
|
|
2225
|
-
formRenderingFor: "레코드 {{id}}에 대해",
|
|
2226
|
-
createRecord: "레코드 만들기",
|
|
2227
|
-
editRecord: "레코드 편집",
|
|
2228
|
-
page: "페이지",
|
|
2229
|
-
dashboard: "대시보드",
|
|
2230
|
-
save: "저장",
|
|
2231
|
-
cancel: "취소",
|
|
2232
|
-
},
|
|
2233
2406
|
actionDialog: {
|
|
2234
2407
|
title: "작업 매개변수",
|
|
2235
2408
|
description: "계속하려면 필요한 정보를 입력하세요.",
|
|
@@ -2280,7 +2453,7 @@ const ko = {
|
|
|
2280
2453
|
deleteFailed: "보기 삭제 실패",
|
|
2281
2454
|
},
|
|
2282
2455
|
dashboardActions: {
|
|
2283
|
-
|
|
2456
|
+
printDialogOpening: "브라우저의 인쇄 대화 상자를 여는 중입니다(PDF 내보내기가 아닙니다)",
|
|
2284
2457
|
exportFailed: "내보내기 실패: {{message}}",
|
|
2285
2458
|
forecastSoon: "예측 보기가 곧 출시됩니다",
|
|
2286
2459
|
},
|
|
@@ -2324,126 +2497,159 @@ const ko = {
|
|
|
2324
2497
|
first: "첫 번째",
|
|
2325
2498
|
},
|
|
2326
2499
|
editor: {
|
|
2327
|
-
|
|
2328
|
-
basic: "기본",
|
|
2329
|
-
title: "제목",
|
|
2330
|
-
titlePlaceholder: "예: 분기별 파이프라인",
|
|
2331
|
-
description: "설명",
|
|
2332
|
-
descriptionPlaceholder: "이 보고서가 무엇을 보여주나요?",
|
|
2333
|
-
type: "보고서 유형",
|
|
2334
|
-
typeTabular: "표 — 평면 목록",
|
|
2335
|
-
typeSummary: "요약 — 합계 포함 그룹화",
|
|
2336
|
-
typeMatrix: "매트릭스 — 행 × 열 피벗",
|
|
2337
|
-
typeJoined: "결합 — 여러 블록",
|
|
2338
|
-
typeHelp: "보고 싶은 형태에 맞는 레이아웃을 선택하세요.",
|
|
2339
|
-
data: "데이터",
|
|
2340
|
-
objectName: "데이터 소스",
|
|
2341
|
-
objectNamePlaceholder: "예: opportunity",
|
|
2342
|
-
objectNameHelp: "이 보고서가 조회할 객체는 무엇인가요?",
|
|
2343
|
-
limit: "행 수 제한",
|
|
2344
|
-
limitPlaceholder: "예: 100",
|
|
2345
|
-
columns: "열",
|
|
2346
|
-
columnsHint: "열로 표시할 필드를 선택하세요. 요약 또는 매트릭스 보고서에서는 집계(합계, 개수…)를 추가할 수 있습니다.",
|
|
2347
|
-
filters: "필터",
|
|
2348
|
-
filtersHint: "이 보고서에 포함되는 행을 제한합니다.",
|
|
2349
|
-
filtersComplex: "이 보고서는 여기서 편집할 수 없는 고급 필터를 사용합니다. 저장 시 그대로 유지됩니다.",
|
|
2350
|
-
groupBy: "그룹화 기준",
|
|
2351
|
-
groupByHint: "데이터를 그룹화하고 소계를 계산합니다.",
|
|
2352
|
-
rows: "행",
|
|
2353
|
-
rowsHint: "이 필드들로 행을 그룹화합니다.",
|
|
2354
|
-
columnsAxis: "열",
|
|
2355
|
-
columnsAxisHint: "이 필드들을 상단에 피벗합니다.",
|
|
2356
|
-
values: "값",
|
|
2357
|
-
valuesHint: "각 셀에 표시되는 숫자입니다. 하나 이상의 필드를 선택하고 집계(합계, 개수…)를 지정하세요.",
|
|
2358
|
-
grouping: "그룹화",
|
|
2359
|
-
addGrouping: "그룹화 추가",
|
|
2360
|
-
dateGranularity: "날짜 단위",
|
|
2361
|
-
dateGranularityNone: "(원래 값 사용)",
|
|
2362
|
-
day: "일",
|
|
2363
|
-
week: "주",
|
|
2364
|
-
month: "월",
|
|
2365
|
-
quarter: "분기",
|
|
2366
|
-
year: "연도",
|
|
2367
|
-
sortAsc: "오름차순",
|
|
2368
|
-
sortDesc: "내림차순",
|
|
2369
|
-
chart: "차트",
|
|
2370
|
-
chartHint: "표 옆에 표시되는 선택 시각화입니다.",
|
|
2371
|
-
chartType: "차트 유형",
|
|
2372
|
-
chartTitle: "차트 제목",
|
|
2373
|
-
chartTitlePlaceholder: "기본값은 보고서 제목",
|
|
2374
|
-
chartXAxis: "X축 (범주)",
|
|
2375
|
-
chartYAxis: "Y축 (값)",
|
|
2376
|
-
chartShowLegend: "범례 표시",
|
|
2377
|
-
chartShowDataLabels: "데이터 레이블 표시",
|
|
2378
|
-
chartNone: "(차트 없음)",
|
|
2379
|
-
chartBar: "막대",
|
|
2380
|
-
chartLine: "선",
|
|
2381
|
-
chartArea: "영역",
|
|
2382
|
-
chartPie: "원형",
|
|
2383
|
-
chartDonut: "도넛",
|
|
2384
|
-
chartFunnel: "퍼널",
|
|
2385
|
-
validationNeedsObject: "열을 추가하기 전에 데이터 소스를 선택하세요.",
|
|
2386
|
-
validationMatrixNeedsRowsCols: "매트릭스 보고서에는 최소 한 개의 행과 한 개의 열이 필요합니다.",
|
|
2387
|
-
validationSummaryNeedsRows: "요약 보고서에는 최소 한 개의 그룹화 필드가 필요합니다.",
|
|
2388
|
-
blocks: "블록",
|
|
2389
|
-
blocksHint: "각 블록은 독립적인 표 또는 차트입니다. 블록 필터는 보고서 필터와 AND로 결합됩니다.",
|
|
2390
|
-
addBlock: "블록 추가",
|
|
2391
|
-
removeBlock: "블록 삭제",
|
|
2392
|
-
blockName: "블록 이름",
|
|
2393
|
-
blockNamePlaceholder: "고유한_블록_이름",
|
|
2394
|
-
blockLabel: "표시 레이블",
|
|
2395
|
-
blockLabelPlaceholder: "블록 위에 표시됩니다",
|
|
2396
|
-
blockDescription: "설명",
|
|
2397
|
-
blockDescriptionPlaceholder: "이 블록의 선택적 설명",
|
|
2398
|
-
validationJoinedNeedsBlocks: "결합 보고서에는 최소 한 개의 블록이 필요합니다.",
|
|
2399
|
-
validationBlockNameRequired: "각 블록에는 비어 있지 않은 이름이 필요합니다.",
|
|
2400
|
-
validationBlockNameDuplicate: "블록 이름은 보고서 내에서 고유해야 합니다.",
|
|
2401
|
-
validationBlockNeedsColumns: "각 블록에는 최소 한 개의 열이 필요합니다.",
|
|
2402
|
-
noneOption: "(없음)",
|
|
2403
|
-
addCondition: "조건 추가",
|
|
2404
|
-
combineLogic: "결합 방식",
|
|
2405
|
-
opContains: "포함",
|
|
2406
|
-
opIsEmpty: "비어 있음",
|
|
2407
|
-
opIsNotEmpty: "비어 있지 않음",
|
|
2408
|
-
formatAuto: "자동",
|
|
2409
|
-
formatCurrency: "통화",
|
|
2410
|
-
formatPercent: "백분율",
|
|
2411
|
-
formatInteger: "정수",
|
|
2412
|
-
formatDate: "날짜",
|
|
2413
|
-
formatDatetime: "날짜 및 시간",
|
|
2414
|
-
columnLabelPlaceholder: "레이블 재정의",
|
|
2415
|
-
aggregateColumn: "집계",
|
|
2416
|
-
formatColumn: "형식",
|
|
2417
|
-
addColumns: "열 추가",
|
|
2418
|
-
searchFields: "필드 검색…",
|
|
2419
|
-
noMatchingFields: "검색과 일치하는 필드가 없습니다.",
|
|
2420
|
-
noFieldsAvailable: "사용 가능한 필드가 없습니다.",
|
|
2421
|
-
columnsCount: "{n}개 열 선택됨",
|
|
2422
|
-
columnsEmpty: "아직 선택된 열이 없습니다.",
|
|
2423
|
-
fieldPickerTitle: "필드 선택",
|
|
2424
|
-
fieldPickerDescription: "추가할 필드를 하나 이상 선택하세요. 검색 필드를 사용하여 목록을 필터링하세요.",
|
|
2425
|
-
fieldPickerChangeTitle: "필드 변경",
|
|
2426
|
-
fieldPickerAddGroupingTitle: "그룹화 추가",
|
|
2427
|
-
fieldPickerEmpty: "(필드 선택)",
|
|
2428
|
-
fieldPickerSelected: "{n}개 선택됨",
|
|
2429
|
-
fieldPickerClear: "선택 지우기",
|
|
2430
|
-
fieldPickerAdd: "추가",
|
|
2431
|
-
fieldPickerAddN: "{n}개 추가",
|
|
2500
|
+
panelTitle: "보고서 편집",
|
|
2432
2501
|
},
|
|
2433
2502
|
},
|
|
2434
2503
|
organizations: {
|
|
2435
2504
|
create: "워크스페이스 만들기",
|
|
2436
|
-
mine: "내
|
|
2437
|
-
title: "
|
|
2438
|
-
heading: "내
|
|
2439
|
-
subtitle: "계속할
|
|
2440
|
-
searchPlaceholder: "
|
|
2441
|
-
new: "새
|
|
2442
|
-
current: "현재
|
|
2505
|
+
mine: "내 워크스페이스",
|
|
2506
|
+
title: "워크스페이스",
|
|
2507
|
+
heading: "내 워크스페이스",
|
|
2508
|
+
subtitle: "계속할 워크스페이스를 선택하거나 새 워크스페이스를 만드세요.",
|
|
2509
|
+
searchPlaceholder: "워크스페이스 검색",
|
|
2510
|
+
new: "새 워크스페이스",
|
|
2511
|
+
current: "현재 워크스페이스",
|
|
2443
2512
|
manage: "관리",
|
|
2444
|
-
emptyTitle: "아직
|
|
2445
|
-
emptyDescription: "시작하려면 첫 번째
|
|
2446
|
-
noMatches: "검색과 일치하는
|
|
2513
|
+
emptyTitle: "아직 워크스페이스가 없습니다",
|
|
2514
|
+
emptyDescription: "시작하려면 첫 번째 워크스페이스를 만드세요.",
|
|
2515
|
+
noMatches: "검색과 일치하는 워크스페이스가 없습니다.",
|
|
2516
|
+
},
|
|
2517
|
+
organization: {
|
|
2518
|
+
roles: {
|
|
2519
|
+
owner: '소유자',
|
|
2520
|
+
admin: '관리자',
|
|
2521
|
+
delegatedAdmin: '위임 관리자',
|
|
2522
|
+
member: '멤버',
|
|
2523
|
+
},
|
|
2524
|
+
errors: {
|
|
2525
|
+
notAllowedToInvite: '이 조직에 사용자를 초대할 권한이 없습니다.',
|
|
2526
|
+
notAllowedToInviteWithRole: '이 역할로 사용자를 초대할 권한이 없습니다.',
|
|
2527
|
+
alreadyInvited: '이 사용자는 이미 이 조직에 초대되었습니다.',
|
|
2528
|
+
organizationExists: '해당 조직이 이미 존재합니다.',
|
|
2529
|
+
slugTaken: '해당 슬러그는 이미 사용 중입니다.',
|
|
2530
|
+
notAllowedToCreate: '새 조직을 만들 권한이 없습니다.',
|
|
2531
|
+
notTheRecipient: '이 초대의 수신자가 아닙니다.',
|
|
2532
|
+
invitationNotFound: '이 초대는 더 이상 존재하지 않거나 만료되었습니다.',
|
|
2533
|
+
unknown: '문제가 발생했습니다. 다시 시도해 주세요.',
|
|
2534
|
+
},
|
|
2535
|
+
backToList: "조직 목록으로 돌아가기",
|
|
2536
|
+
notFound: "조직을 찾을 수 없음",
|
|
2537
|
+
notFoundDescription: "이 조직이 존재하지 않거나 접근 권한이 없습니다.",
|
|
2538
|
+
tabs: {
|
|
2539
|
+
members: "구성원",
|
|
2540
|
+
invitations: "초대",
|
|
2541
|
+
settings: "설정",
|
|
2542
|
+
},
|
|
2543
|
+
members: {
|
|
2544
|
+
title: "구성원",
|
|
2545
|
+
inviteMember: "구성원 초대",
|
|
2546
|
+
inviteRestrictedNote: "조직 관리자만 구성원을 초대할 수 있습니다.",
|
|
2547
|
+
removeMember: "구성원 제거",
|
|
2548
|
+
removeConfirmTitle: "구성원을 제거할까요?",
|
|
2549
|
+
removeConfirmDescription: "{{name}}을(를) 조직에서 제거합니다. 접근 권한이 즉시 사라집니다.",
|
|
2550
|
+
removeConfirmAction: "제거",
|
|
2551
|
+
memberRemoved: "구성원이 제거됨",
|
|
2552
|
+
removeFailed: "구성원 제거 실패",
|
|
2553
|
+
roleUpdated: "역할이 업데이트됨",
|
|
2554
|
+
roleUpdateFailed: "역할 업데이트 실패",
|
|
2555
|
+
memberActions: '멤버 작업',
|
|
2556
|
+
loadFailed: '멤버를 불러오지 못했습니다',
|
|
2557
|
+
},
|
|
2558
|
+
invitations: {
|
|
2559
|
+
title: "초대",
|
|
2560
|
+
empty: "초대가 없습니다.",
|
|
2561
|
+
expiresAt: "만료",
|
|
2562
|
+
linkCopied: "초대 링크가 복사됨",
|
|
2563
|
+
copyFailed: "링크 복사 실패",
|
|
2564
|
+
canceled: "초대가 취소됨",
|
|
2565
|
+
cancelFailed: "초대 취소 실패",
|
|
2566
|
+
cancelTitle: "초대를 취소할까요?",
|
|
2567
|
+
cancelDescription: "{{email}}에 대한 초대가 철회됩니다.",
|
|
2568
|
+
cancelAction: "초대 취소",
|
|
2569
|
+
inviteTitle: "구성원 초대",
|
|
2570
|
+
inviteDescription: "이 조직에 참여하라는 초대를 받게 됩니다.",
|
|
2571
|
+
emailLabel: "이메일",
|
|
2572
|
+
roleLabel: "역할",
|
|
2573
|
+
placementLabel: "배치(선택 사항)",
|
|
2574
|
+
placementDescription: "초대를 수락하면 적용됩니다. 위임할 수 있는 단위와 직위만 표시됩니다.",
|
|
2575
|
+
businessUnitLabel: "사업 단위",
|
|
2576
|
+
businessUnitPlaceholder: "배치 없음",
|
|
2577
|
+
positionsLabel: "직위",
|
|
2578
|
+
sendInvite: "초대 보내기",
|
|
2579
|
+
sentTitle: "초대가 생성됨",
|
|
2580
|
+
sentDescription: "아래 링크를 초대 대상자와 공유하세요. 수락하려면 로그인해야 합니다.",
|
|
2581
|
+
linkLabel: "수락 링크",
|
|
2582
|
+
invitedAs: "{{email}}을(를) {{role}}(으)로 초대함",
|
|
2583
|
+
copyLinkLabel: '초대 링크 복사',
|
|
2584
|
+
loadFailed: '초대를 불러오지 못했습니다',
|
|
2585
|
+
inviteFailed: '멤버를 초대하지 못했습니다',
|
|
2586
|
+
status: {
|
|
2587
|
+
all: "전체",
|
|
2588
|
+
pending: "대기 중",
|
|
2589
|
+
accepted: "수락됨",
|
|
2590
|
+
rejected: "거절됨",
|
|
2591
|
+
canceled: "취소됨",
|
|
2592
|
+
},
|
|
2593
|
+
},
|
|
2594
|
+
settings: {
|
|
2595
|
+
generalTitle: "일반",
|
|
2596
|
+
generalDescription: "조직 정보를 업데이트하세요.",
|
|
2597
|
+
readOnlyNote: "소유자만 설정을 변경할 수 있습니다.",
|
|
2598
|
+
nameLabel: "조직 이름",
|
|
2599
|
+
slugLabel: "슬러그",
|
|
2600
|
+
logoLabel: "로고",
|
|
2601
|
+
logoUpload: "업로드",
|
|
2602
|
+
logoReplace: "변경",
|
|
2603
|
+
logoClear: "제거",
|
|
2604
|
+
logoUploaded: "로고가 업로드됨 — 저장해야 적용됩니다",
|
|
2605
|
+
logoUploadFailed: "로고 업로드 실패",
|
|
2606
|
+
save: "변경사항 저장",
|
|
2607
|
+
saved: "설정이 저장됨",
|
|
2608
|
+
saveFailed: "설정 저장 실패",
|
|
2609
|
+
leaveTitle: "조직 나가기",
|
|
2610
|
+
leaveDescription: "이 조직에 대한 접근 권한을 잃게 됩니다.",
|
|
2611
|
+
leaveAction: "나가기",
|
|
2612
|
+
leaveConfirmTitle: "조직에서 나갈까요?",
|
|
2613
|
+
leaveConfirmDescription: "{{name}}에서 나가시겠습니까? 접근 권한이 즉시 사라집니다.",
|
|
2614
|
+
leaveConfirmAction: "나가기",
|
|
2615
|
+
leftOrg: "조직에서 나갔습니다",
|
|
2616
|
+
leaveFailed: "조직 나가기 실패",
|
|
2617
|
+
dangerZone: "위험 구역",
|
|
2618
|
+
deleteTitle: "조직 삭제",
|
|
2619
|
+
deleteDescription: "이 조직과 모든 데이터를 영구적으로 삭제합니다.",
|
|
2620
|
+
deleteAction: "삭제",
|
|
2621
|
+
deleteConfirmTitle: "조직을 삭제할까요?",
|
|
2622
|
+
deleteConfirmDescription: "이 작업은 되돌릴 수 없습니다. 모든 데이터가 영구적으로 삭제됩니다. 확인하려면 조직 슬러그를 입력하세요.",
|
|
2623
|
+
deleteConfirmSlugLabel: "확인하려면 “{{slug}}”을(를) 입력하세요",
|
|
2624
|
+
deleteConfirmAction: "조직 삭제",
|
|
2625
|
+
deleted: "조직이 삭제됨",
|
|
2626
|
+
deleteFailed: "조직 삭제 실패",
|
|
2627
|
+
},
|
|
2628
|
+
accept: {
|
|
2629
|
+
title: "초대를 받았습니다",
|
|
2630
|
+
description: "{{orgName}}에 {{role}}(으)로 초대되었습니다.",
|
|
2631
|
+
errorTitle: "초대를 사용할 수 없음",
|
|
2632
|
+
goToOrgs: "조직 목록으로 이동",
|
|
2633
|
+
loading: "초대를 불러오는 중…",
|
|
2634
|
+
organization: "조직",
|
|
2635
|
+
role: "역할",
|
|
2636
|
+
expiresAt: "만료",
|
|
2637
|
+
accept: "초대 수락",
|
|
2638
|
+
accepted: "초대를 수락함",
|
|
2639
|
+
acceptFailed: "초대 수락 실패",
|
|
2640
|
+
decline: "거절",
|
|
2641
|
+
declined: "초대를 거절함",
|
|
2642
|
+
declineFailed: "초대 거절 실패",
|
|
2643
|
+
},
|
|
2644
|
+
current: {
|
|
2645
|
+
label: "현재 조직",
|
|
2646
|
+
},
|
|
2647
|
+
switcher: {
|
|
2648
|
+
label: "조직 전환",
|
|
2649
|
+
groupLabel: "작업 중인 조직",
|
|
2650
|
+
groupHint: "새 레코드는 여기에 생성됩니다. 보기에는 모든 조직의 데이터가 표시됩니다.",
|
|
2651
|
+
manageMembers: "구성원 관리",
|
|
2652
|
+
},
|
|
2447
2653
|
},
|
|
2448
2654
|
notifications: {
|
|
2449
2655
|
regionLabel: "알림",
|
|
@@ -2458,6 +2664,9 @@ const ko = {
|
|
|
2458
2664
|
viewApprovals: "승인 보기",
|
|
2459
2665
|
noPendingApprovals: "대기 중인 승인 없음",
|
|
2460
2666
|
openApprovalsInbox: "승인 보관함 열기",
|
|
2667
|
+
badgeTotal: "총 {{total}}건",
|
|
2668
|
+
badgeNotifications: "알림 {{unread}}건",
|
|
2669
|
+
badgeApprovals: "승인 대기 {{approvals}}건",
|
|
2461
2670
|
emptyUnread: "모두 읽음",
|
|
2462
2671
|
filterUnread: "읽지 않음",
|
|
2463
2672
|
filterAll: "전체",
|
|
@@ -2482,52 +2691,6 @@ const ko = {
|
|
|
2482
2691
|
consentRequired: "계속하려면 개인정보 처리방침에 동의하세요.",
|
|
2483
2692
|
rateLimited: "제출하기 전에 잠시 답변을 검토하세요.",
|
|
2484
2693
|
redirectBlocked: "제출이 수락되었지만 보안상의 이유로 리디렉션 URL이 차단되었습니다.",
|
|
2485
|
-
demo: {
|
|
2486
|
-
contactTitle: "문의하기",
|
|
2487
|
-
contactDescription: "프로젝트에 대해 알려주시면 영업 담당자가 1 영업일 이내에 연락드립니다.",
|
|
2488
|
-
supportTitle: "지원 요청 제출",
|
|
2489
|
-
supportDescription: "문제를 설명해 주세요 — 팀이 1 영업일 이내에 답변 드립니다.",
|
|
2490
|
-
thankYouSalesTitle: "감사합니다 — 메시지를 받았습니다!",
|
|
2491
|
-
thankYouSalesMessage: "영업 담당자가 1 영업일 이내에 연락드립니다.",
|
|
2492
|
-
thankYouSupportTitle: "접수되었습니다 — 요청이 대기 중입니다.",
|
|
2493
|
-
thankYouSupportMessage: "지원 엔지니어가 곧 후속 조치를 취할 것입니다. 추가 스크린샷이 있으면 이 페이지를 저장하세요.",
|
|
2494
|
-
field: {
|
|
2495
|
-
firstName: "이름",
|
|
2496
|
-
lastName: "성",
|
|
2497
|
-
email: "업무용 이메일",
|
|
2498
|
-
phone: "전화번호",
|
|
2499
|
-
jobTitle: "직함",
|
|
2500
|
-
company: "회사",
|
|
2501
|
-
website: "웹사이트",
|
|
2502
|
-
industry: "업종",
|
|
2503
|
-
companySize: "회사 규모",
|
|
2504
|
-
howCanWeHelp: "어떻게 도와드릴까요?",
|
|
2505
|
-
subject: "제목",
|
|
2506
|
-
description: "설명",
|
|
2507
|
-
issueType: "문제 유형",
|
|
2508
|
-
priority: "우선순위",
|
|
2509
|
-
},
|
|
2510
|
-
industry: {
|
|
2511
|
-
technology: "기술",
|
|
2512
|
-
software: "소프트웨어 / SaaS",
|
|
2513
|
-
finance: "금융",
|
|
2514
|
-
healthcare: "의료",
|
|
2515
|
-
retail: "리테일",
|
|
2516
|
-
other: "기타",
|
|
2517
|
-
},
|
|
2518
|
-
issueType: {
|
|
2519
|
-
question: "질문",
|
|
2520
|
-
problem: "문제",
|
|
2521
|
-
bug: "버그",
|
|
2522
|
-
feature_request: "기능 요청",
|
|
2523
|
-
},
|
|
2524
|
-
priority: {
|
|
2525
|
-
low: "낮음",
|
|
2526
|
-
medium: "보통",
|
|
2527
|
-
high: "높음",
|
|
2528
|
-
critical: "긴급",
|
|
2529
|
-
},
|
|
2530
|
-
},
|
|
2531
2694
|
},
|
|
2532
2695
|
connectAgent: {
|
|
2533
2696
|
disabled: {
|
|
@@ -2640,6 +2803,7 @@ const ko = {
|
|
|
2640
2803
|
retry: "다시 시도",
|
|
2641
2804
|
errors: {
|
|
2642
2805
|
expired: "승인되기 전에 요청이 만료되었습니다. 다시 시작하세요.",
|
|
2806
|
+
accessDenied: "연결 요청이 거부되었습니다. 다시 시작하세요.",
|
|
2643
2807
|
bindFailed: "바인딩에 실패했습니다.",
|
|
2644
2808
|
deviceCodeFailed: "장치 코드 요청에 실패했습니다.",
|
|
2645
2809
|
},
|
|
@@ -2705,10 +2869,16 @@ const ko = {
|
|
|
2705
2869
|
installedBadge: "v{{version}} 설치됨",
|
|
2706
2870
|
load: {
|
|
2707
2871
|
failed: "마켓플레이스를 로드할 수 없습니다",
|
|
2708
|
-
|
|
2872
|
+
failedHintConfigured: "이 런타임은 {{url}} 의 컨트롤 플레인을 통해 마켓플레이스에 접속합니다. 해당 주소가 온라인이고 여기에서 접근 가능한지 확인하세요.",
|
|
2873
|
+
failedHintSameOrigin: "이 런타임이 마켓플레이스 카탈로그를 직접 제공합니다. 런타임이 온라인인지 확인하세요.",
|
|
2709
2874
|
packageFailed: "패키지를 로드할 수 없습니다",
|
|
2710
2875
|
notFound: "찾을 수 없습니다.",
|
|
2711
2876
|
},
|
|
2877
|
+
disabled: {
|
|
2878
|
+
title: "앱 마켓플레이스가 꺼져 있습니다",
|
|
2879
|
+
description: "이 런타임에는 마켓플레이스가 구성되어 있지 않아 여기에서 둘러보거나 설치할 항목이 없습니다.",
|
|
2880
|
+
hint: "런타임을 <code>OS_CLOUD_URL=off</code>(또는 <code>none</code>, <code>local</code>, <code>disabled</code>)로 시작하면 이것이 정상 상태입니다. 마켓플레이스를 켜려면 <code>OS_CLOUD_URL</code>을 컨트롤 플레인으로 지정하고 런타임을 다시 시작하세요.",
|
|
2881
|
+
},
|
|
2712
2882
|
detail: {
|
|
2713
2883
|
homepage: "홈페이지",
|
|
2714
2884
|
installedV: "설치됨 · v{{version}}",
|
|
@@ -2744,6 +2914,7 @@ const ko = {
|
|
|
2744
2914
|
dismiss: "닫기",
|
|
2745
2915
|
openOnCloud: "클라우드에서 열기",
|
|
2746
2916
|
backHome: "홈으로 돌아가기",
|
|
2917
|
+
updateTo: "업데이트",
|
|
2747
2918
|
},
|
|
2748
2919
|
install: {
|
|
2749
2920
|
dialogTitle: "{{name}} 설치",
|
|
@@ -2760,6 +2931,37 @@ const ko = {
|
|
|
2760
2931
|
localManifestConflict: "{{message}}\n참고: 로컬 앱이 이미 이 manifest_id를 가지고 있습니다. 먼저 objectstack.config.ts에서 제거하세요.",
|
|
2761
2932
|
localUnauthorized: "먼저 이 런타임에 로그인하세요.",
|
|
2762
2933
|
localMarketplaceUnavailable: "이 런타임에 OS_CLOUD_URL이 구성되지 않았습니다.",
|
|
2934
|
+
updateTo: "업데이트 → v{{version}}",
|
|
2935
|
+
installedVersion: "v{{version}} 설치됨",
|
|
2936
|
+
},
|
|
2937
|
+
// objectui#3546 — the MarketplacePage "Your organization" strip.
|
|
2938
|
+
org: {
|
|
2939
|
+
heading: "조직",
|
|
2940
|
+
install: "설치",
|
|
2941
|
+
installed: "{{name}} 설치됨",
|
|
2942
|
+
installedBadge: "설치됨",
|
|
2943
|
+
installing: "설치 중…",
|
|
2944
|
+
},
|
|
2945
|
+
// ADR-0025 PD4 §3.5/§3.11 — the pre-install consent panel
|
|
2946
|
+
// (PluginDisclosure.tsx). `runtime` is a CLOSED enum: spec
|
|
2947
|
+
// PluginRuntimeSchema = z.enum(['node', 'sandbox', 'worker']).
|
|
2948
|
+
disclosure: {
|
|
2949
|
+
containsCode: "이 패키지에는 코드가 포함되어 있습니다",
|
|
2950
|
+
reviewed: "검토 및 승인됨",
|
|
2951
|
+
unreviewed: "아직 검토되지 않음",
|
|
2952
|
+
signed: "서명됨",
|
|
2953
|
+
grantsIntro: "설치하면 이 패키지에 다음 권한이 부여됩니다:",
|
|
2954
|
+
services: "플랫폼 서비스",
|
|
2955
|
+
hooks: "라이프사이클 후크",
|
|
2956
|
+
network: "네트워크 액세스",
|
|
2957
|
+
fs: "파일 시스템 액세스",
|
|
2958
|
+
noPermissions: "특별한 권한을 요청하지 않습니다.",
|
|
2959
|
+
acknowledge: "이 패키지가 코드를 실행하고 위 권한을 부여받는다는 점을 이해합니다.",
|
|
2960
|
+
runtime: {
|
|
2961
|
+
node: "프로세스 내 · 완전 신뢰",
|
|
2962
|
+
sandbox: "샌드박스",
|
|
2963
|
+
worker: "프로세스 외부",
|
|
2964
|
+
},
|
|
2763
2965
|
},
|
|
2764
2966
|
uninstall: {
|
|
2765
2967
|
confirm: "이 런타임에서 {{manifestId}} v{{version}}을(를) 제거하시겠습니까?\n\n캐시된 매니페스트가 삭제됩니다.",
|
|
@@ -2916,12 +3118,19 @@ const ko = {
|
|
|
2916
3118
|
submittedAgo: '{{when}} 제출됨',
|
|
2917
3119
|
completedAt: '{{when}} 완료됨',
|
|
2918
3120
|
waitingOn: '대기 중인 승인자',
|
|
3121
|
+
approverNameSeparator: ', ',
|
|
3122
|
+
approverUnstaffed: '{{seat}}(현재 담당자 없음)',
|
|
2919
3123
|
history: '승인 활동',
|
|
2920
3124
|
noActions: '아직 작업이 없습니다.',
|
|
2921
3125
|
actSubmit: '제출',
|
|
2922
3126
|
actApprove: '승인',
|
|
2923
3127
|
actReject: '거부',
|
|
2924
3128
|
actRecall: '회수',
|
|
3129
|
+
overrideActionLabel: '{{action}}(관리자 권한)',
|
|
3130
|
+
overrideNotice: '이 단계의 승인자 자리가 없습니다. 계속하면 관리자 재정의가 사용되어 단계가 즉시 확정되고, 아직 처리하지 않은 승인자는 모두 건너뜁니다. 이 결정은 관리자 재정의로 기록됩니다.',
|
|
3131
|
+
overrideNoticeWho: '이 단계의 승인자 자리가 없습니다. 계속하면 관리자 재정의가 사용되어 단계가 즉시 확정되고, 아직 처리하지 않은 승인자 — {{who}} — 를 건너뜁니다. 이 결정은 관리자 재정의로 기록됩니다.',
|
|
3132
|
+
viaOverrideChip: '관리자 재정의',
|
|
3133
|
+
viaOverrideHint: '실행자는 이 단계의 승인자 자리가 없으며 관리자 재정의 경로로 처리했습니다.',
|
|
2925
3134
|
rawData: '원본 데이터(JSON)',
|
|
2926
3135
|
copy: '복사',
|
|
2927
3136
|
copied: '복사됨',
|
|
@@ -3008,6 +3217,39 @@ const ko = {
|
|
|
3008
3217
|
detailChangedKeys: '기타 변경:',
|
|
3009
3218
|
confirmNote: '게시하면 이 패키지의 대기 중인 초안 {{count}}개가 한 번에(원자적으로) 게시됩니다.',
|
|
3010
3219
|
publishConfirm: '모두 게시',
|
|
3220
|
+
// [objectui#5418] Pre-publish security-posture findings, shown next to
|
|
3221
|
+
// the confirm button so a refusal the door would issue is read BEFORE
|
|
3222
|
+
// the click rather than as a toast after the batch rolled back.
|
|
3223
|
+
securityBlockTitle: '게시가 거부됩니다 — {{count}}개 항목에 먼저 결정이 필요합니다',
|
|
3224
|
+
securityBlockWhere: '객체의 설정 → 레코드 공유에서 수정한 후 다시 게시하세요.',
|
|
3225
|
+
},
|
|
3226
|
+
// ADR-0045 — the materialized-but-unlisted app banner
|
|
3227
|
+
// (UnpublishedAppBar.tsx), sibling of draftBar above.
|
|
3228
|
+
unpublishedBar: {
|
|
3229
|
+
message: '게시되지 않은 앱 — 기능은 모두 작동하지만 빌더만 볼 수 있습니다. 게시하면 사용자에게 표시됩니다.',
|
|
3230
|
+
publish: '게시',
|
|
3231
|
+
publishing: '게시 중…',
|
|
3232
|
+
published: '게시했습니다! 이제 사용자에게 앱이 표시됩니다.',
|
|
3233
|
+
publishFailed: '게시에 실패했습니다',
|
|
3234
|
+
},
|
|
3235
|
+
// ADR-0067 — the append-only build/revert timeline (CommitTimeline.tsx);
|
|
3236
|
+
// `button` is the banner's entry point into it.
|
|
3237
|
+
history: {
|
|
3238
|
+
button: '기록',
|
|
3239
|
+
title: '빌드 기록',
|
|
3240
|
+
description: '이 앱의 모든 변경을 최신순으로 표시합니다. 어떤 단계든 되돌려 취소할 수 있습니다 — 게시 확인은 필요하지 않습니다.',
|
|
3241
|
+
loadFailed: '기록을 불러올 수 없습니다:',
|
|
3242
|
+
loadFailedUnavailable: '커밋 저장소에 일시적으로 연결할 수 없습니다 — 이번 읽기는 수행되지 않았으므로 기록이 표시되지 않습니다. 잠시 후 다시 시도하세요.',
|
|
3243
|
+
loading: '기록을 불러오는 중…',
|
|
3244
|
+
empty: '이 앱의 기록이 아직 없습니다.',
|
|
3245
|
+
revertLabel: '변경을 되돌렸습니다',
|
|
3246
|
+
applyLabel: '빌드 변경',
|
|
3247
|
+
revert: '되돌림',
|
|
3248
|
+
items: '항목',
|
|
3249
|
+
revertAction: '되돌리기',
|
|
3250
|
+
reverted: '되돌렸습니다 — 변경이 취소되었습니다.',
|
|
3251
|
+
revertFailed: '되돌리기 실패',
|
|
3252
|
+
revertUnavailable: '커밋 저장소에 일시적으로 연결할 수 없습니다 — 되돌리기가 적용되지 않았을 수 있습니다. 이 기록을 다시 열어 확인한 후 재시도하세요.',
|
|
3011
3253
|
},
|
|
3012
3254
|
},
|
|
3013
3255
|
filterBuilder: {
|
|
@@ -3026,10 +3268,15 @@ const ko = {
|
|
|
3026
3268
|
noResults: "결과 없음",
|
|
3027
3269
|
searchField: "{{label}} 검색…",
|
|
3028
3270
|
enterId: "{{label}} ID 입력",
|
|
3271
|
+
addValue: "값을 입력하고 Enter 키를 누르세요",
|
|
3272
|
+
removeValue: "{{value}} 제거",
|
|
3273
|
+
rangeStart: "시작",
|
|
3274
|
+
rangeEnd: "끝",
|
|
3029
3275
|
operators: {
|
|
3030
3276
|
equals: "같음",
|
|
3031
3277
|
notEquals: "같지 않음",
|
|
3032
3278
|
contains: "포함",
|
|
3279
|
+
containsCaseInsensitive: "포함 (대소문자 무시)",
|
|
3033
3280
|
notContains: "포함하지 않음",
|
|
3034
3281
|
isEmpty: "비어 있음",
|
|
3035
3282
|
isNotEmpty: "비어 있지 않음",
|
|
@@ -3042,6 +3289,12 @@ const ko = {
|
|
|
3042
3289
|
between: "사이",
|
|
3043
3290
|
in: "포함됨",
|
|
3044
3291
|
notIn: "포함되지 않음",
|
|
3292
|
+
startsWith: "다음으로 시작",
|
|
3293
|
+
endsWith: "다음으로 끝남",
|
|
3294
|
+
isNull: "null임",
|
|
3295
|
+
isNotNull: "null이 아님",
|
|
3296
|
+
exists: "설정됨",
|
|
3297
|
+
notExists: "설정되지 않음",
|
|
3045
3298
|
},
|
|
3046
3299
|
},
|
|
3047
3300
|
sortBuilder: {
|
|
@@ -3087,5 +3340,64 @@ const ko = {
|
|
|
3087
3340
|
statusIdle: "유휴",
|
|
3088
3341
|
statusAway: "자리 비움",
|
|
3089
3342
|
},
|
|
3343
|
+
wizard: {
|
|
3344
|
+
missingRequired: "필수 항목을 입력하세요: {{fields}}",
|
|
3345
|
+
},
|
|
3346
|
+
flowRunner: {
|
|
3347
|
+
title: '입력',
|
|
3348
|
+
submitting: '제출 중…',
|
|
3349
|
+
saveAndContinue: '저장 후 계속',
|
|
3350
|
+
nextStep: '저장됨 — 다음 단계',
|
|
3351
|
+
completed: '플로우 「{{flow}}」이(가) 완료되었습니다',
|
|
3352
|
+
},
|
|
3353
|
+
appManagement: {
|
|
3354
|
+
title: "애플리케이션",
|
|
3355
|
+
subtitle: "구성된 모든 애플리케이션을 관리합니다",
|
|
3356
|
+
newApp: "새 앱",
|
|
3357
|
+
searchLabel: "앱 검색",
|
|
3358
|
+
searchPlaceholder: "앱 검색…",
|
|
3359
|
+
selectedCount: "{{n}}개 선택됨",
|
|
3360
|
+
bulkEnable: "활성화",
|
|
3361
|
+
bulkDisable: "비활성화",
|
|
3362
|
+
selectAll: "전체 선택({{n}})",
|
|
3363
|
+
empty: "앱을 찾을 수 없습니다.",
|
|
3364
|
+
defaultBadge: "기본값",
|
|
3365
|
+
active: "활성",
|
|
3366
|
+
inactive: "비활성",
|
|
3367
|
+
selectApp: "{{name}} 선택",
|
|
3368
|
+
openApp: "앱 열기",
|
|
3369
|
+
openAppNamed: "{{name}} 열기",
|
|
3370
|
+
editApp: "앱 편집",
|
|
3371
|
+
editAppNamed: "{{name}} 편집",
|
|
3372
|
+
editWithAi: "AI로 편집",
|
|
3373
|
+
editWithAiNamed: "AI로 {{name}} 편집",
|
|
3374
|
+
enableApp: "앱 활성화",
|
|
3375
|
+
disableApp: "앱 비활성화",
|
|
3376
|
+
enableAppNamed: "{{name}} 활성화",
|
|
3377
|
+
disableAppNamed: "{{name}} 비활성화",
|
|
3378
|
+
setDefault: "기본값으로 설정",
|
|
3379
|
+
setDefaultNamed: "{{name}}을(를) 기본값으로 설정",
|
|
3380
|
+
deleteApp: "앱 삭제",
|
|
3381
|
+
deleteAppNamed: "{{name}} 삭제",
|
|
3382
|
+
confirmDelete: "삭제하려면 다시 클릭하세요",
|
|
3383
|
+
confirmDeleteNamed: "{{name}} 삭제 확인",
|
|
3384
|
+
toast: {
|
|
3385
|
+
noClient: "메타데이터 서비스에 연결할 수 없습니다",
|
|
3386
|
+
unknownError: "알 수 없는 오류",
|
|
3387
|
+
appEnabled: "{{name}}을(를) 활성화했습니다",
|
|
3388
|
+
appDisabled: "{{name}}을(를) 비활성화했습니다",
|
|
3389
|
+
toggleFailed: "앱 상태 전환 실패: {{reason}}",
|
|
3390
|
+
setDefaultDone: "{{name}}을(를) 기본값으로 설정했습니다",
|
|
3391
|
+
setDefaultFailed: "기본 앱 설정 실패: {{reason}}",
|
|
3392
|
+
appDeleted: "{{name}}을(를) 삭제했습니다",
|
|
3393
|
+
deleteFailed: "앱 삭제 실패: {{reason}}",
|
|
3394
|
+
bulkEnabled: "앱 {{n}}개를 활성화했습니다",
|
|
3395
|
+
bulkDisabled: "앱 {{n}}개를 비활성화했습니다",
|
|
3396
|
+
bulkFailed: "{{n}}개 실패: {{details}}",
|
|
3397
|
+
bulkFailureEntry: "{{name}}({{reason}})",
|
|
3398
|
+
bulkFailureJoiner: "; ",
|
|
3399
|
+
bulkOperationFailed: "일괄 작업 실패: {{reason}}",
|
|
3400
|
+
},
|
|
3401
|
+
},
|
|
3090
3402
|
};
|
|
3091
3403
|
export default ko;
|