@object-ui/i18n 17.6.0 → 18.0.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 +5408 -0
- package/README.md +255 -13
- package/dist/LocalizationContext.d.ts +32 -9
- package/dist/LocalizationContext.js +32 -10
- package/dist/builtinAggregateLabels.d.ts +40 -0
- package/dist/builtinAggregateLabels.js +23 -0
- package/dist/currency.d.ts +27 -3
- package/dist/currency.js +28 -4
- package/dist/fallbackInterpolation.d.ts +79 -0
- package/dist/fallbackInterpolation.js +124 -0
- package/dist/i18n.d.ts +27 -1
- package/dist/i18n.js +99 -16
- package/dist/index.d.ts +8 -13
- package/dist/index.js +45 -17
- package/dist/locales/ar.d.ts +1504 -188
- package/dist/locales/ar.js +1711 -281
- package/dist/locales/de.d.ts +1080 -188
- package/dist/locales/de.js +1248 -261
- package/dist/locales/en.d.ts +1141 -249
- package/dist/locales/en.js +1714 -295
- package/dist/locales/es.d.ts +1186 -188
- package/dist/locales/es.js +1350 -255
- package/dist/locales/fr.d.ts +1186 -188
- package/dist/locales/fr.js +1351 -258
- package/dist/locales/index.d.ts +11940 -2033
- package/dist/locales/index.js +48 -9
- package/dist/locales/ja.d.ts +1080 -188
- package/dist/locales/ja.js +1240 -254
- package/dist/locales/ko.d.ts +1080 -188
- package/dist/locales/ko.js +1244 -258
- package/dist/locales/pt.d.ts +1186 -188
- package/dist/locales/pt.js +1350 -255
- package/dist/locales/registry.d.ts +102 -0
- package/dist/locales/registry.js +220 -0
- package/dist/locales/rtl.d.ts +24 -0
- package/dist/locales/rtl.js +26 -0
- package/dist/locales/ru.d.ts +1292 -188
- package/dist/locales/ru.js +1479 -272
- package/dist/locales/zh.d.ts +1144 -252
- package/dist/locales/zh.js +1245 -259
- package/dist/pickLocalized.d.ts +30 -0
- package/dist/pickLocalized.js +39 -0
- package/dist/provider.d.ts +101 -12
- package/dist/provider.js +335 -50
- package/dist/translateFn.d.ts +29 -0
- package/dist/translateFn.js +8 -0
- package/dist/useDisplayLocale.d.ts +11 -0
- package/dist/useDisplayLocale.js +11 -0
- package/dist/useObjectLabel.d.ts +143 -100
- package/dist/useObjectLabel.js +129 -82
- package/dist/useSafeTranslation.js +40 -42
- package/dist/utils/first-day-of-week.d.ts +71 -0
- package/dist/utils/first-day-of-week.js +61 -0
- package/dist/utils/formatting.d.ts +23 -1
- package/dist/utils/formatting.js +34 -5
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/spec-formatters.d.ts +13 -23
- package/dist/utils/spec-formatters.js +41 -2
- package/dist/utils/spec-translations.d.ts +16 -3
- package/dist/utils/spec-translations.js +52 -13
- package/package.json +12 -6
package/dist/locales/ko.js
CHANGED
|
@@ -13,16 +13,19 @@ const ko = {
|
|
|
13
13
|
notRestored: '서버가 요청을 받았지만 관리자 세션을 복원하지 않았습니다. 여전히 {{user}} 계정을 대행하고 있습니다. 로그아웃 후 다시 로그인하여 종료하세요.',
|
|
14
14
|
},
|
|
15
15
|
},
|
|
16
|
-
// objectui#2600 B5 — capability picker scope group headers (labels come from the
|
|
16
|
+
// objectui#2600 B5 — capability picker scope group headers (labels come from the capability registry).
|
|
17
17
|
capability: {
|
|
18
18
|
label: {
|
|
19
19
|
manage_users: "사용자 관리",
|
|
20
20
|
manage_org_users: "조직 사용자 관리",
|
|
21
21
|
manage_metadata: "메타데이터 관리",
|
|
22
|
+
manage_mailboxes: "메일함 관리",
|
|
22
23
|
manage_platform_settings: "플랫폼 설정 관리",
|
|
23
24
|
setup_access: "설정 접근",
|
|
24
25
|
setup_write: "설정 쓰기",
|
|
25
26
|
studio_access: "Studio 접근",
|
|
27
|
+
manage_sharing: "공유 관리",
|
|
28
|
+
view_all_audit_log: "모든 감사 로그 보기",
|
|
26
29
|
},
|
|
27
30
|
group: {
|
|
28
31
|
platform: '플랫폼',
|
|
@@ -30,26 +33,6 @@ const ko = {
|
|
|
30
33
|
other: '기타',
|
|
31
34
|
},
|
|
32
35
|
},
|
|
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
|
-
},
|
|
53
36
|
lookup: {
|
|
54
37
|
recentlyUsed: '최근 사용',
|
|
55
38
|
allResults: '모든 결과',
|
|
@@ -63,7 +46,8 @@ const ko = {
|
|
|
63
46
|
selectFirst: '먼저 {{fields}}을(를) 선택하세요',
|
|
64
47
|
selectRecord: '레코드 선택',
|
|
65
48
|
recordCount: '레코드 {{count}}개',
|
|
66
|
-
|
|
49
|
+
recordCount_one: '레코드 {{count}}개',
|
|
50
|
+
recordCount_other: '레코드 {{count}}개',
|
|
67
51
|
pageOf: '{{total}}페이지 중 {{current}}페이지',
|
|
68
52
|
filters: '필터',
|
|
69
53
|
clear: '지우기',
|
|
@@ -116,14 +100,26 @@ const ko = {
|
|
|
116
100
|
closePanel: "패널 닫기",
|
|
117
101
|
resizeDrawer: "패널 너비 조정",
|
|
118
102
|
itemCount: "{{count}}개 항목",
|
|
119
|
-
|
|
103
|
+
itemCount_one: "{{count}}개 항목",
|
|
104
|
+
itemCount_other: "{{count}}개 항목",
|
|
120
105
|
toggleSidebar: "사이드바 전환",
|
|
106
|
+
breadcrumb: "탐색 경로",
|
|
121
107
|
package: "패키지",
|
|
122
108
|
done: "완료",
|
|
123
109
|
editInStudio: "Studio에서 편집",
|
|
124
110
|
record: "레코드",
|
|
125
111
|
retry: "다시 시도",
|
|
126
112
|
printDialogHint: "브라우저의 인쇄 대화 상자를 엽니다(PDF 내보내기가 아닙니다)",
|
|
113
|
+
// The non-grid row ceiling's footnote (objectui#7210). Two keys because
|
|
114
|
+
// there are two conditions: a reported `total` states the fact with BOTH
|
|
115
|
+
// numbers, a missing one cannot name how many. Kept terse deliberately —
|
|
116
|
+
// this copy is eagerly loaded, and since objectui#7399 these bytes are
|
|
117
|
+
// budgeted by the `i18n-locales` chunk, not `framework`. ⛔ That ceiling's
|
|
118
|
+
// headroom is deliberately NOT restated here — it moves on every
|
|
119
|
+
// re-baseline, and the figure that was here went stale.
|
|
120
|
+
// `pnpm check:eager-closure` prints it.
|
|
121
|
+
rowCeilingNote: "전체 {{total}}개 중 처음 {{shown}}개를 표시합니다. 필터를 좁히세요.",
|
|
122
|
+
rowCeilingNoteUnknownTotal: "처음 {{shown}}개를 표시합니다. 필터를 좁히세요.",
|
|
127
123
|
},
|
|
128
124
|
actions: {
|
|
129
125
|
decisionOutput: {
|
|
@@ -135,6 +131,15 @@ const ko = {
|
|
|
135
131
|
acknowledge: '저장했습니다',
|
|
136
132
|
copyAll: '모두 복사',
|
|
137
133
|
},
|
|
134
|
+
notAvailableHere: '"{{action}}"은(는) 현재 페이지에서 사용할 수 없습니다.',
|
|
135
|
+
notAvailableForRecord: '이 레코드에서는 사용할 수 없습니다',
|
|
136
|
+
completedSuccessfully: '작업이 완료되었습니다',
|
|
137
|
+
failed: '작업 실패',
|
|
138
|
+
parallelFailed: '하나 이상의 병렬 작업이 실패했습니다',
|
|
139
|
+
undo: '실행 취소',
|
|
140
|
+
undone: '변경 실행 취소됨',
|
|
141
|
+
undoneOperation: '실행 취소: {{description}}',
|
|
142
|
+
redoneOperation: '다시 실행: {{description}}',
|
|
138
143
|
},
|
|
139
144
|
validation: {
|
|
140
145
|
required: "{{field}}은(는) 필수입니다",
|
|
@@ -152,19 +157,47 @@ const ko = {
|
|
|
152
157
|
},
|
|
153
158
|
form: {
|
|
154
159
|
noPermissionToSave: "이 레코드를 저장할 권한이 없습니다.",
|
|
160
|
+
noPermissionToCreate: "{{object}} 생성 권한이 없습니다. 필드는 읽기 전용입니다.",
|
|
161
|
+
noPermissionToEdit: "{{object}} 편집 권한이 없습니다. 필드는 읽기 전용입니다.",
|
|
155
162
|
submitFailed: "저장하지 못했습니다. 다시 시도해 주세요.",
|
|
163
|
+
uploadInFlight: "업로드가 완료된 후에 저장하세요.",
|
|
164
|
+
clearedOnHide: "현재 값에 더 이상 해당하지 않는 항목을 비웠습니다: {{fields}}",
|
|
165
|
+
visibleWhenFaulted: "제출할 수 없습니다: {{fields}}의 visibleWhen 규칙을 평가할 수 없습니다. 이 양식을 제출하려면 먼저 규칙을 수정해야 합니다.",
|
|
156
166
|
discardTitle: "변경 내용을 버릴까요?",
|
|
157
167
|
discardMessage: "저장하지 않은 변경 내용이 있습니다. 지금 이 양식을 닫으면 편집 내용이 사라집니다.",
|
|
158
168
|
// objectui#4024 — the create/edit dialog's `sr-only` accessible
|
|
159
169
|
// description, used when the form declares no `description` of its own.
|
|
160
170
|
dialogDescriptionFallback: "양식 필드를 작성한 다음 제출하거나 취소하세요.",
|
|
171
|
+
deniedDescription: "이 필드를 편집할 권한이 없습니다.",
|
|
172
|
+
serverDefaultHint: "저장 시 자동으로 설정됩니다.",
|
|
173
|
+
maxFileSize: "최대 크기: {{size}}",
|
|
174
|
+
masterDetail: {
|
|
175
|
+
loadingColumns: "열 로드 중…",
|
|
176
|
+
subtotal: "소계",
|
|
177
|
+
tax: "세금({{rate}}%)",
|
|
178
|
+
total: "합계",
|
|
179
|
+
lineItem: "라인 항목",
|
|
180
|
+
rowTitle: "{{title}} — {{row}}행",
|
|
181
|
+
applyRow: "적용",
|
|
182
|
+
editorDescription: "레코드와 라인 항목을 입력한 다음 저장하세요.",
|
|
183
|
+
noChildObject: "이 컬렉션에 하위 개체가 구성되지 않았습니다. {{property}}을(를) 행을 나열할 개체로 설정하세요.",
|
|
184
|
+
schemaUnavailable: "{{object}}의 스키마를 불러올 수 없어 이 컬렉션에 표시할 열이 없습니다. 개체가 존재하고 읽을 수 있는지 확인한 다음 다시 불러오세요.",
|
|
185
|
+
noRelationshipField: "{{object}}이(가) {{parent}}에 어떻게 연결되는지 확인할 수 없습니다. 부모를 참조하는 lookup 또는 master_detail 필드가 없습니다. 이 컬렉션의 {{property}}을(를) 부모 레코드를 보유한 필드로 설정하세요.",
|
|
186
|
+
},
|
|
187
|
+
lineItems: {
|
|
188
|
+
title: "라인 항목",
|
|
189
|
+
saveRecordFirst: "라인 항목을 추가하려면 먼저 레코드를 저장하세요.",
|
|
190
|
+
notLoaded: "이 레코드의 라인 항목을 불러오지 않았습니다.",
|
|
191
|
+
loadFailed: "라인 항목을 불러오지 못했습니다",
|
|
192
|
+
saveFailed: "라인 항목을 저장하지 못했습니다",
|
|
193
|
+
noChildObject: "이 패널에 하위 개체가 구성되지 않았습니다. {{property}}을(를) 행을 나열할 개체로 설정하세요.",
|
|
194
|
+
},
|
|
161
195
|
keepEditing: "계속 편집",
|
|
162
196
|
discard: "버리기",
|
|
163
197
|
conflictTitle: "저장 충돌",
|
|
164
198
|
conflictMessage: "편집하는 동안 다른 사용자가 이 레코드를 변경했습니다. 덮어쓰면 상대방의 변경 내용이 내 내용으로 대체됩니다.",
|
|
165
199
|
conflictLatestVersion: "상대방 저장 시각: {{time}}",
|
|
166
200
|
conflictOverwrite: "덮어쓰기",
|
|
167
|
-
addItem: "항목 추가",
|
|
168
201
|
removeItem: "항목 제거",
|
|
169
202
|
fieldRequired: "이 필드는 필수입니다",
|
|
170
203
|
invalidFormat: "형식이 올바르지 않습니다",
|
|
@@ -182,6 +215,12 @@ const ko = {
|
|
|
182
215
|
createSuccess: "{{object}} 생성됨",
|
|
183
216
|
updateSuccess: "{{object}} 업데이트됨",
|
|
184
217
|
deleteSuccess: "{{object}} 삭제됨",
|
|
218
|
+
created: "생성됨",
|
|
219
|
+
saved: "저장됨",
|
|
220
|
+
savedNamed: "{{title}} 저장됨",
|
|
221
|
+
submitted: "제출됨",
|
|
222
|
+
errorLoading: "양식 로딩 오류",
|
|
223
|
+
navigateRefused: "이 양식에 선언된 `navigateOnSuccess` 대상이 거부되어 이동하지 않았습니다.",
|
|
185
224
|
fullscreen: {
|
|
186
225
|
title: "텍스트 편집",
|
|
187
226
|
description: "전체 텍스트 값을 편집한 다음 변경 사항을 저장하거나 취소하세요.",
|
|
@@ -200,12 +239,18 @@ const ko = {
|
|
|
200
239
|
remove: "이미지 {{index}} 삭제",
|
|
201
240
|
enlarge: "{{name}} 확대",
|
|
202
241
|
preview: "이미지 미리보기",
|
|
242
|
+
cropPreview: "이미지 자르기 미리보기",
|
|
203
243
|
previous: "이전 이미지",
|
|
204
244
|
next: "다음 이미지",
|
|
205
245
|
counter: "{{current}} / {{total}}",
|
|
206
246
|
},
|
|
247
|
+
percent: {
|
|
248
|
+
slider: "백분율",
|
|
249
|
+
},
|
|
207
250
|
relativeDate: {
|
|
208
251
|
overdue: "기한 초과 {{count}}일",
|
|
252
|
+
overdue_one: "기한 초과 {{count}}일",
|
|
253
|
+
overdue_other: "기한 초과 {{count}}일",
|
|
209
254
|
},
|
|
210
255
|
file: {
|
|
211
256
|
dragDropHere: '파일을 여기로 끌어다 놓기',
|
|
@@ -222,6 +267,9 @@ const ko = {
|
|
|
222
267
|
remove: '{{name}} 제거',
|
|
223
268
|
exceedsMaxSize: '"{{name}}"이(가) 최대 크기({{max}} MB)를 초과합니다',
|
|
224
269
|
uploadFailed: '"{{name}}" 업로드 실패: {{error}}',
|
|
270
|
+
uploadIncomplete: '"{{name}}" 업로드가 완료되지 않았습니다: 파일 ID가 반환되지 않아 저장된 내용이 없습니다',
|
|
271
|
+
restricted: '제한된 파일',
|
|
272
|
+
restrictedHint: '이 파일의 세부 정보에 접근할 권한이 없습니다',
|
|
225
273
|
},
|
|
226
274
|
richText: {
|
|
227
275
|
format: "형식: {{format}}",
|
|
@@ -238,9 +286,13 @@ const ko = {
|
|
|
238
286
|
search: "객체 검색…",
|
|
239
287
|
empty: "객체를 찾을 수 없습니다",
|
|
240
288
|
},
|
|
289
|
+
registryRef: {
|
|
290
|
+
loadFailed: "목록을 불러오지 못했습니다. 이름을 직접 입력할 수 있습니다.",
|
|
291
|
+
notFound: "{{name}} (찾을 수 없음)",
|
|
292
|
+
},
|
|
241
293
|
recipient: {
|
|
242
294
|
selectTypeFirst: "먼저 수신자 유형을 선택하세요.",
|
|
243
|
-
loading: "
|
|
295
|
+
loading: "로딩 중…",
|
|
244
296
|
search: "검색…",
|
|
245
297
|
empty: "일치하는 항목 없음",
|
|
246
298
|
select: "수신자 선택",
|
|
@@ -249,6 +301,9 @@ const ko = {
|
|
|
249
301
|
selectBusinessUnit: "사업 단위 선택",
|
|
250
302
|
selectPosition: "직위 선택",
|
|
251
303
|
selectUnitAndSubordinates: "사업 단위 선택",
|
|
304
|
+
selectField: "사용자 필드 선택",
|
|
305
|
+
noUserFields: "이 객체에는 사용자 필드가 없습니다",
|
|
306
|
+
fieldNotUserTyped: "{{name}} — 사용자 필드가 아닙니다",
|
|
252
307
|
},
|
|
253
308
|
filterCondition: {
|
|
254
309
|
selectObjectFirst: "먼저 객체를 선택하세요.",
|
|
@@ -259,6 +314,33 @@ const ko = {
|
|
|
259
314
|
editAsJson: "JSON으로 편집",
|
|
260
315
|
useVisualBuilder: "비주얼 빌더 사용",
|
|
261
316
|
},
|
|
317
|
+
object: {
|
|
318
|
+
invalidJson: "잘못된 JSON",
|
|
319
|
+
},
|
|
320
|
+
location: {
|
|
321
|
+
refusedFormat: "저장되지 않았습니다: 위도, 경도 쌍으로 입력하세요(예: 30.2741, 120.1551).",
|
|
322
|
+
refusedRange: "저장되지 않았습니다: {{detail}}",
|
|
323
|
+
latitude: "위도",
|
|
324
|
+
longitude: "경도",
|
|
325
|
+
refusedResidueOne: "저장되지 않았습니다: {{name}} “{{text}}”은(는) 숫자가 아닙니다. 일반 소수로 입력하세요(예: 30.2741, 120.1551).",
|
|
326
|
+
refusedResidue: "저장되지 않았습니다: {{name}} “{{text}}”과(와) {{otherName}} “{{otherText}}”은(는) 숫자가 아닙니다. 일반 소수로 입력하세요(예: 30.2741, 120.1551).",
|
|
327
|
+
},
|
|
328
|
+
date: {
|
|
329
|
+
impossibleDay: "저장된 값 “{{value}}”은(는) 실제 날짜가 아닙니다. 바꾸려면 날짜를 선택하세요.",
|
|
330
|
+
},
|
|
331
|
+
dateTime: {
|
|
332
|
+
impossibleDay: "저장된 값 “{{value}}”은(는) 실제 날짜가 아닙니다. 바꾸려면 날짜와 시간을 선택하세요.",
|
|
333
|
+
},
|
|
334
|
+
datePicker: {
|
|
335
|
+
today: "오늘",
|
|
336
|
+
tomorrow: "내일",
|
|
337
|
+
clear: "날짜 지우기",
|
|
338
|
+
openCalendar: "달력 열기",
|
|
339
|
+
invalid: "저장되지 않음: “{{value}}”은(는) 날짜가 아닙니다. {{format}} 형식으로 입력하거나 달력에서 선택하세요.",
|
|
340
|
+
},
|
|
341
|
+
number: {
|
|
342
|
+
badInput: "저장되지 않았습니다: 이 입력란의 텍스트는 숫자가 아닙니다. 일반 소수로 입력하세요(예: {{example}}).",
|
|
343
|
+
},
|
|
262
344
|
tags: {
|
|
263
345
|
placeholder: "입력 후 Enter 키로 추가…",
|
|
264
346
|
},
|
|
@@ -270,10 +352,25 @@ const ko = {
|
|
|
270
352
|
postalCode: "우편번호",
|
|
271
353
|
country: "국가",
|
|
272
354
|
},
|
|
355
|
+
boolean: {
|
|
356
|
+
offBadge: "{{label}} — 꺼짐",
|
|
357
|
+
completed: "완료됨",
|
|
358
|
+
notCompleted: "완료되지 않음",
|
|
359
|
+
},
|
|
273
360
|
textarea: {
|
|
274
361
|
characterCount: "글자 수: {{max}}자 중 {{count}}자",
|
|
275
362
|
charactersRemaining: "{{count}}자 남음",
|
|
276
363
|
},
|
|
364
|
+
grid: {
|
|
365
|
+
addLine: "행 추가",
|
|
366
|
+
noItems: "항목 없음",
|
|
367
|
+
noItemsAddHint: "아직 항목이 없습니다. “{{label}}”을(를) 클릭하여 시작하세요.",
|
|
368
|
+
optionalColumns: "선택 열",
|
|
369
|
+
computed: "자동 계산",
|
|
370
|
+
openRow: "행 열기",
|
|
371
|
+
duplicateRow: "행 복제",
|
|
372
|
+
removeRow: "행 삭제",
|
|
373
|
+
},
|
|
277
374
|
},
|
|
278
375
|
table: {
|
|
279
376
|
rowsPerPage: "페이지당 행 수",
|
|
@@ -289,10 +386,15 @@ const ko = {
|
|
|
289
386
|
selectAllRows: "모든 행 선택",
|
|
290
387
|
expandRow: "행 펼치기",
|
|
291
388
|
collapseRow: "행 접기",
|
|
389
|
+
rowActions: "행 작업",
|
|
292
390
|
hideColumn: "열 숨기기",
|
|
293
391
|
freezeColumn: "열 고정",
|
|
294
392
|
unfreezeColumn: "열 고정 해제",
|
|
295
393
|
pageInfo: "{{total}} 페이지 중 {{current}} 페이지",
|
|
394
|
+
firstPage: "첫 페이지",
|
|
395
|
+
previousPage: "이전 페이지",
|
|
396
|
+
nextPage: "다음 페이지",
|
|
397
|
+
lastPage: "마지막 페이지",
|
|
296
398
|
totalRecords: "총 {{count}}개",
|
|
297
399
|
noResults: "결과 없음",
|
|
298
400
|
noResultsHint: "필터 또는 검색어를 조정해 보세요.",
|
|
@@ -302,23 +404,39 @@ const ko = {
|
|
|
302
404
|
open: "열기",
|
|
303
405
|
search: "검색…",
|
|
304
406
|
modified: "{{count}}개 행 수정됨",
|
|
407
|
+
modified_one: "{{count}}개 행 수정됨",
|
|
408
|
+
modified_other: "{{count}}개 행 수정됨",
|
|
409
|
+
saved: "{{count}}개 행 저장됨",
|
|
410
|
+
saved_one: "{{count}}개 행 저장됨",
|
|
411
|
+
saved_other: "{{count}}개 행 저장됨",
|
|
305
412
|
saveFailed: '저장 실패',
|
|
306
413
|
selected: "{{count}}개 선택됨",
|
|
414
|
+
selected_one: "{{count}}개 선택됨",
|
|
415
|
+
selected_other: "{{count}}개 선택됨",
|
|
307
416
|
edit: "편집",
|
|
308
417
|
delete: "삭제",
|
|
309
418
|
},
|
|
310
419
|
grid: {
|
|
311
420
|
bulkSelected: "{{count}}건 선택됨",
|
|
421
|
+
bulkSelected_one: "{{count}}건 선택됨",
|
|
422
|
+
bulkSelected_other: "{{count}}건 선택됨",
|
|
312
423
|
bulkSelectedAllMatches: "{{count}}건 선택됨(일치 항목 전체)",
|
|
313
424
|
bulkClear: "선택 해제",
|
|
314
425
|
bulkAllOnPage: "이 페이지의 {{count}}건이 모두 선택되었습니다.",
|
|
426
|
+
bulkAllOnPage_one: "이 페이지의 {{count}}건이 모두 선택되었습니다.",
|
|
427
|
+
bulkAllOnPage_other: "이 페이지의 {{count}}건이 모두 선택되었습니다.",
|
|
315
428
|
bulkSelectAllMatching: "일치하는 {{count}}건 모두 선택",
|
|
316
429
|
bulkAllMatchingSelected: "일치하는 레코드 {{count}}건이 모두 선택되었습니다.",
|
|
430
|
+
bulkActions: "일괄 작업",
|
|
317
431
|
bulk: {
|
|
318
432
|
confirmDefault: "레코드 {{count}}건에 적용됩니다.",
|
|
433
|
+
confirmDefault_one: "레코드 {{count}}건에 적용됩니다.",
|
|
434
|
+
confirmDefault_other: "레코드 {{count}}건에 적용됩니다.",
|
|
319
435
|
overLimit: "선택 건수({{count}})가 작업 한도({{limit}})를 초과합니다. 선택을 줄여 주세요.",
|
|
320
436
|
affectedRecords: "영향을 받는 레코드({{count}}):",
|
|
321
437
|
skippedIneligible: "선택한 레코드 중 {{count}}건은 이 작업의 대상이 아니므로 건너뜁니다.",
|
|
438
|
+
skippedIneligible_one: "선택한 레코드 중 {{count}}건은 이 작업의 대상이 아니므로 건너뜁니다.",
|
|
439
|
+
skippedIneligible_other: "선택한 레코드 중 {{count}}건은 이 작업의 대상이 아니므로 건너뜁니다.",
|
|
322
440
|
rowFallback: "{{index}}행",
|
|
323
441
|
andMore: "… 외 {{count}}건",
|
|
324
442
|
processed: "{{count}} / {{total}} 처리됨",
|
|
@@ -336,8 +454,7 @@ const ko = {
|
|
|
336
454
|
undo: "되돌리기",
|
|
337
455
|
undoing: "되돌리는 중…",
|
|
338
456
|
done: "완료",
|
|
339
|
-
|
|
340
|
-
loading: "불러오는 중…",
|
|
457
|
+
loading: "로딩 중…",
|
|
341
458
|
},
|
|
342
459
|
actions: "작업",
|
|
343
460
|
edit: "편집",
|
|
@@ -349,17 +466,27 @@ const ko = {
|
|
|
349
466
|
pullToRefresh: "당겨서 새로고침",
|
|
350
467
|
refreshing: "새로고침 중…",
|
|
351
468
|
openRecord: "레코드 열기",
|
|
469
|
+
recordUnavailable: "{{object}} · 레코드를 사용할 수 없음",
|
|
352
470
|
rowHeight: "행 높이: {{mode}}",
|
|
353
471
|
openMenu: "메뉴 열기",
|
|
354
472
|
empty: "비어 있음",
|
|
355
473
|
yes: "예",
|
|
356
474
|
no: "아니요",
|
|
357
475
|
systemFields: "시스템",
|
|
476
|
+
// objectui#10881 — the grouped grid's two refusals: over a data source
|
|
477
|
+
// that cannot answer the group header query, and over rows a host
|
|
478
|
+
// handed in while declaring them one page of more. `queryGroupHeaders`
|
|
479
|
+
// is the member's name and stays untranslated.
|
|
480
|
+
grouping: {
|
|
481
|
+
needsHeaderQuery: "이 뷰는 그룹화되어 있지만 데이터 소스가 queryGroupHeaders를 구현하지 않아 그룹 개수를 셀 수 없습니다. 레코드를 표시하려면 그룹화를 제거하세요.",
|
|
482
|
+
needsWholeRows: "그룹화에는 모든 레코드가 필요하지만 이 그리드에는 한 페이지만 전달되어 그룹 개수를 셀 수 없습니다. 모든 레코드를 전달하거나 queryGroupHeaders를 구현하는 데이터 소스에서 그리드가 불러오도록 하세요.",
|
|
483
|
+
},
|
|
358
484
|
// objectui#4024 — column-footer aggregate prefixes, keyed by the spec's
|
|
359
485
|
// `ColumnSummary` vocabulary. `pattern` owns the label/value join so this
|
|
360
486
|
// pack controls its own separator and word order.
|
|
361
487
|
summary: {
|
|
362
488
|
pattern: "{{label}}: {{value}}",
|
|
489
|
+
pagePattern: "{{label}} (이 페이지): {{value}}",
|
|
363
490
|
count: "개수",
|
|
364
491
|
countEmpty: "빈 값",
|
|
365
492
|
countFilled: "채워짐",
|
|
@@ -381,10 +508,14 @@ const ko = {
|
|
|
381
508
|
},
|
|
382
509
|
import: {
|
|
383
510
|
downloadTemplate: "템플릿 다운로드",
|
|
384
|
-
downloadTemplateHint: "
|
|
511
|
+
downloadTemplateHint: "가져올 수 있는 열만 담은 Excel 파일을 받습니다(필수 필드에는 * 표시, 작성 안내 포함).",
|
|
385
512
|
templateFileName: "{{object}}-import-template",
|
|
513
|
+
templateDownloadFailed: "템플릿을 다운로드할 수 없습니다. 다시 시도하세요.",
|
|
514
|
+
templateNotPermitted: "이 객체의 레코드를 생성할 권한이 없어 가져오기 템플릿을 사용할 수 없습니다.",
|
|
386
515
|
autoMatched: "자동 매핑됨",
|
|
387
516
|
autoMatchedSummary: "{{count}}개 열을 자동 매핑했습니다 — 아래에서 확인하고 조정하세요.",
|
|
517
|
+
autoMatchedSummary_one: "{{count}}개 열을 자동 매핑했습니다 — 아래에서 확인하고 조정하세요.",
|
|
518
|
+
autoMatchedSummary_other: "{{count}}개 열을 자동 매핑했습니다 — 아래에서 확인하고 조정하세요.",
|
|
388
519
|
confidence: {
|
|
389
520
|
high: "신뢰도 높음",
|
|
390
521
|
medium: "신뢰도 보통",
|
|
@@ -397,8 +528,14 @@ const ko = {
|
|
|
397
528
|
cancelImport: "가져오기 취소",
|
|
398
529
|
importCancelled: "가져오기를 취소했습니다",
|
|
399
530
|
resultsTruncated: "{{total}}행 중 처음 {{count}}행의 결과를 표시합니다.",
|
|
531
|
+
resultsTruncated_one: "{{total}}행 중 처음 {{count}}행의 결과를 표시합니다.",
|
|
532
|
+
resultsTruncated_other: "{{total}}행 중 처음 {{count}}행의 결과를 표시합니다.",
|
|
400
533
|
createdCount: "{{count}}건 생성",
|
|
534
|
+
createdCount_one: "{{count}}건 생성",
|
|
535
|
+
createdCount_other: "{{count}}건 생성",
|
|
401
536
|
updatedCount: "{{count}}건 업데이트",
|
|
537
|
+
updatedCount_one: "{{count}}건 업데이트",
|
|
538
|
+
updatedCount_other: "{{count}}건 업데이트",
|
|
402
539
|
downloadFailed: "실패한 행 다운로드",
|
|
403
540
|
options: "가져오기 옵션",
|
|
404
541
|
writeMode: "기존 레코드와 일치하는 행의 처리",
|
|
@@ -413,9 +550,6 @@ const ko = {
|
|
|
413
550
|
needMatchFields: "일치 기준 필드를 하나 이상 선택하세요.",
|
|
414
551
|
matchOnlyField: "(일치 전용)",
|
|
415
552
|
optCreateOptions: "알 수 없는 선택 값 유지",
|
|
416
|
-
optRunAutomations: "자동화 및 트리거 실행",
|
|
417
|
-
optTreatHistorical: "과거 데이터로 가져오기",
|
|
418
|
-
optTreatHistoricalHint: "(완료된 레코드를 그대로 가져옵니다 — 상태 머신 검사를 건너뛰고 현재 시각을 찍는 대신 원래 타임스탬프와 작성자를 유지합니다)",
|
|
419
553
|
optSkipBlankKey: "일치 값이 비어 있는 행 건너뛰기",
|
|
420
554
|
optBackground: "백그라운드에서 가져오기",
|
|
421
555
|
optBackgroundHint: "(되돌릴 수 있는 작업으로 실행됩니다)",
|
|
@@ -430,6 +564,7 @@ const ko = {
|
|
|
430
564
|
invalidBoolean: "\"{{value}}\"은(는) 유효한 true/false 값이 아닙니다",
|
|
431
565
|
invalidNumber: "\"{{value}}\"은(는) 유효한 숫자가 아닙니다",
|
|
432
566
|
invalidDate: "\"{{value}}\"은(는) 유효한 날짜가 아닙니다",
|
|
567
|
+
invalidTime: "\"{{value}}\"은(는) 유효한 시간이 아닙니다",
|
|
433
568
|
invalidOption: "\"{{value}}\"은(는) 허용된 선택지에 없습니다",
|
|
434
569
|
requiredValue: "필수 필드입니다",
|
|
435
570
|
matchAmbiguous: "기존 레코드 여러 건과 일치합니다 — 고유한 값이나 레코드 ID를 사용하세요",
|
|
@@ -438,7 +573,7 @@ const ko = {
|
|
|
438
573
|
historyDescription: "이 객체의 최근 가져오기입니다.",
|
|
439
574
|
historyHint: "백그라운드 가져오기 작업, 최신순.",
|
|
440
575
|
historyRefresh: "새로고침",
|
|
441
|
-
historyLoading: "
|
|
576
|
+
historyLoading: "로딩 중…",
|
|
442
577
|
historyEmpty: "아직 가져오기가 없습니다.",
|
|
443
578
|
historyUnsupported: "이 데이터 소스는 가져오기 기록을 지원하지 않습니다.",
|
|
444
579
|
historyColStatus: "상태",
|
|
@@ -446,10 +581,15 @@ const ko = {
|
|
|
446
581
|
historyColResult: "결과",
|
|
447
582
|
historyColTime: "시각",
|
|
448
583
|
errorCount: "오류 {{count}}건",
|
|
584
|
+
errorCount_one: "오류 {{count}}건",
|
|
585
|
+
errorCount_other: "오류 {{count}}건",
|
|
449
586
|
undoImport: "가져오기 되돌리기",
|
|
450
587
|
undoing: "되돌리는 중…",
|
|
451
588
|
undoConfirm: "이 가져오기를 되돌릴까요? 생성된 레코드는 삭제되고 업데이트된 레코드는 이전 값으로 복원됩니다.",
|
|
452
589
|
reverted: "되돌림",
|
|
590
|
+
undoPartial: "{{count}}개 행을 되돌리지 못했습니다. 다시 되돌리면 이 행만 다시 시도합니다.",
|
|
591
|
+
undoPartial_one: "{{count}}개 행을 되돌리지 못했습니다. 다시 되돌리면 이 행만 다시 시도합니다.",
|
|
592
|
+
undoPartial_other: "{{count}}개 행을 되돌리지 못했습니다. 다시 되돌리면 이 행만 다시 시도합니다.",
|
|
453
593
|
jobStatus: {
|
|
454
594
|
pending: "대기 중",
|
|
455
595
|
running: "실행 중",
|
|
@@ -506,19 +646,29 @@ const ko = {
|
|
|
506
646
|
mapped: "매핑됨",
|
|
507
647
|
skipped: "건너뜀",
|
|
508
648
|
rowsWithErrors: "오류가 있는 {{count}}개 행",
|
|
649
|
+
rowsWithErrors_one: "오류가 있는 {{count}}개 행",
|
|
650
|
+
rowsWithErrors_other: "오류가 있는 {{count}}개 행",
|
|
509
651
|
rowsCorrected: "{{count}}개 행 수정됨",
|
|
652
|
+
rowsCorrected_one: "{{count}}개 행 수정됨",
|
|
653
|
+
rowsCorrected_other: "{{count}}개 행 수정됨",
|
|
510
654
|
clickToFix: "— 강조 표시된 셀을 클릭하여 인라인 편집.",
|
|
511
655
|
showingRows: "{{total}}개 중 {{shown}}개 행 표시",
|
|
512
656
|
importing: "가져오는 중… {{progress}}%",
|
|
513
657
|
importComplete: "가져오기 완료",
|
|
658
|
+
importPartial: "가져오기가 완료되었지만 오류가 있습니다",
|
|
659
|
+
importFailed: "가져오기에 실패했습니다",
|
|
514
660
|
imported: "{{count}}개 가져옴",
|
|
515
661
|
skippedCount: "{{count}}개 건너뜀",
|
|
516
662
|
moreErrors: "…{{count}}개 오류 더",
|
|
663
|
+
moreErrors_one: "…{{count}}개 오류 더",
|
|
664
|
+
moreErrors_other: "…{{count}}개 오류 더",
|
|
517
665
|
cancel: "취소",
|
|
518
666
|
back: "뒤로",
|
|
519
667
|
next: "다음",
|
|
520
668
|
close: "닫기",
|
|
521
669
|
importNRows: "{{count}}개 행 가져오기",
|
|
670
|
+
importNRows_one: "{{count}}개 행 가져오기",
|
|
671
|
+
importNRows_other: "{{count}}개 행 가져오기",
|
|
522
672
|
importingProgress: "가져오는 중…",
|
|
523
673
|
requiredMark: "*",
|
|
524
674
|
required: "필수",
|
|
@@ -530,17 +680,44 @@ const ko = {
|
|
|
530
680
|
month: "월",
|
|
531
681
|
week: "주",
|
|
532
682
|
day: "일",
|
|
533
|
-
agenda: "일정",
|
|
534
683
|
allDay: "종일",
|
|
535
|
-
noEvents: "일정이 없습니다",
|
|
536
684
|
newEvent: "새 일정",
|
|
537
685
|
moreEvents: "+{{count}} 더보기",
|
|
686
|
+
unscheduled: "일정 없음 ({{count}})",
|
|
687
|
+
loading: "캘린더 로딩 중…",
|
|
688
|
+
loadError: "오류: {{message}}",
|
|
689
|
+
configRequired: "캘린더 설정이 필요합니다. startDateField를 지정하세요. 캘린더의 유일한 필수 키입니다. 일정 제목은 titleField 없이도 확인됩니다.",
|
|
690
|
+
configRequiredHint: "뷰의 calendar 블록에 속합니다. 인터페이스 페이지에는 자체 캘린더 슬롯이 없습니다. sourceView를 캘린더를 선언한 뷰로 지정하세요.",
|
|
691
|
+
eventDetails: "일정 세부 정보",
|
|
692
|
+
pullToRefresh: "당겨서 새로고침",
|
|
693
|
+
refreshing: "새로고침 중…",
|
|
694
|
+
onDate: "{{date}}",
|
|
695
|
+
eventTitle: "제목",
|
|
696
|
+
eventTitlePlaceholder: "이 일정은 어떤 내용인가요?",
|
|
697
|
+
creating: "생성 중…",
|
|
698
|
+
titleRequired: "제목을 입력하세요",
|
|
699
|
+
a11y: {
|
|
700
|
+
region: "캘린더",
|
|
701
|
+
grid: "캘린더 그리드",
|
|
702
|
+
goToToday: "오늘로 이동",
|
|
703
|
+
previousPeriod: "이전 기간",
|
|
704
|
+
nextPeriod: "다음 기간",
|
|
705
|
+
currentDate: "현재 날짜: {{date}}",
|
|
706
|
+
dayCell: "{{date}}, 일정 {{count}}개",
|
|
707
|
+
dayCell_one: "{{date}}, 일정 {{count}}개",
|
|
708
|
+
dayCell_other: "{{date}}, 일정 {{count}}개",
|
|
709
|
+
resizeEventEnd: "일정 종료 시점 조절",
|
|
710
|
+
resizeEventEndHint: "드래그하여 종료 날짜 변경",
|
|
711
|
+
resizeStart: "시작 시점 조절",
|
|
712
|
+
resizeEnd: "종료 시점 조절",
|
|
713
|
+
},
|
|
538
714
|
},
|
|
539
715
|
list: {
|
|
540
716
|
firstRunTitle: "아직 아무것도 없습니다",
|
|
541
717
|
firstRunMessage: "첫 레코드를 만들어 시작하세요.",
|
|
542
718
|
noMatches: "일치하는 레코드가 없습니다",
|
|
543
719
|
noMatchesMessage: "현재 필터나 검색어와 일치하는 레코드가 없습니다. 조건을 조정하거나 지워 보세요.",
|
|
720
|
+
viewFilterNoMatchesMessage: "이 뷰의 필터와 일치하는 레코드가 없습니다.",
|
|
544
721
|
loadErrorTitle: "레코드를 불러오지 못했습니다",
|
|
545
722
|
loadErrorMessage: "이 데이터를 불러오는 중 문제가 발생했습니다. 연결을 확인하고 다시 시도하세요.",
|
|
546
723
|
loadErrorForbiddenTitle: "접근 권한이 없습니다",
|
|
@@ -577,17 +754,24 @@ const ko = {
|
|
|
577
754
|
refresh: "새로고침",
|
|
578
755
|
loading: "레코드 로딩 중…",
|
|
579
756
|
recordCount: "{{count}}개 레코드",
|
|
580
|
-
|
|
757
|
+
recordCount_one: "{{count}}개 레코드",
|
|
758
|
+
recordCount_other: "{{count}}개 레코드",
|
|
581
759
|
addRecord: "레코드 추가",
|
|
760
|
+
// objectui#12703 — the compact list's footer link to the object's list or the block's view.
|
|
761
|
+
viewAll: "모두 보기",
|
|
582
762
|
tabs: "탭",
|
|
583
763
|
allRecords: "전체 레코드",
|
|
584
764
|
search: "검색",
|
|
585
765
|
filter: "필터",
|
|
586
766
|
filterRecords: "레코드 필터",
|
|
767
|
+
filterActive: "필터, {{count}}개 적용됨",
|
|
768
|
+
filterActive_one: "필터, {{count}}개 적용됨",
|
|
769
|
+
filterActive_other: "필터, {{count}}개 적용됨",
|
|
587
770
|
sort: "정렬",
|
|
588
771
|
sortRecords: "레코드 정렬",
|
|
589
772
|
sortByIdSuffix: "(ID 기준)",
|
|
590
773
|
sortRelationalHint: "다른 레코드를 참조하는 열은 목록에 없습니다. 저장된 ID로만 정렬할 수 있고 셀에 표시되는 이름으로는 정렬할 수 없습니다. 그 이름으로 정렬하려면 이름을 이 오브젝트에 비정규화하여 원본이 변경될 때 기록되는 저장 필드로 만든 다음, 그 필드로 정렬하세요. 수식 필드는 안 됩니다. 수식은 가상이라 저장되는 열이 없어 서버가 정렬을 거부합니다.",
|
|
774
|
+
sortRelationalPicked: "연결된 열은 표시된 이름이 아니라 저장된 ID로 정렬됩니다.",
|
|
591
775
|
resetSortToDefault: "뷰 기본 정렬로 재설정",
|
|
592
776
|
group: "그룹",
|
|
593
777
|
groupBy: "그룹 기준",
|
|
@@ -608,14 +792,15 @@ const ko = {
|
|
|
608
792
|
print: "인쇄",
|
|
609
793
|
hideFieldsTitle: "필드 숨기기",
|
|
610
794
|
dataLimitReached: "처음 {{limit}}개 레코드를 표시합니다. 더 많은 데이터가 있을 수 있습니다.",
|
|
611
|
-
|
|
612
|
-
|
|
795
|
+
display: "표시",
|
|
796
|
+
layout: "레이아웃",
|
|
797
|
+
rowNumbers: "행 번호",
|
|
798
|
+
resetToViewDefault: "보기 기본값으로 재설정",
|
|
613
799
|
addGroup: "그룹 필드 추가",
|
|
614
800
|
collapsedByDefault: "기본적으로 접힘",
|
|
615
801
|
removeGroup: "제거",
|
|
616
802
|
inlineEditShort: "인라인 편집",
|
|
617
803
|
inlineEditLabel: "레코드를 인라인으로 편집(셀을 클릭하여 편집)",
|
|
618
|
-
recordEditingTitle: "레코드 편집",
|
|
619
804
|
},
|
|
620
805
|
managedByBadge: {
|
|
621
806
|
systemWritable: {
|
|
@@ -646,6 +831,7 @@ const ko = {
|
|
|
646
831
|
},
|
|
647
832
|
kanban: {
|
|
648
833
|
uncategorized: "미분류",
|
|
834
|
+
loadMore: "더 보기",
|
|
649
835
|
columns: "열",
|
|
650
836
|
addCard: "카드 추가",
|
|
651
837
|
addColumn: "열 추가",
|
|
@@ -653,13 +839,28 @@ const ko = {
|
|
|
653
839
|
deleteCard: "카드 삭제",
|
|
654
840
|
deleteColumn: "열 삭제",
|
|
655
841
|
noCards: "카드 없음",
|
|
842
|
+
columnCards: "{{column}} 열의 카드",
|
|
843
|
+
laneCards: "{{column}} - {{lane}}의 카드",
|
|
656
844
|
cardTitlePlaceholder: "카드 제목 입력…",
|
|
657
845
|
requiredFieldsTitle: "필수 항목 입력",
|
|
658
846
|
requiredFieldsDescription: "이 이동으로 아래 항목이 필수가 됩니다. 입력한 후 계속하세요.",
|
|
847
|
+
dnd: {
|
|
848
|
+
start: "{{card}} 카드를 집었습니다. 현재 {{column}} 열에 있습니다.",
|
|
849
|
+
overCard: "{{card}} 카드를 {{column}} 열의 {{target}} 카드 위로 옮기는 중입니다.",
|
|
850
|
+
overColumn: "{{card}} 카드를 {{column}} 열 위로 옮기는 중입니다.",
|
|
851
|
+
overNone: "{{card}} 카드가 어느 열 위에도 있지 않습니다.",
|
|
852
|
+
moved: "{{card}} 카드를 {{column}} 열로 옮겼습니다.",
|
|
853
|
+
dropped: "{{card}} 카드를 놓았습니다. {{column}} 열에 그대로 있습니다.",
|
|
854
|
+
cancelled: "드래그를 취소했습니다. {{card}} 카드는 {{column}} 열에 그대로 있습니다.",
|
|
855
|
+
untitledCard: "제목 없는",
|
|
856
|
+
unnamedColumn: "이름 없는",
|
|
857
|
+
instructions: "이 카드를 다른 열로 옮기려면 마우스나 터치로 끌어 놓으세요.",
|
|
858
|
+
dragging: "{{card}} 카드를 끄는 중",
|
|
859
|
+
},
|
|
659
860
|
},
|
|
660
861
|
timeline: {
|
|
661
862
|
bucket: {
|
|
662
|
-
|
|
863
|
+
earlier: "이전",
|
|
663
864
|
today: "오늘",
|
|
664
865
|
tomorrow: "내일",
|
|
665
866
|
thisWeek: "이번 주",
|
|
@@ -674,6 +875,17 @@ const ko = {
|
|
|
674
875
|
},
|
|
675
876
|
gantt: {
|
|
676
877
|
rowLabel: "항목",
|
|
878
|
+
unusableRange: {
|
|
879
|
+
malformedDate: "사용할 수 없는 간트 날짜 범위 — {{path}}은(는) {{value}}이며 유효한 날짜가 아닙니다. 모든 간트 날짜는 파싱할 수 있어야 합니다: 각 행 항목의 startDate와 endDate, 그리고 스키마에 고정한 minDate / maxDate.",
|
|
880
|
+
malformedRow: "사용할 수 없는 간트 행 — {{path}}은(는) {{value}}이며 행의 형태가 아닙니다. 간트는 items를 행 목록으로, 각 행을 label과 자체 items를 가진 객체로, 각 행의 items를 막대 목록으로 읽습니다. 이 위치에 있는 null, 숫자, 문자열 또는 일반 객체는 그릴 수 없습니다.",
|
|
881
|
+
inverted: "사용할 수 없는 간트 날짜 범위 — minDate {{minDate}}이(가) maxDate {{maxDate}}보다 뒤입니다. 고정한 minDate / maxDate는 행에서 계산한 범위보다 우선하므로 이 축에는 열이 없고 막대를 배치할 수 없습니다. 두 값을 서로 바꾸세요.",
|
|
882
|
+
},
|
|
883
|
+
},
|
|
884
|
+
unsupported: {
|
|
885
|
+
objectBoundGantt: "지원되지 않는 variant \"gantt\" — 객체 바인딩 타임라인은 피드 variant({{variants}})를 렌더링합니다. 간트는 각각 중첩된 items를 가진 리터럴 행이 필요하므로 여기서는 간트 축(scale)이 적용되지 않습니다.",
|
|
886
|
+
},
|
|
887
|
+
unconfigured: {
|
|
888
|
+
noDateAxis: "타임라인 날짜 축이 필요합니다 — 이 뷰는 날짜 필드를 선언하지 않았으며, 객체 바인딩 타임라인은 날짜 필드를 지어내지 않습니다. 다음 중 하나를 선언하세요: {{fields}}. 첫 번째가 spec 표기이고 나머지는 레거시 별칭입니다.",
|
|
677
889
|
},
|
|
678
890
|
},
|
|
679
891
|
gantt: {
|
|
@@ -691,6 +903,7 @@ const ko = {
|
|
|
691
903
|
},
|
|
692
904
|
aria: {
|
|
693
905
|
taskList: "작업 목록",
|
|
906
|
+
refreshing: "새로고침 중…",
|
|
694
907
|
},
|
|
695
908
|
tooltip: {
|
|
696
909
|
days: "일",
|
|
@@ -736,13 +949,19 @@ const ko = {
|
|
|
736
949
|
conflict: {
|
|
737
950
|
title: "일정 충돌",
|
|
738
951
|
body: "이 이동은 종속성 제약과 충돌합니다. 영향을 받는 작업 {{count}}건의 일정을 자동으로 조정할까요?",
|
|
952
|
+
body_one: "이 이동은 종속성 제약과 충돌합니다. 영향을 받는 작업 {{count}}건의 일정을 자동으로 조정할까요?",
|
|
953
|
+
body_other: "이 이동은 종속성 제약과 충돌합니다. 영향을 받는 작업 {{count}}건의 일정을 자동으로 조정할까요?",
|
|
739
954
|
confirm: "자동 일정 조정",
|
|
740
955
|
cancel: "그대로 두기",
|
|
741
956
|
},
|
|
742
957
|
autoScheduleDlg: {
|
|
743
958
|
title: "자동 일정 조정",
|
|
744
959
|
body: "종속성 연결을 충족하도록 작업 {{count}}건을 뒤로 미룰까요?",
|
|
960
|
+
body_one: "종속성 연결을 충족하도록 작업 {{count}}건을 뒤로 미룰까요?",
|
|
961
|
+
body_other: "종속성 연결을 충족하도록 작업 {{count}}건을 뒤로 미룰까요?",
|
|
745
962
|
skipped: "잠긴 작업 {{count}}건도 연결을 위반하지만 건너뛰었습니다.",
|
|
963
|
+
skipped_one: "잠긴 작업 {{count}}건도 연결을 위반하지만 건너뛰었습니다.",
|
|
964
|
+
skipped_other: "잠긴 작업 {{count}}건도 연결을 위반하지만 건너뛰었습니다.",
|
|
746
965
|
confirm: "적용",
|
|
747
966
|
cancel: "취소",
|
|
748
967
|
none: "모든 종속성이 충족되었습니다 — 조정할 일정이 없습니다.",
|
|
@@ -821,10 +1040,14 @@ const ko = {
|
|
|
821
1040
|
tabActionsFor: "{{name}}의 보기 작업",
|
|
822
1041
|
readonlyAriaLabel: "읽기 전용 보기",
|
|
823
1042
|
readonlyTooltip: "시스템 보기 — 코드에 정의되어 있으며 읽기 전용입니다.",
|
|
1043
|
+
malformedFilter: "이 뷰의 필터가 잘못되어 레코드를 표시하지 않습니다: {{subject}} 조건을 적용할 수 없습니다.",
|
|
1044
|
+
noObject: "개체가 지정되지 않았습니다. {{property}} 또는 dataSource.object를 설정하세요.",
|
|
824
1045
|
},
|
|
825
1046
|
designer: {
|
|
826
1047
|
undo: "실행 취소",
|
|
827
1048
|
redo: "다시 실행",
|
|
1049
|
+
canvasMinimap: "캔버스 미니맵",
|
|
1050
|
+
versionHistory: "버전 기록",
|
|
828
1051
|
},
|
|
829
1052
|
detail: {
|
|
830
1053
|
editInlineHint: "더블클릭하여 편집",
|
|
@@ -846,7 +1069,8 @@ const ko = {
|
|
|
846
1069
|
pageHeaderActions: "페이지 헤더 작업",
|
|
847
1070
|
emojiPicker: "이모지 선택기",
|
|
848
1071
|
reactionCount: "{{emoji}} 반응 {{count}}개",
|
|
849
|
-
|
|
1072
|
+
reactionCount_one: "{{emoji}} 반응 {{count}}개",
|
|
1073
|
+
reactionCount_other: "{{emoji}} 반응 {{count}}개",
|
|
850
1074
|
recordDetail: "레코드 세부 정보",
|
|
851
1075
|
recordDetailWithLabel: "{{label}} 세부 정보",
|
|
852
1076
|
openAsFullPage: "전체 페이지로 열기",
|
|
@@ -873,7 +1097,6 @@ const ko = {
|
|
|
873
1097
|
viewAll: "모두 보기",
|
|
874
1098
|
new: "새로 만들기",
|
|
875
1099
|
add: "추가",
|
|
876
|
-
emptyValue: "—",
|
|
877
1100
|
comments: "댓글",
|
|
878
1101
|
searchComments: "댓글 검색…",
|
|
879
1102
|
addCommentPlaceholder: "댓글 추가… (Ctrl+Enter로 제출)",
|
|
@@ -884,11 +1107,18 @@ const ko = {
|
|
|
884
1107
|
unpin: "고정 해제",
|
|
885
1108
|
justNow: "방금",
|
|
886
1109
|
minutesAgo: "{{count}}분 전",
|
|
1110
|
+
minutesAgo_one: "{{count}}분 전",
|
|
1111
|
+
minutesAgo_other: "{{count}}분 전",
|
|
887
1112
|
hoursAgo: "{{count}}시간 전",
|
|
1113
|
+
hoursAgo_one: "{{count}}시간 전",
|
|
1114
|
+
hoursAgo_other: "{{count}}시간 전",
|
|
888
1115
|
daysAgo: "{{count}}일 전",
|
|
1116
|
+
daysAgo_one: "{{count}}일 전",
|
|
1117
|
+
daysAgo_other: "{{count}}일 전",
|
|
889
1118
|
dropFilesToUpload: "파일을 여기에 끌어놓거나 클릭하여 업로드",
|
|
890
1119
|
attachmentCount: "첨부파일 {{count}}개",
|
|
891
|
-
|
|
1120
|
+
attachmentCount_one: "첨부파일 {{count}}개",
|
|
1121
|
+
attachmentCount_other: "첨부파일 {{count}}개",
|
|
892
1122
|
removeAttachment: "첨부파일 제거",
|
|
893
1123
|
// Record Attachments panel (enable.files, objectstack#4358)
|
|
894
1124
|
attachments: "첨부파일",
|
|
@@ -897,6 +1127,7 @@ const ko = {
|
|
|
897
1127
|
noAttachments: "아직 첨부파일이 없습니다. 파일을 업로드해 시작하세요.",
|
|
898
1128
|
downloadAttachment: "다운로드",
|
|
899
1129
|
deleteAttachment: "첨부파일 삭제",
|
|
1130
|
+
deleteAttachmentConfirm: "첨부파일 \"{{name}}\"을(를) 삭제하시겠습니까?",
|
|
900
1131
|
attachmentDeleteDenied: "업로드한 사용자 또는 이 레코드를 편집할 수 있는 사용자만 이 첨부파일을 삭제할 수 있습니다.",
|
|
901
1132
|
attachmentParentAccessDenied: "이 레코드에 파일을 첨부할 권한이 없습니다.",
|
|
902
1133
|
attachmentDownloadDenied: "이 첨부파일을 다운로드할 권한이 없습니다.",
|
|
@@ -906,11 +1137,6 @@ const ko = {
|
|
|
906
1137
|
attachmentsLoadFailed: "이 레코드의 첨부파일을 불러오지 못했습니다.",
|
|
907
1138
|
attachmentsApiUnavailable: "이 객체에서는 첨부 파일 목록을 사용할 수 없습니다.",
|
|
908
1139
|
retryLoadAttachments: "다시 시도",
|
|
909
|
-
unifiedDiff: "통합 보기",
|
|
910
|
-
sideBySideDiff: "나란히 보기",
|
|
911
|
-
noChanges: "변경 없음",
|
|
912
|
-
previousVersion: "이전 버전",
|
|
913
|
-
currentVersion: "현재 버전",
|
|
914
1140
|
discussion: "토론",
|
|
915
1141
|
showDiscussion: "토론 보기 ({{count}})",
|
|
916
1142
|
hideDiscussion: "토론 숨기기",
|
|
@@ -925,25 +1151,35 @@ const ko = {
|
|
|
925
1151
|
writeComment: "댓글 작성…",
|
|
926
1152
|
subscribedTooltip: "구독 중 — 클릭하여 구독 취소",
|
|
927
1153
|
unsubscribedTooltip: "알림 구독",
|
|
928
|
-
firstRecord: "첫 번째 레코드 (Home)",
|
|
929
|
-
previousRecordKey: "이전 레코드 (←)",
|
|
930
|
-
nextRecordKey: "다음 레코드 (→)",
|
|
931
|
-
lastRecord: "마지막 레코드 (End)",
|
|
932
1154
|
noRecords: "레코드 없음",
|
|
933
|
-
searchWhileNavigating: "탐색 중 검색",
|
|
934
|
-
searchRecords: "레코드 검색…",
|
|
935
1155
|
allActivity: "모든 활동",
|
|
936
1156
|
commentsOnly: "댓글만",
|
|
937
1157
|
fieldChangesFilter: "필드 변경",
|
|
938
1158
|
tasksOnly: "작업만",
|
|
939
1159
|
leaveCommentPlaceholder: "댓글 남기기… (Ctrl+Enter로 제출)",
|
|
940
1160
|
noActivity: "기록된 활동 없음",
|
|
1161
|
+
activityAccessDenied: "이 레코드의 활동을 볼 권한이 없습니다.",
|
|
1162
|
+
commentsAccessDenied: "이 레코드의 댓글을 볼 권한이 없습니다.",
|
|
1163
|
+
// objectui#7149 — the rest of `ActivityTimeline`. The four chip labels the
|
|
1164
|
+
// `detail.*` pack did not already name, and the `formatFieldChange`
|
|
1165
|
+
// sentences, which are assembled in code and so need interpolation holes.
|
|
1166
|
+
allFilter: '전체',
|
|
1167
|
+
createsFilter: '생성',
|
|
1168
|
+
deletesFilter: '삭제',
|
|
1169
|
+
statusChangesFilter: '상태 변경',
|
|
1170
|
+
activityEmptyValue: '(비어 있음)',
|
|
1171
|
+
activityFieldChanged: '{{field}}을(를) "{{old}}"에서 "{{new}}"(으)로 변경했습니다',
|
|
1172
|
+
activityCreated: '이 레코드를 만들었습니다',
|
|
1173
|
+
activityDeleted: '이 레코드를 삭제했습니다',
|
|
1174
|
+
activityStatusChanged: '상태를 "{{value}}"(으)로 변경했습니다',
|
|
1175
|
+
activityUpdated: '레코드를 업데이트했습니다',
|
|
941
1176
|
loadMore: "더 보기",
|
|
942
1177
|
edited: "(수정됨)",
|
|
943
1178
|
via: "{{source}} 통해",
|
|
944
1179
|
viewSource: "원본 보기",
|
|
945
1180
|
replyCount: "답글 {{count}}개",
|
|
946
|
-
|
|
1181
|
+
replyCount_one: "답글 {{count}}개",
|
|
1182
|
+
replyCount_other: "답글 {{count}}개",
|
|
947
1183
|
replyPlaceholder: "답글…",
|
|
948
1184
|
filterActivity: "활동 필터",
|
|
949
1185
|
openDiscussion: "토론 패널 열기",
|
|
@@ -955,9 +1191,12 @@ const ko = {
|
|
|
955
1191
|
lockedByApproval: "승인을 위해 잠김",
|
|
956
1192
|
lockedTooltip: "이 레코드에 대기 중인 승인 요청이 있습니다. 편집이 잠겨 있습니다",
|
|
957
1193
|
writeStrippedTitle: "저장되었지만 일부 필드는 적용되지 않았습니다",
|
|
1194
|
+
writeWarningsTitle: "저장되었지만 경고가 있습니다",
|
|
958
1195
|
writeStrippedReadonly: "다음 필드는 읽기 전용이므로 적용되지 않았습니다: {{fields}}",
|
|
959
1196
|
writeStrippedByState: "다음 필드는 이 레코드의 현재 상태에서 편집할 수 없으므로 적용되지 않았습니다: {{fields}}",
|
|
960
1197
|
writeStrippedPrimaryKey: "다음 필드는 레코드의 식별자이며 저장으로 변경할 수 없으므로 적용되지 않았습니다: {{fields}}",
|
|
1198
|
+
writeStrippedComputed: "다음 필드는 서버가 수식으로 계산하므로 보낸 값이 적용되지 않았습니다: {{fields}}",
|
|
1199
|
+
writeStrippedStoredExpression: "다음 필드는 레코드에서 계산되므로 보낸 값 대신 계산된 값이 저장되었습니다: {{fields}}",
|
|
961
1200
|
writeStrippedUnknownReason: "다음 필드는 서버에서 적용되지 않았습니다: {{fields}}",
|
|
962
1201
|
approvalPendingEditable: "승인 진행 중 · 편집 가능",
|
|
963
1202
|
approvalPendingTooltip: "이 레코드에 대기 중인 승인 요청이 있지만 이 단계에서는 편집할 수 있습니다",
|
|
@@ -979,6 +1218,13 @@ const ko = {
|
|
|
979
1218
|
pathStageLostUpcoming: '{{stage}}, 실패, 도달하지 않음',
|
|
980
1219
|
pathStageWonUpcoming: '{{stage}}, 목표 단계, 도달하지 않음',
|
|
981
1220
|
linkCopied: "링크가 클립보드에 복사됨",
|
|
1221
|
+
commentFailed: "댓글이 게시되지 않았습니다. 아무것도 저장되지 않았습니다. 다시 시도해 주세요.",
|
|
1222
|
+
reactionFailed: "반응이 저장되지 않았습니다. 다시 시도해 주세요.",
|
|
1223
|
+
editComment: "댓글 편집",
|
|
1224
|
+
deleteComment: "댓글 삭제",
|
|
1225
|
+
deleteCommentConfirm: "이 댓글을 삭제하시겠습니까?",
|
|
1226
|
+
commentEditFailed: "수정 내용이 저장되지 않았습니다. 댓글은 이전 내용을 유지합니다.",
|
|
1227
|
+
commentDeleteFailed: "댓글이 삭제되지 않았습니다. 다시 시도해 주세요.",
|
|
982
1228
|
linkCopyFailed: "링크 복사 실패",
|
|
983
1229
|
cancel: "취소",
|
|
984
1230
|
cancelEdit: "변경 사항 취소",
|
|
@@ -1008,6 +1254,7 @@ const ko = {
|
|
|
1008
1254
|
sortBy: "정렬 기준",
|
|
1009
1255
|
filterPlaceholder: "필터…",
|
|
1010
1256
|
highlightFields: "주요 필드",
|
|
1257
|
+
highlightsLabel: "레코드 주요 필드",
|
|
1011
1258
|
createdBy: "작성자",
|
|
1012
1259
|
updatedBy: "업데이트한 사람",
|
|
1013
1260
|
created: "작성됨",
|
|
@@ -1021,26 +1268,50 @@ const ko = {
|
|
|
1021
1268
|
copyPhone: "전화번호 복사",
|
|
1022
1269
|
copyRecordId: "레코드 ID 복사",
|
|
1023
1270
|
showEmptyFields: "{{count}}개의 빈 필드 표시",
|
|
1271
|
+
showEmptyFields_one: "{{count}}개의 빈 필드 표시",
|
|
1272
|
+
showEmptyFields_other: "{{count}}개의 빈 필드 표시",
|
|
1024
1273
|
hideEmptyFields: "빈 필드 숨기기",
|
|
1025
1274
|
noValue: "값 없음",
|
|
1275
|
+
unresolvedReference: "확인되지 않은 참조: {{value}}을(를) 사용자로 확인하지 못했습니다",
|
|
1276
|
+
unresolvedLookupReference: "확인되지 않은 참조: {{value}}을(를) 이 화면에서 레코드로 확인하지 못했습니다",
|
|
1277
|
+
repeaterItemCount: "항목 {{count}}개",
|
|
1278
|
+
repeaterItemCount_one: "항목 {{count}}개",
|
|
1279
|
+
repeaterItemCount_other: "항목 {{count}}개",
|
|
1280
|
+
fileCount: "파일 {{count}}개",
|
|
1281
|
+
fileCount_one: "파일 {{count}}개",
|
|
1282
|
+
fileCount_other: "파일 {{count}}개",
|
|
1026
1283
|
},
|
|
1027
1284
|
chart: {
|
|
1028
|
-
noData: "차트 데이터가 없습니다",
|
|
1029
1285
|
loading: "차트 로딩 중…",
|
|
1286
|
+
refreshing: "새로고침 중…",
|
|
1030
1287
|
nullCategory: "(미지정)",
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
markersCount: "마커 {{count}}개",
|
|
1036
|
-
invalidCoordinates: "좌표가 누락되었거나 유효하지 않아 {{count}}개 레코드가 지도에서 제외되었습니다.",
|
|
1037
|
-
invalidCoordinatesPlural: "좌표가 누락되었거나 유효하지 않아 {{count}}개 레코드가 지도에서 제외되었습니다.",
|
|
1288
|
+
scatterOneMeasure: "산점도는 측정값 하나만 그립니다. 계열을 하나만 남기세요:",
|
|
1289
|
+
unconfigured: {
|
|
1290
|
+
noCategoryAxis: "차트 범주 축이 필요합니다 — 객체 바인딩 차트는 축을 임의로 만들지 않습니다. 다음 중 하나를 선언하세요:",
|
|
1291
|
+
},
|
|
1038
1292
|
},
|
|
1039
1293
|
dashboard: {
|
|
1040
|
-
|
|
1294
|
+
// objectui#7063 — the DEFAULT empty state every dashboard widget renders
|
|
1295
|
+
// when its query SUCCEEDED and returned nothing. It replaced the terse
|
|
1296
|
+
// per-widget `noRows` / `noDataAvailable` fragments at the render site;
|
|
1297
|
+
// objectui#7125 deleted those two keys from all ten packs once nothing
|
|
1298
|
+
// read them. The copy here has to read as a state rather than a failure,
|
|
1299
|
+
// which is why it says the widget loaded. `sourceLabel` carries its own
|
|
1300
|
+
// punctuation so the call site concatenates no separator (see
|
|
1301
|
+
// `WidgetEmptyState`).
|
|
1302
|
+
empty: {
|
|
1303
|
+
title: "아직 데이터가 없습니다",
|
|
1304
|
+
message: "이 위젯은 정상적으로 로드되었지만 쿼리가 아직 레코드를 반환하지 않았습니다.",
|
|
1305
|
+
sourceLabel: "데이터 소스:",
|
|
1306
|
+
},
|
|
1041
1307
|
loading: "로딩 중…",
|
|
1308
|
+
refreshing: "새로고침 중…",
|
|
1309
|
+
refreshAll: "모두 새로고침",
|
|
1310
|
+
refreshDashboard: "대시보드 새로고침",
|
|
1042
1311
|
pickMeasures: "이 데이터셋 위젯의 측정값(값)을 선택하세요.",
|
|
1043
1312
|
datasetUnsupported: "이 데이터 소스는 데이터셋 쿼리를 지원하지 않습니다.",
|
|
1313
|
+
widgetForbiddenTitle: "접근 권한 없음",
|
|
1314
|
+
widgetForbiddenMessage: "이 위젯의 데이터를 볼 수 있는 권한이 없습니다.",
|
|
1044
1315
|
details: "세부 정보",
|
|
1045
1316
|
exportCsv: "CSV 내보내기",
|
|
1046
1317
|
openInList: "목록에서 열기",
|
|
@@ -1068,12 +1339,10 @@ const ko = {
|
|
|
1068
1339
|
},
|
|
1069
1340
|
},
|
|
1070
1341
|
addWidget: "위젯 추가",
|
|
1071
|
-
removeWidget: "위젯 제거",
|
|
1072
1342
|
editLayout: "레이아웃 편집",
|
|
1073
1343
|
saveLayout: "레이아웃 저장",
|
|
1074
1344
|
resetLayout: "레이아웃 초기화",
|
|
1075
1345
|
total: "합계",
|
|
1076
|
-
noDataAvailable: "사용 가능한 데이터 없음",
|
|
1077
1346
|
noDataSourceFor: "데이터 소스 없음:",
|
|
1078
1347
|
config: {
|
|
1079
1348
|
breadcrumb: {
|
|
@@ -1195,10 +1464,6 @@ const ko = {
|
|
|
1195
1464
|
appDescription: "설명",
|
|
1196
1465
|
appIcon: "아이콘",
|
|
1197
1466
|
template: "템플릿",
|
|
1198
|
-
layout: "레이아웃",
|
|
1199
|
-
layoutSidebar: "사이드바",
|
|
1200
|
-
layoutHeader: "헤더",
|
|
1201
|
-
layoutEmpty: "비어 있음",
|
|
1202
1467
|
selectObjects: "오브젝트 선택",
|
|
1203
1468
|
searchObjects: "오브젝트 검색…",
|
|
1204
1469
|
selectAll: "모두 선택",
|
|
@@ -1207,7 +1472,6 @@ const ko = {
|
|
|
1207
1472
|
addGroup: "그룹 추가",
|
|
1208
1473
|
addUrl: "URL 추가",
|
|
1209
1474
|
addSeparator: "구분선 추가",
|
|
1210
|
-
noNavItems: "탐색 항목이 아직 없습니다.",
|
|
1211
1475
|
logoUrl: "Logo URL",
|
|
1212
1476
|
primaryColor: "기본 색상",
|
|
1213
1477
|
faviconUrl: "Favicon URL",
|
|
@@ -1234,13 +1498,12 @@ const ko = {
|
|
|
1234
1498
|
appearance: "외관",
|
|
1235
1499
|
rowHeight: "행 높이",
|
|
1236
1500
|
livePreview: "실시간 미리보기",
|
|
1237
|
-
stepBasicDesc: "이름, 제목 및
|
|
1501
|
+
stepBasicDesc: "이름, 제목 및 아이콘",
|
|
1238
1502
|
stepObjectsDesc: "비즈니스 객체 선택",
|
|
1239
1503
|
stepNavigationDesc: "네비게이션 트리 구성",
|
|
1240
1504
|
stepBrandingDesc: "로고, 색상 및 파비콘",
|
|
1241
1505
|
noObjectsFound: "객체를 찾을 수 없습니다.",
|
|
1242
1506
|
noNavItemsHint: "네비게이션 항목이 없습니다. 이전 단계에서 객체를 선택하거나 수동으로 추가하세요.",
|
|
1243
|
-
separator: "구분선",
|
|
1244
1507
|
separatorLabel: "— 구분선 —",
|
|
1245
1508
|
newGroup: "새 그룹",
|
|
1246
1509
|
newLink: "새 링크",
|
|
@@ -1274,6 +1537,7 @@ const ko = {
|
|
|
1274
1537
|
navTypeSeparator: "구분선",
|
|
1275
1538
|
navTypeAction: "작업",
|
|
1276
1539
|
navTypeComponent: "컴포넌트",
|
|
1540
|
+
navTypeDoc: "문서",
|
|
1277
1541
|
navEditIcon: "아이콘 편집",
|
|
1278
1542
|
navToggleVisible: "가시성 토글",
|
|
1279
1543
|
navHidden: "숨김",
|
|
@@ -1351,11 +1615,8 @@ const ko = {
|
|
|
1351
1615
|
defaultValue: "기본값",
|
|
1352
1616
|
placeholder: "자리 표시자",
|
|
1353
1617
|
referenceTo: "참조 대상",
|
|
1354
|
-
formula: "수식",
|
|
1355
1618
|
options: "옵션",
|
|
1356
1619
|
addOption: "옵션 추가",
|
|
1357
|
-
validationRules: "유효성 검사 규칙",
|
|
1358
|
-
addRule: "규칙 추가",
|
|
1359
1620
|
systemBadge: "시스템",
|
|
1360
1621
|
ungrouped: "일반",
|
|
1361
1622
|
deleteConfirmTitle: "필드를 삭제하시겠습니까?",
|
|
@@ -1374,16 +1635,31 @@ const ko = {
|
|
|
1374
1635
|
},
|
|
1375
1636
|
},
|
|
1376
1637
|
console: {
|
|
1638
|
+
studio: {
|
|
1639
|
+
title: "Studio",
|
|
1640
|
+
accessRequired: "Studio를 열려면 Studio 접근 권한이 필요합니다.",
|
|
1641
|
+
},
|
|
1377
1642
|
saveAdvisoryTitle: "저장되었습니다 — 작성 검사에서 {{count}}건의 권장 사항이 발견되었습니다",
|
|
1643
|
+
saveAdvisoryTitle_one: "저장되었습니다 — 작성 검사에서 {{count}}건의 권장 사항이 발견되었습니다",
|
|
1644
|
+
saveAdvisoryTitle_other: "저장되었습니다 — 작성 검사에서 {{count}}건의 권장 사항이 발견되었습니다",
|
|
1645
|
+
publishAdvisoryTitle: "게시되었습니다 — 작성 검사에서 {{count}}건의 권장 사항이 발견되었습니다",
|
|
1646
|
+
publishAdvisoryTitle_one: "게시되었습니다 — 작성 검사에서 {{count}}건의 권장 사항이 발견되었습니다",
|
|
1647
|
+
publishAdvisoryTitle_other: "게시되었습니다 — 작성 검사에서 {{count}}건의 권장 사항이 발견되었습니다",
|
|
1648
|
+
importMappingsUnavailable: "{{object}}의 저장된 가져오기 매핑을 불러오지 못했습니다",
|
|
1649
|
+
importMappingsRefused: "서버가 이 요청을 거부했습니다. 따라서 이 목록이 비어 있는 것은 읽지 못했기 때문이며, 등록된 항목이 없어서가 아닙니다. 다시 로그인하거나 관리자에게 접근 권한을 요청하세요.",
|
|
1650
|
+
importMappingsUnreadable: "이 목록이 비어 있는 것은 읽지 못했기 때문이며, 등록된 항목이 없어서가 아닙니다. 다시 시도하고, 계속 발생하면 문제를 보고하세요.",
|
|
1651
|
+
savedViewsUnavailable: "{{object}}의 저장된 보기를 불러오지 못했습니다",
|
|
1652
|
+
savedViewsRefused: "서버가 이 요청을 거부했습니다. 따라서 이 목록이 비어 있는 것은 읽지 못했기 때문이며, 이 오브젝트에 저장된 보기가 없어서가 아닙니다. 다시 로그인하거나 관리자에게 접근 권한을 요청하세요.",
|
|
1653
|
+
savedViewsUnreadable: "이 목록이 비어 있는 것은 읽지 못했기 때문이며, 이 오브젝트에 저장된 보기가 없어서가 아닙니다. 다시 시도하고, 계속 발생하면 문제를 보고하세요.",
|
|
1378
1654
|
settingsHub: {
|
|
1379
1655
|
title: "설정",
|
|
1380
|
-
subtitle: "
|
|
1656
|
+
subtitle: "시스템, 연동, 기능 플래그를 구성합니다.",
|
|
1381
1657
|
loadError: "설정을 불러오지 못했습니다",
|
|
1382
1658
|
empty: "등록된 설정이 없습니다. 플러그인은 SettingsService를 통해 설정 매니페스트를 등록할 수 있습니다.",
|
|
1383
1659
|
settingsCount: "설정 {{n}}개",
|
|
1384
1660
|
beta: "베타",
|
|
1385
1661
|
categories: {
|
|
1386
|
-
Workspace: "
|
|
1662
|
+
Workspace: "일반",
|
|
1387
1663
|
Communication: "커뮤니케이션",
|
|
1388
1664
|
Security: "보안",
|
|
1389
1665
|
Infrastructure: "인프라",
|
|
@@ -1428,13 +1704,18 @@ const ko = {
|
|
|
1428
1704
|
},
|
|
1429
1705
|
usage: {
|
|
1430
1706
|
title: "AI 사용량",
|
|
1431
|
-
|
|
1432
|
-
meterAsk: "질문",
|
|
1707
|
+
poolUsed: "{{percent}} 사용됨",
|
|
1433
1708
|
statusOk: "여유가 충분합니다",
|
|
1434
1709
|
statusLow: "얼마 남지 않았습니다",
|
|
1435
1710
|
statusFull: "한도에 도달했습니다",
|
|
1436
1711
|
resetsDaily: "오늘 밤 초기화됩니다",
|
|
1437
1712
|
resetsMonthly: "다음 주기에 초기화됩니다",
|
|
1713
|
+
resetsWeeklyDays: "{{count}}일 후 초기화됩니다",
|
|
1714
|
+
resetsWeeklyDays_one: "{{count}}일 후 초기화됩니다",
|
|
1715
|
+
resetsWeeklyDays_other: "{{count}}일 후 초기화됩니다",
|
|
1716
|
+
resetsWeeklyHours: "{{count}}시간 후 초기화됩니다",
|
|
1717
|
+
resetsWeeklyHours_one: "{{count}}시간 후 초기화됩니다",
|
|
1718
|
+
resetsWeeklyHours_other: "{{count}}시간 후 초기화됩니다",
|
|
1438
1719
|
ctaUpgrade: "업그레이드하고 계속하기",
|
|
1439
1720
|
ctaTopUp: "크레딧을 추가하고 계속하기",
|
|
1440
1721
|
ariaLabel: "AI 사용량: {{status}}",
|
|
@@ -1447,6 +1728,31 @@ const ko = {
|
|
|
1447
1728
|
share: "공유",
|
|
1448
1729
|
shareTitle: "이 대화 공유",
|
|
1449
1730
|
shareDisabledTitle: "공유하려면 먼저 대화를 시작하세요",
|
|
1731
|
+
buildDoctor: "빌드 진단",
|
|
1732
|
+
buildDoctorTitle: "빌드 진단 — 실제로 반영된 내용은?",
|
|
1733
|
+
buildDoctorDisabledTitle: "먼저 메시지를 보내세요",
|
|
1734
|
+
buildDoctorDrawer: {
|
|
1735
|
+
description: '에이전트가 주장한 내용과 실제로 반영된 내용을 비교합니다. 읽기 전용 진단입니다.',
|
|
1736
|
+
reconciling: '대조 중…',
|
|
1737
|
+
notAvailable: '사용할 수 없음 — 대화를 찾을 수 없거나 접근 권한이 없습니다.',
|
|
1738
|
+
untitled: '(제목 없음)',
|
|
1739
|
+
summary: '{{turns}}턴 · 메시지 {{messages}}개 · {{tokens}} tok · LLM {{seconds}}초',
|
|
1740
|
+
allLive: '시도한 변경 {{count}}개가 모두 반영되었습니다 — 사라진 것은 없습니다.',
|
|
1741
|
+
discrepancies: '불일치 {{count}}건 — 채팅에서 말한 내용과 실제로 반영된 내용이 다릅니다.',
|
|
1742
|
+
orphanedTitle: '제안되었지만 적용되지 않음',
|
|
1743
|
+
orphanedHint: '에이전트가 제안한 확인 카드를 이후 어떤 턴에서도 적용하지 않아 변경이 조용히 사라졌습니다.',
|
|
1744
|
+
missingTitle: '적용되었다고 했지만 없음',
|
|
1745
|
+
missingHint: '도구 결과는 적용되었다고 했지만 아티팩트가 sys_metadata에 반영되어 있지 않습니다.',
|
|
1746
|
+
toolErrorsTitle: '도구 오류',
|
|
1747
|
+
toolErrorsHint: '빌드 중 오류를 반환한 도구 호출입니다.',
|
|
1748
|
+
verifyTitle: '빌드 검사 (verify_build)',
|
|
1749
|
+
yourApp: '내 앱:',
|
|
1750
|
+
noIssues: '문제 0개',
|
|
1751
|
+
issueCount: '문제 {{count}}개',
|
|
1752
|
+
platformNoise: '플랫폼 sys_* 발견 {{count}}건 숨김',
|
|
1753
|
+
pendingActions: '대기 중인 작업',
|
|
1754
|
+
timeline: '타임라인 ({{count}})',
|
|
1755
|
+
},
|
|
1450
1756
|
newChat: "새로 만들기",
|
|
1451
1757
|
searchChats: "채팅 검색…",
|
|
1452
1758
|
noChatsYet: "아직 채팅이 없습니다",
|
|
@@ -1469,6 +1775,8 @@ const ko = {
|
|
|
1469
1775
|
liveCanvasUnlisted: "실시간 앱 — {{app}}(게시 전까지 비공개)",
|
|
1470
1776
|
loadingAgents: "에이전트를 불러오는 중…",
|
|
1471
1777
|
askAnything: "무엇이든 물어보세요…",
|
|
1778
|
+
askOrChangeApp: "데이터에 대해 묻거나 이 앱을 바꿔 달라고 요청하세요…",
|
|
1779
|
+
describeAppToBuild: "만들고 싶은 앱이나 바꿀 부분을 설명하세요…",
|
|
1472
1780
|
emptyTitle: "대화 시작하기",
|
|
1473
1781
|
emptyDescription: "무엇이든 물어보세요 — 어시스턴트는 현재 앱 컨텍스트에 접근할 수 있습니다.",
|
|
1474
1782
|
switchAssistant: "어시스턴트 전환",
|
|
@@ -1476,7 +1784,7 @@ const ko = {
|
|
|
1476
1784
|
empty: {
|
|
1477
1785
|
build: {
|
|
1478
1786
|
title: "AI로 빌드",
|
|
1479
|
-
description: "
|
|
1787
|
+
description: "앱을 일상 언어로 설명해 주세요 — 객체, 화면, 샘플 데이터를 초안으로 만들어 드리면 검토 후 게시하시면 됩니다.",
|
|
1480
1788
|
},
|
|
1481
1789
|
ask: {
|
|
1482
1790
|
title: "데이터에 질문하기",
|
|
@@ -1485,17 +1793,22 @@ const ko = {
|
|
|
1485
1793
|
editApp: {
|
|
1486
1794
|
title: "“{{app}}” 편집 중",
|
|
1487
1795
|
titleGeneric: "이 앱 편집",
|
|
1488
|
-
description: "무엇을 바꿀까요? 이 앱을 그 자리에서 수정합니다 — 필드, 객체, 뷰,
|
|
1796
|
+
description: "무엇을 바꿀까요? 이 앱을 그 자리에서 수정합니다 — 필드, 객체, 뷰, 대시보드를 추가하거나 기존 내용을 조정할 수 있습니다.",
|
|
1489
1797
|
},
|
|
1490
1798
|
},
|
|
1491
1799
|
clearConversation: "지우기",
|
|
1492
1800
|
sendHint: "눌러 전송",
|
|
1801
|
+
newlineHint: "눌러 줄바꿈",
|
|
1493
1802
|
agentActivity: "에이전트 활동",
|
|
1494
1803
|
toolCompleted: "완료됨",
|
|
1495
1804
|
toolRunning: "실행 중",
|
|
1496
1805
|
toolAwaitingApproval: "승인 대기 중",
|
|
1497
1806
|
toolFailed: "실패",
|
|
1498
1807
|
toolDetailsHidden: "이 보기에서는 도구 입력과 원본 결과가 숨겨집니다.",
|
|
1808
|
+
toolDenyReason: "운영자가 채팅에서 거부함",
|
|
1809
|
+
builderHandoffTitle: "빌더에서 만들기",
|
|
1810
|
+
builderHandoffOpen: "빌더에서 열기 →",
|
|
1811
|
+
builderHandoffSuperseded: "더 최근의 요청이 있습니다",
|
|
1499
1812
|
copy: "복사",
|
|
1500
1813
|
copied: "복사됨",
|
|
1501
1814
|
regenerate: "다시 생성",
|
|
@@ -1510,7 +1823,7 @@ const ko = {
|
|
|
1510
1823
|
publishOk: "게시했습니다 — 객체가 이제 활성화되었습니다.",
|
|
1511
1824
|
seedWarn: "게시했지만 일부 샘플 데이터를 불러오지 못했습니다.",
|
|
1512
1825
|
openBuiltApp: "앱 열기",
|
|
1513
|
-
|
|
1826
|
+
viewBuiltAppInStudio: "Studio에서 보기",
|
|
1514
1827
|
previewDraft: "미리보기",
|
|
1515
1828
|
previewApp: "앱 미리보기",
|
|
1516
1829
|
resizeSplit: "채팅과 미리보기 크기 조정",
|
|
@@ -1538,23 +1851,41 @@ const ko = {
|
|
|
1538
1851
|
recentRecords: "가장 최근에 생성된 레코드 5건을 보여 주세요.",
|
|
1539
1852
|
recordCounts: "객체별 레코드 수를 세어 주세요.",
|
|
1540
1853
|
},
|
|
1854
|
+
// cloud#1984 — these five chips are the maker's own recommendations, so
|
|
1855
|
+
// they may only ask for what ADR-0112 v1 BUILDS: objects, fields, views
|
|
1856
|
+
// (grid/kanban/calendar/gallery), pages, dashboards and sample data. No
|
|
1857
|
+
// wording that promises autonomous behaviour (alert / remind / notify /
|
|
1858
|
+
// automate / status workflow) — v1 has no flows, actions or schedules, and
|
|
1859
|
+
// the model silently degrades such a request into a board or a filtered
|
|
1860
|
+
// view, so the chip would promise an alert and deliver a page. REVERT to
|
|
1861
|
+
// the automation wording when ADR-0112 v2 re-adds flows and actions.
|
|
1541
1862
|
metadataAssistant: {
|
|
1542
|
-
buildCrm: "영업 CRM을 만들어 줘 — 고객, 담당자,
|
|
1543
|
-
buildApp: "프로젝트 트래커를 만들어 줘 — 프로젝트, 담당자와 마감일이 있는 작업, 상태별
|
|
1544
|
-
buildFlow: "고객 지원 데스크를 설계해 줘 —
|
|
1545
|
-
buildInventory: "재고 앱을 만들어 줘 — 제품, 재고 수량, 공급업체,
|
|
1546
|
-
buildRecruiting: "채용 트래커를 만들어 줘 — 지원자, 채용 중인 직무, 면접
|
|
1863
|
+
buildCrm: "영업 CRM을 만들어 줘 — 고객, 담당자, 단계 필드가 있는 거래, 단계별 금액을 합산하는 대시보드.",
|
|
1864
|
+
buildApp: "프로젝트 트래커를 만들어 줘 — 프로젝트, 담당자와 마감일이 있는 작업, 상태별 보드, 마감일 캘린더.",
|
|
1865
|
+
buildFlow: "고객 지원 데스크를 설계해 줘 — 우선순위와 상태 필드가 있는 티켓, 상태별 보드, 고객 연결.",
|
|
1866
|
+
buildInventory: "재고 앱을 만들어 줘 — 제품, 재고 수량, 공급업체, 재주문점 미만 제품을 걸러내는 뷰.",
|
|
1867
|
+
buildRecruiting: "채용 트래커를 만들어 줘 — 지원자, 채용 중인 직무, 면접 단계 필드, 단계별 보드.",
|
|
1547
1868
|
},
|
|
1548
1869
|
generic: {
|
|
1549
1870
|
help: "무엇을 도와줄 수 있나요?",
|
|
1550
1871
|
availableObjects: "사용 가능한 데이터 객체를 나열해 주세요.",
|
|
1551
1872
|
recentActivity: "내 최근 활동을 요약해 주세요.",
|
|
1552
1873
|
},
|
|
1874
|
+
// objectui#7709 — the edit-mode starters, shown when the maker is bound
|
|
1875
|
+
// to an EXISTING app (`?package=`). Same rule as the five above: they
|
|
1876
|
+
// may only ask for what ADR-0112 v1 BUILDS. The fourth chip used to be
|
|
1877
|
+
// `addAutomation` ("an approval, a status flow, or a notification") and
|
|
1878
|
+
// every capability it named is refused by v1 (cloud#1956 / PR #1970), so
|
|
1879
|
+
// it now asks for sample data — `seed` IS on v1's whitelist, and having
|
|
1880
|
+
// no data is what an existing app most often lacks. REVERT: when
|
|
1881
|
+
// ADR-0112 v2 re-adds flows and actions, THIS chip's automation wording
|
|
1882
|
+
// comes back as `addAutomation`; the retired string is pinned for every
|
|
1883
|
+
// pack in `packages/i18n/src/__tests__/makerEditChips-v1-scope-7709.test.ts`.
|
|
1553
1884
|
editApp: {
|
|
1554
1885
|
addField: "객체 중 하나에 필드를 추가해 주세요.",
|
|
1555
1886
|
addObject: "새 객체를 추가하고 기존 객체와 연결해 주세요.",
|
|
1556
1887
|
addDashboard: "핵심 지표를 위한 대시보드를 추가해 주세요.",
|
|
1557
|
-
|
|
1888
|
+
addSampleData: "기존 객체에 데모에서 보여 줄 만한 현실적인 샘플 데이터를 채워 주세요.",
|
|
1558
1889
|
},
|
|
1559
1890
|
},
|
|
1560
1891
|
changesTitle: "변경 확인",
|
|
@@ -1619,6 +1950,7 @@ const ko = {
|
|
|
1619
1950
|
collapse: "채팅 접기",
|
|
1620
1951
|
maximize: "전체 페이지로 열기",
|
|
1621
1952
|
open: "어시스턴트 열기",
|
|
1953
|
+
planAwaitingApproval: "제안된 계획이 승인을 기다리고 있습니다",
|
|
1622
1954
|
},
|
|
1623
1955
|
group: {
|
|
1624
1956
|
today: "오늘",
|
|
@@ -1629,13 +1961,17 @@ const ko = {
|
|
|
1629
1961
|
},
|
|
1630
1962
|
},
|
|
1631
1963
|
title: "ObjectStack 콘솔",
|
|
1632
|
-
initializing: "
|
|
1633
|
-
|
|
1964
|
+
initializing: "콘솔을 여는 중…",
|
|
1965
|
+
skipToContent: "본문으로 건너뛰기",
|
|
1634
1966
|
breadcrumb: {
|
|
1635
|
-
dashboards: "대시보드",
|
|
1636
|
-
pages: "페이지",
|
|
1637
|
-
reports: "보고서",
|
|
1638
1967
|
system: "시스템",
|
|
1968
|
+
marketplace: "마켓플레이스",
|
|
1969
|
+
settings: '설정',
|
|
1970
|
+
apps: '앱',
|
|
1971
|
+
profile: '프로필',
|
|
1972
|
+
approvals: '승인',
|
|
1973
|
+
aiApprovals: 'AI 승인',
|
|
1974
|
+
auditLog: '감사 로그',
|
|
1639
1975
|
},
|
|
1640
1976
|
// objectui#4024 — the single-namespace settings screen. Its sibling
|
|
1641
1977
|
// `settingsHub` above already resolved through this pack; the view was the
|
|
@@ -1656,16 +1992,30 @@ const ko = {
|
|
|
1656
1992
|
unsavedCount: "저장되지 않은 변경 {{count}}개",
|
|
1657
1993
|
unsavedCount_one: "저장되지 않은 변경 {{count}}개",
|
|
1658
1994
|
unsavedCount_other: "저장되지 않은 변경 {{count}}개",
|
|
1995
|
+
fieldErrorsToast: "확인이 필요한 설정 {{count}}개: {{settings}}",
|
|
1996
|
+
fieldErrorsToast_one: "확인이 필요한 설정 {{count}}개: {{settings}}",
|
|
1997
|
+
fieldErrorsToast_other: "확인이 필요한 설정 {{count}}개: {{settings}}",
|
|
1659
1998
|
cryptoRefusalTitle: "이 배포는 시크릿을 암호화할 수 없습니다",
|
|
1660
1999
|
cryptoRefusalSubjectSuffix: "은(는) 암호화 대상으로 선언되어 아무것도 기록되지 않았습니다.",
|
|
1661
2000
|
cryptoRefusalNoSubject: "암호화 대상으로 선언된 값이 거부되어 아무것도 기록되지 않았습니다.",
|
|
1662
2001
|
cryptoRefusalToast: "시크릿을 암호화할 수 없습니다: {{subject}}",
|
|
1663
2002
|
cryptoRefusalToastNoSubject: "시크릿을 암호화할 수 없습니다",
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
2003
|
+
sourceBadgeInherited: "{{source}}에서 상속됨",
|
|
2004
|
+
sourceBadgeOverrides: "{{source}} 재정의",
|
|
2005
|
+
resetToDefault: "기본값으로 재설정",
|
|
2006
|
+
envLockBadge: "환경 변수로 잠김",
|
|
2007
|
+
envLockBadgeTitle: "환경 변수로 고정되어 UI에서 편집할 수 없습니다.",
|
|
2008
|
+
deprecatedBadge: "지원 중단됨",
|
|
2009
|
+
deprecatedBadgeReplacedBy: "지원 중단됨 → {{replacedBy}}",
|
|
2010
|
+
unsupportedSpecifierType: "지원되지 않는 설정 항목 유형: {{type}}",
|
|
2011
|
+
},
|
|
2012
|
+
workspaceTimezonePrompt: {
|
|
2013
|
+
title: "시스템 시간대 설정",
|
|
2014
|
+
description: "이 시스템은 아직 플랫폼 기본 시간대({{current}})를 사용하고 있습니다. 시스템 시간대는 수식에서 \"오늘\"의 의미, 보고서의 날짜별 그룹화, 날짜와 시간의 표시 방식을 결정하며 시스템의 모든 사용자에게 적용됩니다. 아래에 브라우저 시간대가 입력되어 있습니다.",
|
|
2015
|
+
laterHint: "설정 페이지에서 언제든지 변경할 수 있습니다.",
|
|
2016
|
+
decline: "기본값 유지",
|
|
2017
|
+
confirm: "시간대 설정",
|
|
2018
|
+
saved: "시스템 시간대를 {{zone}}(으)로 설정했습니다",
|
|
1669
2019
|
},
|
|
1670
2020
|
error: {
|
|
1671
2021
|
connectionFailed: "서버에 연결할 수 없습니다",
|
|
@@ -1690,27 +2040,28 @@ const ko = {
|
|
|
1690
2040
|
groups: {
|
|
1691
2041
|
general: "일반",
|
|
1692
2042
|
navigation: "탐색",
|
|
1693
|
-
dataViews: "데이터 뷰",
|
|
1694
2043
|
aiChat: "AI 어시스턴트",
|
|
1695
|
-
preferences: "환경설정",
|
|
1696
2044
|
},
|
|
1697
2045
|
openCommandPalette: "명령 팔레트 열기",
|
|
1698
2046
|
showShortcuts: "키보드 단축키 표시",
|
|
1699
2047
|
closeDialog: "대화상자 / 패널 닫기",
|
|
1700
2048
|
toggleSidebar: "사이드바 전환",
|
|
1701
|
-
focusSearch: "검색에 포커스",
|
|
1702
|
-
createRecord: "새 레코드 생성",
|
|
1703
|
-
refreshData: "데이터 새로고침",
|
|
1704
|
-
editRecord: "선택한 레코드 편집",
|
|
1705
2049
|
newChat: "새 채팅",
|
|
1706
2050
|
toggleChatsList: "채팅 목록 전환",
|
|
1707
|
-
|
|
2051
|
+
goHome: "홈으로 돌아가기",
|
|
2052
|
+
},
|
|
2053
|
+
reportIndex: {
|
|
2054
|
+
title: "보고서",
|
|
2055
|
+
emptyTitle: "보고서 없음",
|
|
2056
|
+
emptyDescription: "이 앱에는 열 수 있는 보고서가 없습니다.",
|
|
1708
2057
|
},
|
|
1709
2058
|
commandPalette: {
|
|
1710
2059
|
title: "명령 팔레트",
|
|
1711
2060
|
placeholder: "명령어를 입력하거나 검색…",
|
|
1712
2061
|
noResults: "결과를 찾을 수 없습니다.",
|
|
1713
2062
|
objects: "객체",
|
|
2063
|
+
packages: "패키지",
|
|
2064
|
+
flows: "플로우",
|
|
1714
2065
|
dashboards: "대시보드",
|
|
1715
2066
|
pages: "페이지",
|
|
1716
2067
|
reports: "보고서",
|
|
@@ -1727,6 +2078,21 @@ const ko = {
|
|
|
1727
2078
|
records: "레코드",
|
|
1728
2079
|
recentRecords: "최근 본 항목",
|
|
1729
2080
|
},
|
|
2081
|
+
// objectui#9954 — see the `en` pack for what raises each case.
|
|
2082
|
+
readRate: {
|
|
2083
|
+
ratioTitle: '이 시스템의 읽기 양이 비정상적입니다',
|
|
2084
|
+
ratio: '쓰기 1행당 {{ratio}}행을 읽고 있습니다. 플랫폼은 {{threshold}} 초과 비율을 표시합니다. 제한하거나 차단하는 것은 없습니다. 읽기 패턴을 검토할 수 있도록 알리는 보고입니다.',
|
|
2085
|
+
noWritesTitle: '이 시스템은 읽기만 있고 쓰기가 전혀 없습니다',
|
|
2086
|
+
noWrites: '행을 읽고 있지만 쓰기가 전혀 없어 읽기 비율에 상한이 없습니다. 가장 심각한 수치입니다. 플랫폼은 {{threshold}} 초과 비율을 표시합니다. 제한하거나 차단하는 것은 없습니다. 읽기 패턴을 검토할 수 있도록 알리는 보고입니다.',
|
|
2087
|
+
},
|
|
2088
|
+
// objectui#10439 — see the `en` pack for what raises each case.
|
|
2089
|
+
storageUsage: {
|
|
2090
|
+
warningTitle: '저장 공간이 거의 가득 찼습니다',
|
|
2091
|
+
warning: '{{limit}} MB 중 {{used}} MB 사용 중입니다. 저장 공간이 가득 차면 업로드와 가져오기가 일시 중지됩니다.',
|
|
2092
|
+
blockedTitle: '저장 공간이 가득 찼습니다: 업로드와 가져오기가 일시 중지되었습니다',
|
|
2093
|
+
blocked: '{{limit}} MB 중 {{used}} MB 사용 중입니다. 기존 데이터는 그대로 유지되며, 읽기, 내보내기, 개별 레코드 편집은 계속 사용할 수 있습니다.',
|
|
2094
|
+
upgrade: '업그레이드하고 계속하기',
|
|
2095
|
+
},
|
|
1730
2096
|
errors: {
|
|
1731
2097
|
somethingWentWrong: "문제가 발생했습니다",
|
|
1732
2098
|
unexpectedError: "이 뷰를 렌더링하는 중 예기치 않은 오류가 발생했습니다.",
|
|
@@ -1757,22 +2123,26 @@ const ko = {
|
|
|
1757
2123
|
viewNameInvalid: "소문자, 숫자, 밑줄을 사용하고 문자 또는 밑줄로 시작하세요.",
|
|
1758
2124
|
systemViewReadonly: "시스템 보기는 코드에 정의되어 있어 읽기 전용입니다.",
|
|
1759
2125
|
cannotEditMetaView: "이 보기는 코드에 정의된 기본 제공 보기이므로 변경할 수 없습니다.",
|
|
2126
|
+
resetView: "보기 재설정",
|
|
2127
|
+
resetViewTitle: "이 보기의 정렬, 필터, 열 너비를 보기 자체의 설정으로 되돌립니다. 본인의 설정만 변경됩니다.",
|
|
1760
2128
|
cannotDeleteMetaView: "이 보기는 코드에 정의된 기본 제공 보기이므로 삭제할 수 없습니다.",
|
|
1761
2129
|
expandToPage: "전체 페이지로 열기",
|
|
1762
2130
|
objectNotFound: "객체를 찾을 수 없음",
|
|
1763
2131
|
objectNotFoundDescription: "객체 \"{{objectName}}\"이(가) 현재 구성에 존재하지 않습니다.",
|
|
1764
2132
|
objectNotFoundHint: "앱 탐색 설정을 확인하거나 사이드바에서 다른 객체를 선택하세요.",
|
|
2133
|
+
objectPackageDisabled: "객체 \"{{objectName}}\"이(가) 속한 패키지가 비활성화되어 있어 제공되지 않습니다.",
|
|
1765
2134
|
filterOrNotSavable: "이 필터는 조건 사이에 OR을 사용하며, 저장된 뷰에는 아직 저장할 수 없습니다. 현재 목록에는 계속 적용됩니다. 뷰에 저장하려면 OR 그룹을 해제하세요.",
|
|
1766
2135
|
filterNestedNotSavable: "이 필터는 중첩된 조건 그룹을 사용하며, 저장된 뷰에는 저장할 수 없습니다. 뷰에 저장하려면 단일 조건 목록으로 펼치세요.",
|
|
1767
2136
|
allRecords: "모든 레코드",
|
|
1768
2137
|
new: "새로 만들기",
|
|
1769
2138
|
configureView: "뷰 구성",
|
|
1770
|
-
toolbar: "도구 모음",
|
|
1771
2139
|
toolbarEnabledCount: "{{total}}개 중 {{count}}개 활성화",
|
|
1772
2140
|
searchFields: "필드 검색…",
|
|
1773
2141
|
title: "제목",
|
|
1774
2142
|
viewType: "뷰 유형",
|
|
1775
2143
|
recordCount: "{{count}}개 레코드",
|
|
2144
|
+
recordCount_one: "{{count}}개 레코드",
|
|
2145
|
+
recordCount_other: "{{count}}개 레코드",
|
|
1776
2146
|
save: "저장",
|
|
1777
2147
|
discard: "취소",
|
|
1778
2148
|
createView: "뷰 생성",
|
|
@@ -1784,11 +2154,12 @@ const ko = {
|
|
|
1784
2154
|
longitudeField: "경도 필드",
|
|
1785
2155
|
imageField: "이미지 필드",
|
|
1786
2156
|
selectField: "필드 선택…",
|
|
1787
|
-
groupBy: "그룹화 기준",
|
|
1788
2157
|
endDateField: "종료 날짜 필드",
|
|
1789
2158
|
import: "가져오기",
|
|
1790
2159
|
importTitle: "CSV에서 가져오기",
|
|
1791
2160
|
importedToast: "{{count}}개 행 가져옴.",
|
|
2161
|
+
importedToast_one: "{{count}}개 행 가져옴.",
|
|
2162
|
+
importedToast_other: "{{count}}개 행 가져옴.",
|
|
1792
2163
|
importedWithSkipped: "{{ok}}개 행 가져옴; {{skipped}}개 건너뜀.",
|
|
1793
2164
|
createViewDesc: "보기 유형을 선택하고 이름을 지정하세요. 모든 설정은 나중에 변경할 수 있습니다.",
|
|
1794
2165
|
cancel: "취소",
|
|
@@ -1797,6 +2168,8 @@ const ko = {
|
|
|
1797
2168
|
deleteViewTitle: "보기 삭제",
|
|
1798
2169
|
deleteViewConfirm: "\"{{name}}\" 보기를 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.",
|
|
1799
2170
|
bulkDeleteConfirm: "선택한 {{count}}개 레코드를 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.",
|
|
2171
|
+
bulkDeleteConfirm_one: "선택한 {{count}}개 레코드를 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.",
|
|
2172
|
+
bulkDeleteConfirm_other: "선택한 {{count}}개 레코드를 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.",
|
|
1800
2173
|
duplicateViewName: "해당 이름의 보기가 이미 존재합니다.",
|
|
1801
2174
|
viewTypeGrid: "그리드",
|
|
1802
2175
|
viewTypeGridDesc: "레코드의 스프레드시트 형식 테이블.",
|
|
@@ -1833,14 +2206,22 @@ const ko = {
|
|
|
1833
2206
|
chartTypePie: "원형 차트",
|
|
1834
2207
|
chartTypeArea: "영역 차트",
|
|
1835
2208
|
chartTypeScatter: "분산형 차트",
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
2209
|
+
dataset: "데이터 세트",
|
|
2210
|
+
datasetHelp: "차트는 이 객체의 데이터 세트에서 숫자를 읽습니다.",
|
|
2211
|
+
chartMeasure: "측정값",
|
|
2212
|
+
chartMeasureHelp: "값 축에 표시할 데이터 세트의 측정값입니다.",
|
|
2213
|
+
chartDimension: "차원",
|
|
2214
|
+
chartDimensionHelp: "값을 그룹화할 데이터 세트의 차원입니다(선택 사항).",
|
|
2215
|
+
viewTypeUnavailableDataset: "이 객체에는 차트에 사용할 데이터 세트가 없습니다.",
|
|
2216
|
+
noDatasetMeasure: "이 데이터 세트에는 차트에 사용할 측정값이 선언되어 있지 않습니다.",
|
|
1840
2217
|
ufTabs: "탭",
|
|
1841
2218
|
ufAddField: "+ 필터 필드 추가…",
|
|
1842
2219
|
ufShowAllRecords: "\"모든 레코드\" 탭 표시",
|
|
1843
2220
|
},
|
|
2221
|
+
runtimeDraft: {
|
|
2222
|
+
publishFailed: "게시에 실패했습니다",
|
|
2223
|
+
discardFailed: "초안 버리기에 실패했습니다",
|
|
2224
|
+
},
|
|
1844
2225
|
localeSwitcher: {
|
|
1845
2226
|
label: "언어",
|
|
1846
2227
|
},
|
|
@@ -1848,14 +2229,22 @@ const ko = {
|
|
|
1848
2229
|
nav: {
|
|
1849
2230
|
pinItem: "{{name}} 고정",
|
|
1850
2231
|
unpinItem: "{{name}} 고정 해제",
|
|
1851
|
-
dragToReorder: "드래그하여 순서 변경",
|
|
1852
2232
|
favorites: "즐겨찾기",
|
|
2233
|
+
launcherLabel: "앱 런처",
|
|
2234
|
+
menuLabel: "앱 탐색",
|
|
2235
|
+
menuEmpty: "이 앱에는 열 수 있는 탐색 항목이 없습니다.",
|
|
2236
|
+
itemMenu: "{{name}} 더 많은 작업",
|
|
2237
|
+
openInNewTab: "새 탭에서 열기",
|
|
2238
|
+
copyLink: "링크 복사",
|
|
2239
|
+
linkCopied: "링크가 클립보드에 복사됨",
|
|
2240
|
+
linkCopyFailed: "링크 복사 실패",
|
|
2241
|
+
design: "디자인",
|
|
1853
2242
|
},
|
|
1854
2243
|
},
|
|
1855
2244
|
auth: {
|
|
1856
2245
|
setPassword: {
|
|
1857
2246
|
title: "복구 비밀번호 설정",
|
|
1858
|
-
description: "싱글 사인온으로 로그인했습니다. SSO를 사용할 수 없게 되더라도
|
|
2247
|
+
description: "싱글 사인온으로 로그인했습니다. SSO를 사용할 수 없게 되더라도 직접 로그인할 수 있도록 로컬 비밀번호를 설정하세요.",
|
|
1859
2248
|
email: "이메일",
|
|
1860
2249
|
newPassword: "새 비밀번호",
|
|
1861
2250
|
confirmPassword: "비밀번호 확인",
|
|
@@ -1871,9 +2260,8 @@ const ko = {
|
|
|
1871
2260
|
signingIn: "로그인하는 중…",
|
|
1872
2261
|
ssoHandoff: "{{target}}(으)로 계속",
|
|
1873
2262
|
devAdminHint: {
|
|
1874
|
-
title: "개발 인스턴스",
|
|
1875
|
-
|
|
1876
|
-
dismiss: "닫기",
|
|
2263
|
+
title: "로컬 개발 인스턴스",
|
|
2264
|
+
signIn: "개발용 관리자로 로그인",
|
|
1877
2265
|
},
|
|
1878
2266
|
title: "계정에 로그인",
|
|
1879
2267
|
description: "이메일과 비밀번호를 입력하세요",
|
|
@@ -1903,6 +2291,22 @@ const ko = {
|
|
|
1903
2291
|
resendOtpCountdownText: "{seconds}초 후 재전송",
|
|
1904
2292
|
usePhoneOtpText: "인증 코드로 로그인",
|
|
1905
2293
|
usePasswordSignInText: "비밀번호로 로그인하기",
|
|
2294
|
+
socialButton: "{provider} 계정으로 계속",
|
|
2295
|
+
orText: "또는 이메일로 계속",
|
|
2296
|
+
ssoButton: "SSO로 로그인",
|
|
2297
|
+
ssoOnlyDescription: "소속 조직의 싱글 사인온으로 로그인하세요",
|
|
2298
|
+
usePasswordText: "비밀번호 사용하기",
|
|
2299
|
+
backToSsoText: "싱글 사인온으로 돌아가기",
|
|
2300
|
+
// objectui#12600 — the console login card's own header, the password
|
|
2301
|
+
// field's reveal toggle, and the footer's legal links.
|
|
2302
|
+
welcomeTitle: "다시 오신 것을 환영합니다",
|
|
2303
|
+
welcomeDescription: "로그인하고 작업을 계속하세요",
|
|
2304
|
+
showPasswordText: "비밀번호 표시",
|
|
2305
|
+
hidePasswordText: "비밀번호 숨기기",
|
|
2306
|
+
footer: {
|
|
2307
|
+
privacy: "개인정보처리방침",
|
|
2308
|
+
terms: "이용약관",
|
|
2309
|
+
},
|
|
1906
2310
|
},
|
|
1907
2311
|
register: {
|
|
1908
2312
|
title: "계정 만들기",
|
|
@@ -1921,8 +2325,12 @@ const ko = {
|
|
|
1921
2325
|
submittingButton: "계정 생성 중…",
|
|
1922
2326
|
hasAccountText: "이미 계정이 있으신가요?",
|
|
1923
2327
|
signInText: "로그인",
|
|
2328
|
+
socialButton: "{provider} 계정으로 가입",
|
|
2329
|
+
orText: "또는 이메일로 계속",
|
|
1924
2330
|
errors: {
|
|
1925
2331
|
userExists: "해당 이메일로 이미 계정이 존재합니다. 로그인해 보세요.",
|
|
2332
|
+
selfRegistrationClosed: "이 시스템에서는 직접 가입을 받지 않습니다. 관리자에게 초대를 요청하세요.",
|
|
2333
|
+
emailDomainNotAllowed: "이 이메일의 도메인으로는 여기에서 가입할 수 없습니다. 조직 이메일을 사용하거나 관리자에게 초대를 요청하세요.",
|
|
1926
2334
|
},
|
|
1927
2335
|
verifyInbox: {
|
|
1928
2336
|
title: "받은 편지함을 확인하세요",
|
|
@@ -1998,7 +2406,7 @@ const ko = {
|
|
|
1998
2406
|
checkSpam: "이메일을 받지 못하셨나요? 스팸 폴더를 확인하거나 지원팀에 문의하세요.",
|
|
1999
2407
|
or: "또는",
|
|
2000
2408
|
// objectui#3546 slice three.
|
|
2001
|
-
resendUnavailable: "이
|
|
2409
|
+
resendUnavailable: "이 시스템에서는 이메일 발송이 구성되지 않았을 수 있습니다. 문제가 계속되면 지원팀에 문의하세요.",
|
|
2002
2410
|
},
|
|
2003
2411
|
setup: {
|
|
2004
2412
|
welcomeTitle: "ObjectStack에 오신 것을 환영합니다",
|
|
@@ -2042,7 +2450,7 @@ const ko = {
|
|
|
2042
2450
|
disabledDescription: "이 배포에는 장치 승인이 활성화되어 있지 않으므로 여기에서 이 장치를 승인할 수 없습니다.",
|
|
2043
2451
|
},
|
|
2044
2452
|
shell: {
|
|
2045
|
-
tenantHostHint: "이
|
|
2453
|
+
tenantHostHint: "이 시스템에 로그인하는 중입니다",
|
|
2046
2454
|
},
|
|
2047
2455
|
layout: {
|
|
2048
2456
|
headline: "강력한 비즈니스 애플리케이션을 더 빠르게.",
|
|
@@ -2052,6 +2460,7 @@ const ko = {
|
|
|
2052
2460
|
signOut: "대신 로그아웃",
|
|
2053
2461
|
password: {
|
|
2054
2462
|
title: "비밀번호가 만료되었습니다",
|
|
2463
|
+
resetTitle: "비밀번호를 변경해야 합니다",
|
|
2055
2464
|
fallbackMessage: "계속하려면 새 비밀번호를 설정하세요.",
|
|
2056
2465
|
current: "현재 비밀번호",
|
|
2057
2466
|
next: "새 비밀번호",
|
|
@@ -2077,6 +2486,11 @@ const ko = {
|
|
|
2077
2486
|
verifying: "확인 중…",
|
|
2078
2487
|
invalidCode: "코드가 올바르지 않습니다. 다시 시도하세요.",
|
|
2079
2488
|
},
|
|
2489
|
+
impersonation: {
|
|
2490
|
+
passwordTitle: "{{user}} 님이 비밀번호를 변경해야 합니다",
|
|
2491
|
+
mfaTitle: "{{user}} 님이 2단계 인증을 설정해야 합니다",
|
|
2492
|
+
body: "{{user}} 계정을 대행하고 있습니다. 이 작업은 해당 사용자 본인만 할 수 있습니다. 대행을 종료하고 본인 계정으로 돌아가세요.",
|
|
2493
|
+
},
|
|
2080
2494
|
},
|
|
2081
2495
|
},
|
|
2082
2496
|
// objectui#3546 slice three — the /oauth/consent screen.
|
|
@@ -2085,12 +2499,17 @@ const ko = {
|
|
|
2085
2499
|
title: "{{appName}}이(가) 계정에 액세스하려고 합니다",
|
|
2086
2500
|
request: "{{appName}}이(가) 권한을 요청합니다{{suffix}}.",
|
|
2087
2501
|
unknownApp: "어떤 애플리케이션",
|
|
2502
|
+
unidentified: "이 애플리케이션을 식별할 수 없습니다.",
|
|
2503
|
+
clientId: "클라이언트 ID",
|
|
2088
2504
|
willAllow: "이 앱은 다음을 할 수 있습니다:",
|
|
2089
2505
|
scope: {
|
|
2090
2506
|
openid: "본인 확인",
|
|
2091
2507
|
profile: "기본 프로필(이름, 사진) 읽기",
|
|
2092
2508
|
email: "이메일 주소 읽기",
|
|
2093
2509
|
offlineAccess: "로그인 상태 유지(액세스 갱신)",
|
|
2510
|
+
dataRead: "레코드 읽기(본인 권한 범위 내)",
|
|
2511
|
+
dataWrite: "레코드 생성, 변경 및 삭제(본인 권한 범위 내)",
|
|
2512
|
+
actionsExecute: "사용자를 대신하여 작업 실행(본인 권한 범위 내)",
|
|
2094
2513
|
},
|
|
2095
2514
|
deny: "거부",
|
|
2096
2515
|
authorize: "허용",
|
|
@@ -2121,11 +2540,20 @@ const ko = {
|
|
|
2121
2540
|
role: "역할",
|
|
2122
2541
|
save: "변경 사항 저장",
|
|
2123
2542
|
},
|
|
2543
|
+
language: {
|
|
2544
|
+
title: "언어",
|
|
2545
|
+
description: "회원님에게 발송되는 알림과 메시지에 사용되는 언어입니다. 화면 표시 언어는 지구본 메뉴에서 따로 변경합니다.",
|
|
2546
|
+
label: "선호 언어",
|
|
2547
|
+
systemDefault: "배포 기본값 사용",
|
|
2548
|
+
save: "저장",
|
|
2549
|
+
saved: "언어 설정을 업데이트했습니다.",
|
|
2550
|
+
readOnly: "이 계정의 언어는 관리자가 관리합니다.",
|
|
2551
|
+
},
|
|
2124
2552
|
password: {
|
|
2125
2553
|
changeTitle: "비밀번호 변경",
|
|
2126
2554
|
setTitle: "로컬 비밀번호 설정",
|
|
2127
|
-
changeDescription: "
|
|
2128
|
-
setDescription: "통합 인증(SSO)으로 로그인하셨습니다. 로컬 비밀번호를 설정하면
|
|
2555
|
+
changeDescription: "로그인할 때 사용하는 비밀번호를 업데이트하세요.",
|
|
2556
|
+
setDescription: "통합 인증(SSO)으로 로그인하셨습니다. 로컬 비밀번호를 설정하면 이메일과 비밀번호로도 로그인할 수 있습니다.",
|
|
2129
2557
|
current: "현재 비밀번호",
|
|
2130
2558
|
new: "새 비밀번호",
|
|
2131
2559
|
password: "비밀번호",
|
|
@@ -2134,7 +2562,7 @@ const ko = {
|
|
|
2134
2562
|
mismatch: "비밀번호가 일치하지 않습니다",
|
|
2135
2563
|
enterCurrent: "현재 비밀번호를 입력하세요",
|
|
2136
2564
|
changed: "비밀번호가 변경되었습니다.",
|
|
2137
|
-
localSet: "로컬 비밀번호가 설정되었습니다. 이제
|
|
2565
|
+
localSet: "로컬 비밀번호가 설정되었습니다. 이제 이메일과 비밀번호로 로그인할 수 있습니다.",
|
|
2138
2566
|
changeAction: "비밀번호 변경",
|
|
2139
2567
|
setAction: "비밀번호 설정",
|
|
2140
2568
|
},
|
|
@@ -2149,22 +2577,21 @@ const ko = {
|
|
|
2149
2577
|
unknown: "예기치 않은 오류가 발생했습니다.",
|
|
2150
2578
|
},
|
|
2151
2579
|
workspace: {
|
|
2152
|
-
label: "
|
|
2153
|
-
default: "내
|
|
2154
|
-
switch: "
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
nameLabel: "워크스페이스 이름",
|
|
2580
|
+
label: "조직",
|
|
2581
|
+
default: "내 조직",
|
|
2582
|
+
switch: "조직 전환",
|
|
2583
|
+
createTitle: "조직 만들기",
|
|
2584
|
+
createDescription: "조직은 팀이 협업할 수 있는 공유 공간입니다.",
|
|
2585
|
+
createButton: "조직 생성",
|
|
2586
|
+
nameLabel: "조직 이름",
|
|
2160
2587
|
namePlaceholder: "예: Acme Inc",
|
|
2161
2588
|
slugLabel: "URL 슬러그",
|
|
2162
2589
|
slugHint: "URL에 사용됩니다. 소문자, 숫자, 하이픈만 사용 가능합니다.",
|
|
2163
2590
|
invite: "구성원 초대",
|
|
2164
2591
|
members: "구성원",
|
|
2165
|
-
settings: "
|
|
2592
|
+
settings: "조직 설정",
|
|
2166
2593
|
multiOrgDisabled: "이 인스턴스에서는 새 조직을 만들 수 없습니다.",
|
|
2167
|
-
createFailed: '
|
|
2594
|
+
createFailed: '조직을 만들지 못했습니다',
|
|
2168
2595
|
},
|
|
2169
2596
|
help: {
|
|
2170
2597
|
onThisPage: "이 페이지에서",
|
|
@@ -2172,12 +2599,17 @@ const ko = {
|
|
|
2172
2599
|
appDocs: '이 앱의 문서',
|
|
2173
2600
|
allDocs: '전체 문서',
|
|
2174
2601
|
onlineDocs: '온라인 문서',
|
|
2602
|
+
loadingDocumentation: '문서 로딩 중',
|
|
2603
|
+
about: '정보',
|
|
2604
|
+
aboutTitle: '이 콘솔 정보',
|
|
2605
|
+
aboutDescription: '이 콘솔이 컴파일된 빌드입니다.',
|
|
2606
|
+
aboutBuild: '콘솔 빌드',
|
|
2607
|
+
aboutBuildUnknown: '알 수 없는 빌드(이 콘솔을 빌드할 때 버전이 설정되지 않음)',
|
|
2175
2608
|
},
|
|
2176
2609
|
sidebar: {
|
|
2177
2610
|
packageManagement: "패키지 관리",
|
|
2178
2611
|
searchNavigation: "내비게이션 검색…",
|
|
2179
2612
|
settings: "설정",
|
|
2180
|
-
help: "도움말",
|
|
2181
2613
|
helpTooltip: "도움말 및 문서",
|
|
2182
2614
|
activityFeed: "활동 피드",
|
|
2183
2615
|
notifications: "알림",
|
|
@@ -2187,18 +2619,16 @@ const ko = {
|
|
|
2187
2619
|
area: "영역",
|
|
2188
2620
|
scope: "범위",
|
|
2189
2621
|
recent: "최근",
|
|
2190
|
-
favorites: "즐겨찾기",
|
|
2191
2622
|
starred: "즐겨찾기",
|
|
2192
2623
|
removeFromFavorites: "즐겨찾기에서 {{name}} 제거",
|
|
2624
|
+
allReports: "모든 보고서",
|
|
2193
2625
|
},
|
|
2194
2626
|
topbar: {
|
|
2195
2627
|
openAssistant: "{{name}} 어시스턴트 열기",
|
|
2196
2628
|
offline: "오프라인",
|
|
2197
2629
|
usersOnline: "현재 접속 중인 사용자",
|
|
2198
2630
|
switchView: "뷰 전환",
|
|
2199
|
-
switchObject: "객체 전환",
|
|
2200
2631
|
connection: {
|
|
2201
|
-
connected: "연결됨",
|
|
2202
2632
|
connecting: "연결 중…",
|
|
2203
2633
|
reconnecting: "다시 연결 중…",
|
|
2204
2634
|
disconnected: "연결 끊김",
|
|
@@ -2211,23 +2641,22 @@ const ko = {
|
|
|
2211
2641
|
},
|
|
2212
2642
|
aiAssistant: "AI 어시스턴트",
|
|
2213
2643
|
designInStudio: "Studio에서 디자인",
|
|
2644
|
+
editApp: "앱 편집",
|
|
2214
2645
|
},
|
|
2215
2646
|
home: {
|
|
2216
2647
|
build: {
|
|
2217
2648
|
title: "앱 만들기",
|
|
2218
|
-
|
|
2219
|
-
noCapability: "이 워크스페이스에서는 앱 만들기를 사용할 수 없습니다 — ‘메타데이터 관리’ 권한이 필요하지만 계정에 해당 권한이 없습니다.",
|
|
2649
|
+
noCapability: "이 시스템에서는 앱 만들기를 사용할 수 없습니다 — ‘메타데이터 관리’ 권한이 필요하지만 계정에 해당 권한이 없습니다.",
|
|
2220
2650
|
},
|
|
2221
2651
|
template: {
|
|
2222
2652
|
title: "템플릿으로 시작",
|
|
2223
|
-
subtitle: "마켓플레이스에서 템플릿 앱을 설치하고 원하는 대로 바꾸세요.",
|
|
2224
2653
|
marketplaceDisabled: "이 런타임에는 앱 마켓플레이스가 구성되어 있지 않아 여기에서 설치할 템플릿이 없습니다.",
|
|
2225
2654
|
},
|
|
2226
2655
|
welcomeAdminDescription: "비즈니스를 한 문장으로 설명해 주세요 — AI가 객체, 화면, API, 에이전트 도구를 생성합니다. 왼쪽 메뉴에서 직접 설정할 수도 있습니다.",
|
|
2227
2656
|
welcomeAdminDescriptionNoBuild: "왼쪽 관리 메뉴에서 첫 애플리케이션을 설정하세요. 데이터가 쌓이면 AI 어시스턴트가 살펴보는 것을 도와줍니다.",
|
|
2228
2657
|
welcomeAdminDescriptionNoAi: "왼쪽 관리 메뉴에서 첫 애플리케이션을 설정하세요.",
|
|
2229
2658
|
noAppsTitle: "아직 애플리케이션이 없습니다",
|
|
2230
|
-
noAppsDescription: "
|
|
2659
|
+
noAppsDescription: "시스템을 준비하고 있습니다 — 관리자가 공유한 앱이 여기에 표시됩니다.",
|
|
2231
2660
|
buildWithAI: "AI로 빌드",
|
|
2232
2661
|
askAI: "AI에게 질문",
|
|
2233
2662
|
recoveryReminder: {
|
|
@@ -2236,7 +2665,15 @@ const ko = {
|
|
|
2236
2665
|
dismiss: "닫기",
|
|
2237
2666
|
},
|
|
2238
2667
|
pendingDrafts: {
|
|
2239
|
-
|
|
2668
|
+
// objectui#12602 — the drafts row in Home's "My work" section: the
|
|
2669
|
+
// count, then the first draft names joined by `nameSeparator`, in
|
|
2670
|
+
// their package when they share one.
|
|
2671
|
+
title: "게시되지 않은 변경 {{count}}개",
|
|
2672
|
+
title_one: "게시되지 않은 변경 {{count}}개",
|
|
2673
|
+
title_other: "게시되지 않은 변경 {{count}}개",
|
|
2674
|
+
inPackage: "{{names}} · {{package}}에서 게시 대기 중",
|
|
2675
|
+
waiting: "{{names}} · 게시 대기 중",
|
|
2676
|
+
nameSeparator: ", ",
|
|
2240
2677
|
cta: "게시",
|
|
2241
2678
|
publishing: "게시하는 중…",
|
|
2242
2679
|
published: "게시했습니다! 변경 사항이 반영되었습니다.",
|
|
@@ -2250,20 +2687,24 @@ const ko = {
|
|
|
2250
2687
|
capabilityWarn: "작성 검사: 기능 권한 참조 {{count}}개가 아무것도 가리키지 않습니다.",
|
|
2251
2688
|
},
|
|
2252
2689
|
title: "홈",
|
|
2253
|
-
subtitle: "워크스페이스 대시보드",
|
|
2254
2690
|
nav: "홈",
|
|
2255
2691
|
allApps: "모든 애플리케이션",
|
|
2256
2692
|
yourApps: "내 앱",
|
|
2257
2693
|
showMoreApps: "더 보기",
|
|
2258
2694
|
showLess: "간략히",
|
|
2259
2695
|
continueEmpty: "열어본 항목이 여기에 표시됩니다.",
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2696
|
+
// objectui#12602 — Home's "My work" section: its heading, the link to the
|
|
2697
|
+
// full inbox, each column's title, "view all" link and empty line.
|
|
2698
|
+
myWork: {
|
|
2699
|
+
title: "내 작업",
|
|
2700
|
+
openInbox: "받은 편지함 열기",
|
|
2701
|
+
viewAll: "모두 보기",
|
|
2702
|
+
approvals: "승인 대기",
|
|
2703
|
+
approvalsEmpty: "승인 대기 중인 항목이 없습니다",
|
|
2704
|
+
notifications: "알림",
|
|
2705
|
+
notificationsEmpty: "읽지 않은 알림이 없습니다",
|
|
2263
2706
|
},
|
|
2264
|
-
loading: "
|
|
2265
|
-
recent: "최근",
|
|
2266
|
-
starred: "즐겨찾기",
|
|
2707
|
+
loading: "로딩 중…",
|
|
2267
2708
|
welcome: "ObjectUI에 오신 것을 환영합니다",
|
|
2268
2709
|
welcomeDescription: "첫 애플리케이션을 만들거나 시스템 설정을 구성하여 시작하세요.",
|
|
2269
2710
|
createFirstApp: "첫 앱 만들기",
|
|
@@ -2271,12 +2712,10 @@ const ko = {
|
|
|
2271
2712
|
browseMarketplace: "앱 마켓플레이스 탐색",
|
|
2272
2713
|
quickActions: {
|
|
2273
2714
|
title: "빠른 작업",
|
|
2274
|
-
createApp: "앱 생성",
|
|
2275
|
-
createAppDesc: "새 애플리케이션으로 시작",
|
|
2276
2715
|
manageObjects: "객체 관리",
|
|
2277
2716
|
manageObjectsDesc: "데이터 모델 구성",
|
|
2278
2717
|
systemSettings: "시스템 설정",
|
|
2279
|
-
systemSettingsDesc: "
|
|
2718
|
+
systemSettingsDesc: "시스템 구성",
|
|
2280
2719
|
},
|
|
2281
2720
|
appCard: {
|
|
2282
2721
|
noDescription: "설명 없음",
|
|
@@ -2286,20 +2725,29 @@ const ko = {
|
|
|
2286
2725
|
greetingAfternoon: "좋은 오후에요",
|
|
2287
2726
|
greetingEvening: "좋은 저녁이에요",
|
|
2288
2727
|
greetingNight: "야간 작업 중",
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2728
|
+
greetingSeparator: ", ",
|
|
2729
|
+
greetingEnd: ".",
|
|
2730
|
+
search: "앱, 레코드, 페이지 검색…",
|
|
2731
|
+
summary: {
|
|
2732
|
+
approvals: "오늘 승인 대기 중인 항목이 {{count}}건 있습니다",
|
|
2733
|
+
approvals_one: "오늘 승인 대기 중인 항목이 {{count}}건 있습니다",
|
|
2734
|
+
approvals_other: "오늘 승인 대기 중인 항목이 {{count}}건 있습니다",
|
|
2735
|
+
none: "오늘은 처리할 일이 없습니다",
|
|
2295
2736
|
},
|
|
2737
|
+
addApp: "앱 추가",
|
|
2738
|
+
appOpened: "{{time}}에 열람",
|
|
2739
|
+
open: "열기",
|
|
2296
2740
|
recentApps: {
|
|
2297
2741
|
title: "최근 열린 항목",
|
|
2298
2742
|
itemType: {
|
|
2299
2743
|
object: "오브젝트",
|
|
2300
2744
|
dashboard: "대시보드",
|
|
2301
2745
|
page: "페이지",
|
|
2746
|
+
report: "보고서",
|
|
2747
|
+
package: "패키지",
|
|
2748
|
+
view: "목록 보기",
|
|
2302
2749
|
record: "레코드",
|
|
2750
|
+
metadata: "메타데이터",
|
|
2303
2751
|
},
|
|
2304
2752
|
},
|
|
2305
2753
|
starredApps: {
|
|
@@ -2321,7 +2769,6 @@ const ko = {
|
|
|
2321
2769
|
organizations: "조직",
|
|
2322
2770
|
roles: "역할",
|
|
2323
2771
|
configuration: "구성",
|
|
2324
|
-
createApp: "앱 만들기",
|
|
2325
2772
|
administration: "관리",
|
|
2326
2773
|
datasources: "데이터 소스",
|
|
2327
2774
|
documentation: "문서",
|
|
@@ -2336,16 +2783,23 @@ const ko = {
|
|
|
2336
2783
|
manageAllApps: "모든 앱 관리",
|
|
2337
2784
|
systemConsole: "시스템 콘솔",
|
|
2338
2785
|
noAppsConfigured: "구성된 앱 없음",
|
|
2786
|
+
allApps: "모든 앱",
|
|
2787
|
+
editAppInStudio: "Studio에서 {{app}} 편집",
|
|
2788
|
+
backToHome: "홈으로 돌아가기",
|
|
2789
|
+
settings: "시스템 설정",
|
|
2790
|
+
productHome: "{{product}} 홈",
|
|
2339
2791
|
},
|
|
2340
2792
|
activityFeed: {
|
|
2341
2793
|
title: "최근 활동",
|
|
2342
2794
|
filter: "필터",
|
|
2343
2795
|
empty: "최근 활동 없음",
|
|
2796
|
+
accessDenied: "활동을 볼 권한이 없습니다.",
|
|
2344
2797
|
ariaLabel: "활동 피드",
|
|
2345
2798
|
typeCreate: "생성",
|
|
2346
2799
|
typeUpdate: "업데이트",
|
|
2347
2800
|
typeDelete: "삭제",
|
|
2348
2801
|
typeComment: "댓글",
|
|
2802
|
+
typeSystem: "시스템",
|
|
2349
2803
|
relativeJustNow: "방금 전",
|
|
2350
2804
|
relativeSecondsAgo: "{{count}}초 전",
|
|
2351
2805
|
relativeMinutesAgo: "{{count}}분 전",
|
|
@@ -2367,8 +2821,11 @@ const ko = {
|
|
|
2367
2821
|
placeholder: "오브젝트, 대시보드, 페이지, 보고서 검색…",
|
|
2368
2822
|
inputAriaLabel: "오브젝트, 대시보드, 페이지, 보고서 검색",
|
|
2369
2823
|
resultsCount: "\"{{query}}\"에 대한 {{count}}개 결과",
|
|
2370
|
-
|
|
2824
|
+
resultsCount_one: "\"{{query}}\"에 대한 {{count}}개 결과",
|
|
2825
|
+
resultsCount_other: "\"{{query}}\"에 대한 {{count}}개 결과",
|
|
2371
2826
|
itemsAvailable: "{{count}}개 항목 사용 가능",
|
|
2827
|
+
itemsAvailable_one: "{{count}}개 항목 사용 가능",
|
|
2828
|
+
itemsAvailable_other: "{{count}}개 항목 사용 가능",
|
|
2372
2829
|
noResults: "결과를 찾을 수 없습니다",
|
|
2373
2830
|
noResultsHint: "검색어를 조정해 보세요",
|
|
2374
2831
|
typeObjects: "오브젝트",
|
|
@@ -2393,26 +2850,38 @@ const ko = {
|
|
|
2393
2850
|
noAppsConfigured: "구성된 앱 없음",
|
|
2394
2851
|
noAppsConfiguredDescription: "등록된 앱이 없습니다. 첫 번째 앱을 만들거나 시스템 설정을 방문하세요.",
|
|
2395
2852
|
appNotAvailable: "앱을 사용할 수 없습니다",
|
|
2396
|
-
appNotAvailableDescription: "이 앱을
|
|
2853
|
+
appNotAvailableDescription: "이 앱을 사용할 수 없습니다 — 잠시 후 다시 시도하세요.",
|
|
2854
|
+
appNotFound: "이 앱을 열 수 없습니다",
|
|
2855
|
+
appNotFoundDescription: "서버가 회원님의 계정에 대해 이 앱을 반환하지 않았습니다.",
|
|
2856
|
+
appUnreachable: "서버에 연결할 수 없습니다",
|
|
2857
|
+
appUnreachableDescription: "이 앱을 확인할 수 없습니다. 잠시 후 다시 시도하세요.",
|
|
2397
2858
|
appAccessDenied: "이 앱에 접근할 권한이 없습니다",
|
|
2398
2859
|
appAccessDeniedDescription: "이 앱은 존재하지만 계정에 여는 권한이 없습니다. 관리자에게 접근 권한을 요청하세요.",
|
|
2399
2860
|
appAccessDeniedHome: "홈으로 돌아가기",
|
|
2861
|
+
appNothingAvailable: "{{app}}에서 아직 사용할 수 있는 항목이 없습니다",
|
|
2862
|
+
appNothingAvailableDescription: "이 앱에는 계정으로 열 수 있는 페이지가 없습니다. 관리자에게 접근 권한을 요청하세요.",
|
|
2863
|
+
appNothingAvailableGrantDescription: "이 앱에는 계정으로 열 수 있는 페이지가 없습니다. 설정에서 접근 권한을 부여할 수 있습니다.",
|
|
2864
|
+
openSetup: "설정 열기",
|
|
2400
2865
|
createFirstApp: "첫 번째 앱 만들기",
|
|
2401
2866
|
systemSettings: "시스템 설정",
|
|
2402
2867
|
back: "뒤로",
|
|
2403
2868
|
recordNotFound: "레코드를 찾을 수 없습니다",
|
|
2404
2869
|
recordNotFoundDescription: "찾고 있는 레코드가 존재하지 않거나 삭제되었을 수 있습니다.",
|
|
2870
|
+
recordAccessDenied: "{{object}} 레코드에 접근할 권한이 없습니다",
|
|
2871
|
+
recordAccessDeniedDescription: "이 유형의 레코드를 볼 권한이 없습니다. 접근이 필요하면 관리자에게 문의하세요.",
|
|
2872
|
+
recordLoadFailed: "이 레코드를 불러오지 못했습니다",
|
|
2873
|
+
recordLoadFailedDescription: "불러오는 중 문제가 발생했습니다. 연결을 확인하고 다시 시도하세요.",
|
|
2405
2874
|
},
|
|
2406
2875
|
actionDialog: {
|
|
2407
2876
|
title: "작업 매개변수",
|
|
2408
2877
|
description: "계속하려면 필요한 정보를 입력하세요.",
|
|
2409
2878
|
selectPlaceholder: "{{label}} 선택",
|
|
2410
2879
|
requiredError: "{{label}}은(는) 필수입니다",
|
|
2880
|
+
unresolvedParam: '이 매개변수는 표시할 수 없습니다. 기반이 되는 필드가 개체 메타데이터에 없어 필요한 컨트롤을 만들 수 없습니다. 관리자에게 작업 정의를 수정하도록 요청하세요.',
|
|
2881
|
+
carryOverHint: '그대로 전달됨(읽기 전용)',
|
|
2411
2882
|
cancel: "취소",
|
|
2412
2883
|
confirm: "확인",
|
|
2413
2884
|
uploading: "업로드 중…",
|
|
2414
|
-
defaultActionTitle: "작업",
|
|
2415
|
-
ok: "확인",
|
|
2416
2885
|
lookupPlaceholder: "{{label}}의 레코드 ID",
|
|
2417
2886
|
lookupHelpText: "이 매개변수에 참조 개체가 설정되어 있지 않아 레코드 선택기를 사용할 수 없습니다. 레코드 ID를 직접 입력하거나 관리자에게 작업 매개변수 수정을 요청하세요.",
|
|
2418
2887
|
},
|
|
@@ -2421,11 +2890,6 @@ const ko = {
|
|
|
2421
2890
|
confirm: "계속",
|
|
2422
2891
|
cancel: "취소",
|
|
2423
2892
|
},
|
|
2424
|
-
rowAction: {
|
|
2425
|
-
openMenu: "메뉴 열기",
|
|
2426
|
-
edit: "편집",
|
|
2427
|
-
delete: "삭제",
|
|
2428
|
-
},
|
|
2429
2893
|
navigationSync: {
|
|
2430
2894
|
addedPage: "탐색 업데이트: 페이지 \"{{name}}\" 추가됨",
|
|
2431
2895
|
addedDashboard: "탐색 업데이트: 대시보드 \"{{name}}\" 추가됨",
|
|
@@ -2439,13 +2903,18 @@ const ko = {
|
|
|
2439
2903
|
updateFailed: "탐색을 업데이트할 수 없습니다",
|
|
2440
2904
|
},
|
|
2441
2905
|
objectActions: {
|
|
2442
|
-
resetPackageSetConfirm: "이 권한 세트는 설치된 패키지에 포함되어 있어 제거할 수 없습니다. 삭제하면 패키지 기본 상태로 초기화되며 이 환경의 커스터마이징은 폐기됩니다. 계속할까요?",
|
|
2443
|
-
resetPackageSetSuccess: "권한 세트를 패키지 기본 상태로 초기화했습니다",
|
|
2444
2906
|
deleteSuccess: "{{label}} 삭제 성공",
|
|
2445
2907
|
deleteFailed: "{{label}} 삭제 실패",
|
|
2446
2908
|
noRecordId: "레코드 ID가 없습니다",
|
|
2447
2909
|
deleteConfirm: "이 레코드를 삭제하시겠습니까?",
|
|
2910
|
+
deleteConfirmTitle: "{{label}} \"{{name}}\"을(를) 삭제하시겠습니까?",
|
|
2911
|
+
bulkDeleteConfirmTitle: "{{count}}개의 {{label}} 레코드를 삭제하시겠습니까?",
|
|
2912
|
+
bulkDeleteConfirmTitle_one: "{{count}}개의 {{label}} 레코드를 삭제하시겠습니까?",
|
|
2913
|
+
bulkDeleteConfirmTitle_other: "{{count}}개의 {{label}} 레코드를 삭제하시겠습니까?",
|
|
2914
|
+
deleteConfirmButton: "삭제",
|
|
2448
2915
|
bulkDeleteSuccess: "{{count}}개의 {{label}} 레코드 삭제됨",
|
|
2916
|
+
bulkDeleteSuccess_one: "{{count}}개의 {{label}} 레코드 삭제됨",
|
|
2917
|
+
bulkDeleteSuccess_other: "{{count}}개의 {{label}} 레코드 삭제됨",
|
|
2449
2918
|
bulkDeletePartial: "{{succeeded}}개 삭제됨, {{failed}}개 실패",
|
|
2450
2919
|
},
|
|
2451
2920
|
objectViewActions: {
|
|
@@ -2457,15 +2926,6 @@ const ko = {
|
|
|
2457
2926
|
exportFailed: "내보내기 실패: {{message}}",
|
|
2458
2927
|
forecastSoon: "예측 보기가 곧 출시됩니다",
|
|
2459
2928
|
},
|
|
2460
|
-
recordDetail: {
|
|
2461
|
-
viewersTooltip: "현재 이 레코드를 보고 있는 사용자",
|
|
2462
|
-
},
|
|
2463
|
-
cellRender: {
|
|
2464
|
-
empty: "비어 있음",
|
|
2465
|
-
yes: "예",
|
|
2466
|
-
no: "아니요",
|
|
2467
|
-
systemFields: "시스템",
|
|
2468
|
-
},
|
|
2469
2929
|
user: {
|
|
2470
2930
|
profile: "프로필",
|
|
2471
2931
|
settings: "설정",
|
|
@@ -2487,6 +2947,7 @@ const ko = {
|
|
|
2487
2947
|
loading: "로딩 중…",
|
|
2488
2948
|
failedToLoad: "매트릭스 로드 실패: {{message}}",
|
|
2489
2949
|
needsAcross: "매트릭스 보고서에는 하나 이상의 `groupingsAcross` 필드가 필요합니다.",
|
|
2950
|
+
forbiddenMessage: "이 보고서의 데이터를 볼 수 있는 권한이 없습니다.",
|
|
2490
2951
|
aggregate: {
|
|
2491
2952
|
count: "개수",
|
|
2492
2953
|
countDistinct: "고유 개수",
|
|
@@ -2501,18 +2962,18 @@ const ko = {
|
|
|
2501
2962
|
},
|
|
2502
2963
|
},
|
|
2503
2964
|
organizations: {
|
|
2504
|
-
create: "
|
|
2505
|
-
mine: "내
|
|
2506
|
-
title: "
|
|
2507
|
-
heading: "내
|
|
2508
|
-
subtitle: "계속할
|
|
2509
|
-
searchPlaceholder: "
|
|
2510
|
-
new: "새
|
|
2511
|
-
current: "현재
|
|
2965
|
+
create: "조직 만들기",
|
|
2966
|
+
mine: "내 조직",
|
|
2967
|
+
title: "조직",
|
|
2968
|
+
heading: "내 조직",
|
|
2969
|
+
subtitle: "계속할 조직을 선택하거나 새 조직을 만드세요.",
|
|
2970
|
+
searchPlaceholder: "조직 검색",
|
|
2971
|
+
new: "새 조직",
|
|
2972
|
+
current: "현재 조직",
|
|
2512
2973
|
manage: "관리",
|
|
2513
|
-
emptyTitle: "아직
|
|
2514
|
-
emptyDescription: "시작하려면 첫 번째
|
|
2515
|
-
noMatches: "검색과 일치하는
|
|
2974
|
+
emptyTitle: "아직 조직이 없습니다",
|
|
2975
|
+
emptyDescription: "시작하려면 첫 번째 조직을 만드세요.",
|
|
2976
|
+
noMatches: "검색과 일치하는 조직이 없습니다.",
|
|
2516
2977
|
},
|
|
2517
2978
|
organization: {
|
|
2518
2979
|
roles: {
|
|
@@ -2597,6 +3058,7 @@ const ko = {
|
|
|
2597
3058
|
readOnlyNote: "소유자만 설정을 변경할 수 있습니다.",
|
|
2598
3059
|
nameLabel: "조직 이름",
|
|
2599
3060
|
slugLabel: "슬러그",
|
|
3061
|
+
slugLockedNote: "이 조직에는 활성 환경이 있어 여기에서 슬러그를 변경할 수 없습니다. 이름을 바꾸면 해당 환경의 하위 도메인도 함께 이동합니다.",
|
|
2600
3062
|
logoLabel: "로고",
|
|
2601
3063
|
logoUpload: "업로드",
|
|
2602
3064
|
logoReplace: "변경",
|
|
@@ -2655,18 +3117,37 @@ const ko = {
|
|
|
2655
3117
|
regionLabel: "알림",
|
|
2656
3118
|
groupCount: "알림 {{count}}건",
|
|
2657
3119
|
groupUnread: "읽지 않음 {{count}}건",
|
|
3120
|
+
groupUnread_one: "읽지 않음 {{count}}건",
|
|
3121
|
+
groupUnread_other: "읽지 않음 {{count}}건",
|
|
2658
3122
|
groupMarkRead: "읽음 표시",
|
|
2659
3123
|
groupMarkReadTitle: "이 유형 전체를 읽음으로 표시",
|
|
2660
3124
|
empty: "알림 없음",
|
|
2661
3125
|
markAllRead: "모두 읽음으로 표시",
|
|
2662
3126
|
viewAll: "모든 알림 보기",
|
|
2663
3127
|
approvalsPending: "{{count}}건의 승인 대기 중",
|
|
3128
|
+
approvalsPending_one: "{{count}}건의 승인 대기 중",
|
|
3129
|
+
approvalsPending_other: "{{count}}건의 승인 대기 중",
|
|
2664
3130
|
viewApprovals: "승인 보기",
|
|
2665
3131
|
noPendingApprovals: "대기 중인 승인 없음",
|
|
2666
3132
|
openApprovalsInbox: "승인 보관함 열기",
|
|
2667
3133
|
badgeTotal: "총 {{total}}건",
|
|
2668
|
-
badgeNotifications: "알림 {{
|
|
2669
|
-
|
|
3134
|
+
badgeNotifications: "알림 {{count}}건",
|
|
3135
|
+
badgeNotifications_one: "알림 {{count}}건",
|
|
3136
|
+
badgeNotifications_other: "알림 {{count}}건",
|
|
3137
|
+
badgeApprovals: "승인 대기 {{count}}건",
|
|
3138
|
+
badgeApprovals_one: "승인 대기 {{count}}건",
|
|
3139
|
+
badgeApprovals_other: "승인 대기 {{count}}건",
|
|
3140
|
+
arrivalMany: "새 메시지 {{count}}건",
|
|
3141
|
+
arrivalMany_one: "새 메시지 {{count}}건",
|
|
3142
|
+
arrivalMany_other: "새 메시지 {{count}}건",
|
|
3143
|
+
arrivalRepeats: "이 주제의 새 메시지 {{count}}건",
|
|
3144
|
+
arrivalRepeats_one: "이 주제의 새 메시지 {{count}}건",
|
|
3145
|
+
arrivalRepeats_other: "이 주제의 새 메시지 {{count}}건",
|
|
3146
|
+
arrivalOpen: "보기",
|
|
3147
|
+
toastEnabled: "앱 내 알림",
|
|
3148
|
+
desktopEnabled: "데스크톱 알림",
|
|
3149
|
+
desktopBlocked: "차단됨. 브라우저 설정에서 이 사이트의 알림을 허용하세요.",
|
|
3150
|
+
desktopUnsupported: "이 브라우저는 데스크톱 알림을 지원하지 않습니다.",
|
|
2670
3151
|
emptyUnread: "모두 읽음",
|
|
2671
3152
|
filterUnread: "읽지 않음",
|
|
2672
3153
|
filterAll: "전체",
|
|
@@ -2680,12 +3161,14 @@ const ko = {
|
|
|
2680
3161
|
thankYouTitle: "감사합니다!",
|
|
2681
3162
|
thankYouMessage: "제출이 성공적으로 수신되었습니다.",
|
|
2682
3163
|
redirecting: "{{seconds}}초 후 리디렉션됩니다…",
|
|
3164
|
+
redirectPending: "리디렉션 중…",
|
|
2683
3165
|
unavailableTitle: "양식을 사용할 수 없습니다",
|
|
2684
3166
|
unavailableDescription: "이 URL에서 사용 가능한 공개 양식이 없습니다. 기본 보기에서 익명 공유가 활성화되어 있는지 확인하세요.",
|
|
2685
3167
|
tryDemo: "데모 시도",
|
|
2686
3168
|
retry: "다시 시도",
|
|
2687
3169
|
loading: "양식 로딩 중…",
|
|
2688
3170
|
requiredHint: "* 필수 필드",
|
|
3171
|
+
requiredFields: "필수 항목: {{fields}}",
|
|
2689
3172
|
consentLabelDefault: "개인정보 처리방침에 동의하며 이 요청을 위해 내 데이터 처리에 동의합니다.",
|
|
2690
3173
|
consentLink: "개인정보 처리방침",
|
|
2691
3174
|
consentRequired: "계속하려면 개인정보 처리방침에 동의하세요.",
|
|
@@ -2698,10 +3181,10 @@ const ko = {
|
|
|
2698
3181
|
body: 'MCP 서비스가 꺼져 있습니다(OS_MCP_SERVER_ENABLED=false). 운영자에게 다시 활성화를 요청하세요.',
|
|
2699
3182
|
},
|
|
2700
3183
|
url: {
|
|
2701
|
-
title: '이
|
|
3184
|
+
title: '이 시스템의 MCP 엔드포인트',
|
|
2702
3185
|
body: 'MCP를 지원하는 모든 AI 클라이언트가 이 URL로 연결합니다. 인증은 셀프서비스입니다. 배포 자체가 OAuth 2.1 인가 서버이므로 브라우저 로그인만 하면 되고, 모든 호출은 본인의 권한과 행 수준 보안 아래 실행됩니다.',
|
|
2703
3186
|
downloadSkill: 'SKILL.md 다운로드',
|
|
2704
|
-
skillHint: '이식 가능한 에이전트 스킬: 스킬을 지원하는 에이전트에게 이
|
|
3187
|
+
skillHint: '이식 가능한 에이전트 스킬: 스킬을 지원하는 에이전트에게 이 시스템 사용법을 알려줍니다.',
|
|
2705
3188
|
},
|
|
2706
3189
|
claude: {
|
|
2707
3190
|
body: '설정 → 커넥터 → 사용자 지정 커넥터 추가에서 이 URL을 붙여넣고 브라우저에서 로그인하세요.',
|
|
@@ -2736,18 +3219,83 @@ const ko = {
|
|
|
2736
3219
|
noImportableFields: "해당 오브젝트에는 가져올 수 있는 필드가 없습니다.",
|
|
2737
3220
|
schemaReadFailed: "오브젝트 스키마를 읽을 수 없습니다.",
|
|
2738
3221
|
imported: "{{count}}개 행을 {{object}}(으)로 가져왔습니다.",
|
|
3222
|
+
imported_one: "{{count}}개 행을 {{object}}(으)로 가져왔습니다.",
|
|
3223
|
+
imported_other: "{{count}}개 행을 {{object}}(으)로 가져왔습니다.",
|
|
2739
3224
|
importFrom: "실제 데이터 가져오기 원본",
|
|
2740
3225
|
into: "→",
|
|
2741
3226
|
opening: "여는 중…",
|
|
2742
3227
|
importAction: "가져오기",
|
|
2743
3228
|
dismiss: "닫기",
|
|
2744
3229
|
},
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
3230
|
+
cloudWorkspaceTimezoneNotice: {
|
|
3231
|
+
seeded: "환경 시간대는 생성 시 브라우저에 맞춰 {{zone}}(으)로 설정되었습니다. 설정 → 현지화에서 변경할 수 있습니다.",
|
|
3232
|
+
},
|
|
3233
|
+
ai: {
|
|
3234
|
+
nlQuery: {
|
|
3235
|
+
placeholder: "데이터에 대해 질문하세요…",
|
|
3236
|
+
ask: "질문",
|
|
3237
|
+
results: "결과",
|
|
3238
|
+
match: "일치도 {{percent}}",
|
|
3239
|
+
simulatedSummary: "검색 결과: {{query}}",
|
|
3240
|
+
noResults: "일치하는 레코드가 없습니다",
|
|
3241
|
+
recentQueries: "최근 쿼리",
|
|
3242
|
+
},
|
|
3243
|
+
formAssist: {
|
|
3244
|
+
title: "AI 제안",
|
|
3245
|
+
suggestionCount: "제안 {{count}}개",
|
|
3246
|
+
suggestionCount_one: "제안 {{count}}개",
|
|
3247
|
+
suggestionCount_other: "제안 {{count}}개",
|
|
3248
|
+
applyAll: "모두 적용",
|
|
3249
|
+
confidence: "신뢰도 {{percent}}",
|
|
3250
|
+
appliedCount: "제안 {{count}}개 적용됨",
|
|
3251
|
+
appliedCount_one: "제안 {{count}}개 적용됨",
|
|
3252
|
+
appliedCount_other: "제안 {{count}}개 적용됨",
|
|
3253
|
+
},
|
|
3254
|
+
recommendations: {
|
|
3255
|
+
title: "추천",
|
|
3256
|
+
generating: "추천을 생성하는 중…",
|
|
3257
|
+
empty: "추천 항목이 없습니다",
|
|
3258
|
+
},
|
|
3259
|
+
},
|
|
3260
|
+
aiApprovals: {
|
|
3261
|
+
title: "AI 승인",
|
|
3262
|
+
description: "AI 에이전트가 제안한 작업으로, 실행 전에 사람의 검토가 필요합니다.",
|
|
3263
|
+
tabPending: "대기 중",
|
|
3264
|
+
tabDecided: "처리됨",
|
|
3265
|
+
tabAll: "전체",
|
|
3266
|
+
statusPending: "대기 중",
|
|
3267
|
+
statusApproved: "승인됨",
|
|
3268
|
+
statusExecuted: "실행됨",
|
|
3269
|
+
statusFailed: "실패",
|
|
3270
|
+
statusRejected: "거부됨",
|
|
3271
|
+
colTool: "도구",
|
|
3272
|
+
colAction: "작업",
|
|
3273
|
+
colObject: "객체",
|
|
3274
|
+
colStatus: "상태",
|
|
3275
|
+
colProposed: "제안 시각",
|
|
3276
|
+
colDecision: "결정",
|
|
3277
|
+
emptyTitle: "대기 중인 작업 없음",
|
|
3278
|
+
emptyDescription: "AI가 민감한 작업을 제안하면 검토를 위해 여기에 표시됩니다.",
|
|
3279
|
+
view: "보기",
|
|
3280
|
+
approve: "승인",
|
|
3281
|
+
reject: "거부",
|
|
3282
|
+
working: "처리 중…",
|
|
3283
|
+
approveAndExecute: "승인 후 실행",
|
|
3284
|
+
outcomeApprove: "{{id}} 승인: {{message}}",
|
|
3285
|
+
outcomeReject: "{{id}} 거부: {{message}}",
|
|
3286
|
+
outcomeExecuteFailed: "실행 중 작업이 실패했습니다",
|
|
3287
|
+
drawerFallbackTitle: "대기 중인 작업",
|
|
3288
|
+
drawerSubtitle: "{{object}}에 대한 도구 {{tool}}",
|
|
3289
|
+
fieldProposedBy: "제안자",
|
|
3290
|
+
fieldDecidedBy: "결정자",
|
|
3291
|
+
fieldConversation: "대화",
|
|
3292
|
+
fieldToolInput: "도구 입력",
|
|
3293
|
+
fieldResult: "결과",
|
|
3294
|
+
fieldError: "오류",
|
|
3295
|
+
fieldRejectionReason: "거부 사유",
|
|
3296
|
+
rejectTitle: "이 작업을 거부할까요?",
|
|
3297
|
+
rejectBody: "사유는 AI에 전달되어 다음 응답을 조정하는 데 사용됩니다.",
|
|
3298
|
+
rejectPlaceholder: "사유(선택). 예: ‘레코드 ID가 잘못되었습니다 — 사용자에게 먼저 확인하세요.’",
|
|
2751
3299
|
},
|
|
2752
3300
|
aiModelStatus: {
|
|
2753
3301
|
summary: "빌드 / 질문은 {{conversational}}({{conversationalSource}}), 구조화 출력은 {{structured}}({{structuredSource}})을(를) 사용합니다.",
|
|
@@ -2757,8 +3305,8 @@ const ko = {
|
|
|
2757
3305
|
rowConversational: "Build / Ask 모델",
|
|
2758
3306
|
rowStructured: "구조화(블루프린트 / 시드)",
|
|
2759
3307
|
rowReasoning: "추론 강도",
|
|
2760
|
-
readFailed: "유효한 AI 모델을 읽을 수 없습니다. 이
|
|
2761
|
-
readFailedWithStatus: "유효한 AI 모델을 읽을 수 없습니다(HTTP {{status}}). 이
|
|
3308
|
+
readFailed: "유효한 AI 모델을 읽을 수 없습니다. 이 시스템에서 AI 서비스가 실행되지 않거나 ai:read 권한이 없을 수 있습니다.",
|
|
3309
|
+
readFailedWithStatus: "유효한 AI 모델을 읽을 수 없습니다(HTTP {{status}}). 이 시스템에서 AI 서비스가 실행되지 않거나 ai:read 권한이 없을 수 있습니다.",
|
|
2762
3310
|
overridesInEffect: "적용 중인 재정의: ",
|
|
2763
3311
|
noOverrides: "없음 — 배포된 코드의 기본값으로 실행 중입니다.",
|
|
2764
3312
|
adapter: "어댑터: ",
|
|
@@ -2766,6 +3314,174 @@ const ko = {
|
|
|
2766
3314
|
sourceInherits: "build/ask와 동일",
|
|
2767
3315
|
sourcePinned: "{{source}}에 의해 고정됨",
|
|
2768
3316
|
},
|
|
3317
|
+
// objectui#7254 — the AI copilot's tool cards. Three families, all of them
|
|
3318
|
+
// English-only until this landed while every other string on the same screen
|
|
3319
|
+
// was translated:
|
|
3320
|
+
//
|
|
3321
|
+
// `tool.*` — one entry per PLATFORM-PROVIDED tool name
|
|
3322
|
+
// (@objectstack/spec `PLATFORM_TOOLS_BY_PACKAGE`, the
|
|
3323
|
+
// closed registry those runtimes are conformance-tested
|
|
3324
|
+
// against). `humanizeToolName` looks each up as
|
|
3325
|
+
// `chatbot.tool.<tool_name>` and falls back to its English
|
|
3326
|
+
// title-caser for a custom / third-party tool, so a name
|
|
3327
|
+
// missing here is degraded, never broken. Every value, `en`
|
|
3328
|
+
// included, is a short sentence in the pack's language
|
|
3329
|
+
// saying what the step does (cloud#2927 Target 3, ruled
|
|
3330
|
+
// 「同意」; objectui#12724): never the tool id, and never
|
|
3331
|
+
// the title-caser's output for it, which is how the step
|
|
3332
|
+
// reads for a tool the pack has no entry for.
|
|
3333
|
+
// `toolLabels-locale-parity-7481` holds both.
|
|
3334
|
+
// `toolState.*` — the card-header badge + activity-chip vocabulary. ONE
|
|
3335
|
+
// set for both surfaces (they used to carry separate
|
|
3336
|
+
// tables and disagreed on casing).
|
|
3337
|
+
// `plan.*` — the "N objects · N views · N dashboards" strip. Plural
|
|
3338
|
+
// FAMILIES: one slot per CLDR category the pack's language
|
|
3339
|
+
// selects (objectui#11432), plus the base key for a call
|
|
3340
|
+
// made without a count. `all-locales-key-parity.test.ts`
|
|
3341
|
+
// derives the required slots from `Intl.PluralRules`.
|
|
3342
|
+
//
|
|
3343
|
+
// objectui#7481 — five `tool.*` entries are NEWER than the registry above:
|
|
3344
|
+
// `get_authoring_rules` (cloud#1837), `load_tools`, `open_record`, `test_flow`
|
|
3345
|
+
// and `toggle_flow` are registered by cloud `service-ai-studio` but the pinned
|
|
3346
|
+
// `@objectstack/spec` snapshot does not list them yet. They are kept here on
|
|
3347
|
+
// purpose: a step label the user reads must not wait on a pin bump. When the
|
|
3348
|
+
// pin advances, `chatbotToolLabels-locale-parity-7481` starts checking them
|
|
3349
|
+
// against the registry instead of against its own hand-held list.
|
|
3350
|
+
chatbot: {
|
|
3351
|
+
answer: {
|
|
3352
|
+
showFull: '전체 답변 보기',
|
|
3353
|
+
collapse: '접기',
|
|
3354
|
+
expandTable: '펼치기',
|
|
3355
|
+
exitExpandedTable: '닫기',
|
|
3356
|
+
},
|
|
3357
|
+
tool: {
|
|
3358
|
+
aggregate_data: "관련 데이터 집계하기",
|
|
3359
|
+
get_record: "이 레코드 읽기",
|
|
3360
|
+
query_data: "필요한 데이터 조회하기",
|
|
3361
|
+
query_records: "해당 레코드 찾기",
|
|
3362
|
+
search_knowledge: "지식 베이스에서 찾아보기",
|
|
3363
|
+
visualize_data: "데이터를 차트로 그리기",
|
|
3364
|
+
add_field: "오브젝트에 필드 추가하기",
|
|
3365
|
+
apply_blueprint: "설계안대로 앱 만들기",
|
|
3366
|
+
apply_edit: "이번 변경 적용하기",
|
|
3367
|
+
create_metadata: "메타데이터 새로 만들기",
|
|
3368
|
+
create_object: "오브젝트 새로 만들기",
|
|
3369
|
+
create_package: "패키지 새로 만들기",
|
|
3370
|
+
create_seed: "오브젝트 샘플 데이터 만들기",
|
|
3371
|
+
delete_field: "필드 삭제하기",
|
|
3372
|
+
describe_metadata: "메타데이터 내용 확인하기",
|
|
3373
|
+
describe_object: "오브젝트 구조 살펴보기",
|
|
3374
|
+
get_active_package: "현재 패키지 확인하기",
|
|
3375
|
+
get_authoring_rules: "작성 규칙 읽기",
|
|
3376
|
+
get_metadata_schema: "메타데이터 형식 살펴보기",
|
|
3377
|
+
get_package: "패키지 정보 확인하기",
|
|
3378
|
+
list_metadata: "기존 메타데이터 나열하기",
|
|
3379
|
+
list_objects: "기존 오브젝트 나열하기",
|
|
3380
|
+
list_packages: "기존 패키지 나열하기",
|
|
3381
|
+
load_tools: "다른 도구 불러오기",
|
|
3382
|
+
modify_field: "필드 수정하기",
|
|
3383
|
+
open_record: "이 레코드 열기",
|
|
3384
|
+
propose_blueprint: "앱 설계안 정리하기",
|
|
3385
|
+
set_active_package: "대상 패키지로 전환하기",
|
|
3386
|
+
suggest_builder: "AI로 만들기 제안하기",
|
|
3387
|
+
test_flow: "플로우 시험 실행하기",
|
|
3388
|
+
todo_write: "나중에 확인할 항목 적어 두기",
|
|
3389
|
+
toggle_flow: "플로우 켜거나 끄기",
|
|
3390
|
+
update_metadata: "메타데이터 업데이트하기",
|
|
3391
|
+
validate_expression: "표현식이 맞는지 확인하기",
|
|
3392
|
+
verify_build: "빌드 결과 대조하기",
|
|
3393
|
+
},
|
|
3394
|
+
toolState: {
|
|
3395
|
+
agentActivity: "에이전트 활동",
|
|
3396
|
+
pending: "대기 중",
|
|
3397
|
+
running: "실행 중",
|
|
3398
|
+
awaitingApproval: "승인 대기",
|
|
3399
|
+
responded: "응답함",
|
|
3400
|
+
completed: "완료",
|
|
3401
|
+
error: "오류",
|
|
3402
|
+
denied: "거부됨",
|
|
3403
|
+
failed: "실패",
|
|
3404
|
+
},
|
|
3405
|
+
phase: {
|
|
3406
|
+
build: "빌드",
|
|
3407
|
+
design: "계획 설계",
|
|
3408
|
+
stepCount: "{{count}}단계",
|
|
3409
|
+
stepCount_one: "{{count}}단계",
|
|
3410
|
+
stepCount_other: "{{count}}단계",
|
|
3411
|
+
expand: "단계 보기",
|
|
3412
|
+
collapse: "단계 숨기기",
|
|
3413
|
+
},
|
|
3414
|
+
plan: {
|
|
3415
|
+
countObjects: "오브젝트 {{count}}개",
|
|
3416
|
+
countObjects_one: "오브젝트 {{count}}개",
|
|
3417
|
+
countObjects_other: "오브젝트 {{count}}개",
|
|
3418
|
+
countViews: "뷰 {{count}}개",
|
|
3419
|
+
countViews_one: "뷰 {{count}}개",
|
|
3420
|
+
countViews_other: "뷰 {{count}}개",
|
|
3421
|
+
countDashboards: "대시보드 {{count}}개",
|
|
3422
|
+
countDashboards_one: "대시보드 {{count}}개",
|
|
3423
|
+
countDashboards_other: "대시보드 {{count}}개",
|
|
3424
|
+
countSeedData: "샘플 데이터",
|
|
3425
|
+
extendTarget: "기존 앱에 추가: {{app}}",
|
|
3426
|
+
awaitingConfirm: "확인 대기 중",
|
|
3427
|
+
objectsAndFields: "개체 및 필드",
|
|
3428
|
+
views: "뷰",
|
|
3429
|
+
suggestedField: "추가 제안",
|
|
3430
|
+
nameField: "이름: {{field}}",
|
|
3431
|
+
},
|
|
3432
|
+
build: {
|
|
3433
|
+
building: "{{app}} 빌드 중…",
|
|
3434
|
+
built: "{{app}} 빌드 완료",
|
|
3435
|
+
builtAndLive: "빌드 및 게시 완료 · {{app}}",
|
|
3436
|
+
appFallback: "앱",
|
|
3437
|
+
addingSampleData: "샘플 데이터 추가 중",
|
|
3438
|
+
group: {
|
|
3439
|
+
object: "오브젝트",
|
|
3440
|
+
view: "뷰",
|
|
3441
|
+
dashboard: "대시보드",
|
|
3442
|
+
app: "앱",
|
|
3443
|
+
seed: "샘플 데이터",
|
|
3444
|
+
},
|
|
3445
|
+
moreArtifacts: "외 {{n}}개",
|
|
3446
|
+
verifying: "변경 사항 확인 중…",
|
|
3447
|
+
verifyStep: "{{n}}단계",
|
|
3448
|
+
verified: "변경 사항 확인 완료",
|
|
3449
|
+
unknownPhase: "알 수 없는 빌드 단계",
|
|
3450
|
+
nextStepsLead: "다음으로 이렇게 말할 수 있습니다: {{steps}}",
|
|
3451
|
+
nextStepQuote: "“{{step}}”",
|
|
3452
|
+
draftPosture: "이후 변경 사항은 초안으로 저장되며, Studio에서 직접 게시합니다.",
|
|
3453
|
+
checksPassed: "검증 통과 {{passed}}/{{total}}",
|
|
3454
|
+
},
|
|
3455
|
+
changes: {
|
|
3456
|
+
planTitle: "변경안 · {{count}}개",
|
|
3457
|
+
planTitle_one: "변경안 · {{count}}개",
|
|
3458
|
+
planTitle_other: "변경안 · {{count}}개",
|
|
3459
|
+
saveDraft: "초안으로 저장",
|
|
3460
|
+
reviewAndPublish: "변경 사항 확인 후 게시",
|
|
3461
|
+
undo: "되돌리기",
|
|
3462
|
+
undoWithOthers: "되돌리기(다른 초안 {{count}}개 포함)",
|
|
3463
|
+
undoWithOthers_one: "되돌리기(다른 초안 {{count}}개 포함)",
|
|
3464
|
+
undoWithOthers_other: "되돌리기(다른 초안 {{count}}개 포함)",
|
|
3465
|
+
undoConfirm: "되돌리면 이 앱 패키지의 게시되지 않은 초안 {{total}}개가 모두 폐기되며, 그중 {{count}}개는 이번 변경이 아닙니다.",
|
|
3466
|
+
undoConfirm_one: "되돌리면 이 앱 패키지의 게시되지 않은 초안 {{total}}개가 모두 폐기되며, 그중 {{count}}개는 이번 변경이 아닙니다.",
|
|
3467
|
+
undoConfirm_other: "되돌리면 이 앱 패키지의 게시되지 않은 초안 {{total}}개가 모두 폐기되며, 그중 {{count}}개는 이번 변경이 아닙니다.",
|
|
3468
|
+
undoConfirmUnknown: "되돌리면 이번 변경뿐 아니라 이 앱 패키지의 게시되지 않은 초안이 모두 폐기됩니다.",
|
|
3469
|
+
undoConfirmAction: "모두 되돌리기",
|
|
3470
|
+
undoCancel: "취소",
|
|
3471
|
+
undoing: "되돌리는 중…",
|
|
3472
|
+
undone: "되돌림",
|
|
3473
|
+
undoFailed: "되돌리지 못했습니다",
|
|
3474
|
+
kind: {
|
|
3475
|
+
field: "필드",
|
|
3476
|
+
object: "오브젝트",
|
|
3477
|
+
view: "뷰",
|
|
3478
|
+
dashboard: "대시보드",
|
|
3479
|
+
app: "앱",
|
|
3480
|
+
seed: "샘플 데이터",
|
|
3481
|
+
package: "앱 패키지",
|
|
3482
|
+
},
|
|
3483
|
+
},
|
|
3484
|
+
},
|
|
2769
3485
|
chatbotError: {
|
|
2770
3486
|
title: "응답 실패",
|
|
2771
3487
|
fallbackDetail: "문제가 발생했습니다. 다시 시도해 주세요.",
|
|
@@ -2779,10 +3495,13 @@ const ko = {
|
|
|
2779
3495
|
buyCredits: "크레딧 팩 구매",
|
|
2780
3496
|
upgradePlan: "요금제 업그레이드",
|
|
2781
3497
|
},
|
|
3498
|
+
planTier: {
|
|
3499
|
+
teamAndUp: "Team 요금제 이상",
|
|
3500
|
+
},
|
|
2782
3501
|
environment: {
|
|
2783
|
-
addEnvironment: "환경 추가",
|
|
2784
3502
|
setUpProduction: "프로덕션 환경 설정",
|
|
2785
3503
|
addDevelopment: "개발 환경 추가",
|
|
3504
|
+
developmentLocked: "개발 환경 · {{tier}}",
|
|
2786
3505
|
// Plan/capacity dialog (EnvironmentEntitlementDialog) — cloud#959.
|
|
2787
3506
|
entitlement: {
|
|
2788
3507
|
productionLimitTitle: "이미 프로덕션 환경이 있습니다",
|
|
@@ -2830,7 +3549,7 @@ const ko = {
|
|
|
2830
3549
|
},
|
|
2831
3550
|
unbound: {
|
|
2832
3551
|
title: "연결되지 않음",
|
|
2833
|
-
body: "이
|
|
3552
|
+
body: "이 런타임은 컨트롤 플레인에 연결되어 있지 않습니다. '연결'을 누르면 새 창에서 클라우드 계정이 열리고, 한 번의 클릭으로 연결을 승인할 수 있습니다. 이 페이지에 ID나 자격 증명을 입력할 필요가 없습니다.",
|
|
2834
3553
|
connect: "연결",
|
|
2835
3554
|
},
|
|
2836
3555
|
},
|
|
@@ -2843,10 +3562,17 @@ const ko = {
|
|
|
2843
3562
|
dismiss: "닫기",
|
|
2844
3563
|
confirmedToast: "\"{{set}}\"이(가) 이제 {{anchor}}에 부여되었습니다.",
|
|
2845
3564
|
dismissedToast: "\"{{set}}\" 제안을 닫았습니다.",
|
|
3565
|
+
guestUnsupported: "여기서는 부여할 수 없습니다. Guest 위치의 세트는 승인된 제안에서 파생되지 않습니다.",
|
|
3566
|
+
acceptedState: "\"{{set}}\"이(가) 로그인한 모든 사용자(Everyone 위치)에 대해 승인되었습니다.",
|
|
3567
|
+
notInForceState: "\"{{set}}\"이(가) 승인되었지만 아직 적용되지 않았습니다. 이 요청으로 Everyone 위치가 변경되지 않았습니다. 이유는 서버 로그에 기록되어 있습니다.",
|
|
3568
|
+
dismissedState: "\"{{set}}\"은(는) 부여되지 않았습니다. 제안이 닫혔거나 취소되었습니다.",
|
|
3569
|
+
revoke: "취소",
|
|
3570
|
+
revoking: "취소하는 중…",
|
|
3571
|
+
revokedToast: "\"{{set}}\" 승인을 취소했습니다.",
|
|
2846
3572
|
},
|
|
2847
3573
|
title: "앱 마켓플레이스",
|
|
2848
3574
|
subtitle: "ObjectStack 카탈로그에 게시된 승인된 앱을 탐색하세요. 앱을 클릭하여 세부 정보를 보고 환경 중 하나에 설치하세요.",
|
|
2849
|
-
searchPlaceholder:
|
|
3575
|
+
searchPlaceholder: '이름 또는 앱 ID로 앱 검색…',
|
|
2850
3576
|
searchAria: "마켓플레이스 앱 검색",
|
|
2851
3577
|
installed: "설치됨",
|
|
2852
3578
|
installedCount: "설치됨 ({{count}})",
|
|
@@ -2856,21 +3582,26 @@ const ko = {
|
|
|
2856
3582
|
noMatchFilters: "필터와 일치하는 앱이 없습니다.",
|
|
2857
3583
|
noDescription: "사용 가능한 설명이 없습니다.",
|
|
2858
3584
|
back: "마켓플레이스로 돌아가기",
|
|
2859
|
-
installedTitle: "설치된 앱",
|
|
2860
|
-
installedSubtitle: "이 런타임의 커널에 현재 설치된 마켓플레이스 패키지.",
|
|
2861
|
-
installedEmpty: "아직 이 런타임에 마켓플레이스 앱이 설치되지 않았습니다.",
|
|
2862
3585
|
browseLink: "마켓플레이스 탐색 →",
|
|
2863
|
-
installedAdditiveNote: "
|
|
2864
|
-
installedAt: "{{when}} 설치됨",
|
|
2865
|
-
installedBy: "{{user}}에 의해",
|
|
2866
|
-
installedPackageId: "패키지",
|
|
2867
|
-
cachedAs: "<code>{{path}}</code>로 캐시됨",
|
|
3586
|
+
installedAdditiveNote: "제거하면 앱이 실행 중인 커널에서 즉시 제거되며, 앱의 권한 세트와 그 부여 내역도 함께 제거됩니다. 캐시된 매니페스트도 삭제되므로 다음 시작 시 패키지가 로드되지 않습니다. 앱의 객체에 저장된 레코드는 데이터베이스에 남습니다.",
|
|
2868
3587
|
versionBadge: "v{{version}}",
|
|
2869
3588
|
installedBadge: "v{{version}} 설치됨",
|
|
3589
|
+
// objectui#11645 — an install-local entry this runtime refused to load at
|
|
3590
|
+
// startup (the listing's `notLoaded` marker), read on Installed Apps.
|
|
3591
|
+
notLoaded: {
|
|
3592
|
+
badge: "로드되지 않음",
|
|
3593
|
+
protocolIncompatible: "이 런타임은 이 패키지를 로드하지 않았습니다. 이 패키지는 프로토콜 {{requiredRange}}을(를) 대상으로 하지만 이 런타임은 해당 프로토콜을 지원하지 않습니다.",
|
|
3594
|
+
otherReason: "이 런타임은 이 패키지를 로드하지 않았습니다({{code}}).",
|
|
3595
|
+
},
|
|
2870
3596
|
load: {
|
|
2871
3597
|
failed: "마켓플레이스를 로드할 수 없습니다",
|
|
2872
3598
|
failedHintConfigured: "이 런타임은 {{url}} 의 컨트롤 플레인을 통해 마켓플레이스에 접속합니다. 해당 주소가 온라인이고 여기에서 접근 가능한지 확인하세요.",
|
|
2873
|
-
failedHintSameOrigin: "이 런타임이
|
|
3599
|
+
failedHintSameOrigin: "마켓플레이스 카탈로그는 이 런타임을 통해 접근합니다. 런타임이 온라인이고 카탈로그에 접근할 수 있는지 확인하세요.",
|
|
3600
|
+
loading: "마켓플레이스 카탈로그를 불러오는 중…",
|
|
3601
|
+
slow: "아직 불러오는 중입니다 — 마켓플레이스 카탈로그의 응답이 느립니다.",
|
|
3602
|
+
retry: "다시 시도",
|
|
3603
|
+
unreachable: "마켓플레이스 카탈로그에 연결할 수 없습니다.",
|
|
3604
|
+
answeredError: "마켓플레이스 카탈로그가 오류로 응답했습니다(HTTP {{status}}).",
|
|
2874
3605
|
packageFailed: "패키지를 로드할 수 없습니다",
|
|
2875
3606
|
notFound: "찾을 수 없습니다.",
|
|
2876
3607
|
},
|
|
@@ -2894,10 +3625,15 @@ const ko = {
|
|
|
2894
3625
|
purgeSampleData: '샘플 데이터 삭제',
|
|
2895
3626
|
purgeConfirm: '이 패키지가 생성한 모든 샘플 레코드를 삭제하시겠습니까? 사용자가 추가한 레코드는 삭제되지 않습니다.',
|
|
2896
3627
|
purgeSuccess: '샘플 레코드 {{count}}개를 삭제했습니다.',
|
|
3628
|
+
purgeSuccess_one: '샘플 레코드 {{count}}개를 삭제했습니다.',
|
|
3629
|
+
purgeSuccess_other: '샘플 레코드 {{count}}개를 삭제했습니다.',
|
|
2897
3630
|
purgeNoData: '삭제할 샘플 레코드가 없습니다.',
|
|
2898
3631
|
reseedQueued: '샘플 데이터는 다음 환경 접속 시 다시 적재됩니다.',
|
|
2899
3632
|
reseedLocalSuccess: '샘플 데이터를 다시 적재했습니다: {{inserted}}개 추가, {{updated}}개 업데이트.',
|
|
2900
3633
|
reseedPartialErrors: '({{count}}개 레코드 쓰기 실패)',
|
|
3634
|
+
reseedPartialErrors_one: '({{count}}개 레코드 쓰기 실패)',
|
|
3635
|
+
reseedPartialErrors_other: '({{count}}개 레코드 쓰기 실패)',
|
|
3636
|
+
sampleDataKernelUnavailable: '이 컨트롤 플레인에는 환경 커널이 없어 여기서는 샘플 데이터를 다시 적재하거나 삭제할 수 없습니다. 해당 환경 자체의 런타임에서 실행하세요.',
|
|
2901
3637
|
updateAvailable: '업데이트 가능',
|
|
2902
3638
|
},
|
|
2903
3639
|
action: {
|
|
@@ -2907,6 +3643,7 @@ const ko = {
|
|
|
2907
3643
|
working: "처리 중…",
|
|
2908
3644
|
installToCloud: "클라우드에 설치…",
|
|
2909
3645
|
installing: "설치 중…",
|
|
3646
|
+
updating: "업데이트 중…",
|
|
2910
3647
|
uninstall: "제거",
|
|
2911
3648
|
uninstalling: "제거 중…",
|
|
2912
3649
|
details: "세부 정보",
|
|
@@ -2924,15 +3661,45 @@ const ko = {
|
|
|
2924
3661
|
environmentPlaceholder: "환경 선택",
|
|
2925
3662
|
includeSampleData: "샘플 데이터 포함",
|
|
2926
3663
|
noEnvs: "활성 조직에서 환경을 찾을 수 없습니다.",
|
|
2927
|
-
noPermission: "환경에 앱을 설치할 권한이 없습니다. 조직 소유자 및 관리자만 설치할 수
|
|
3664
|
+
noPermission: "환경에 앱을 설치할 권한이 없습니다. 조직 소유자 및 관리자만 설치할 수 있습니다 — 조직 관리자에게 문의하세요.",
|
|
2928
3665
|
signInFirst: "먼저 ObjectStack Cloud에 로그인해야 합니다.",
|
|
2929
3666
|
success: "설치 성공. 환경을 열어 새 앱을 확인하세요.",
|
|
2930
3667
|
localSuccess: "이 런타임에 v{{version}} 설치됨. \"{{name}}\"이(가) 이제 앱 전환기에 표시됩니다.",
|
|
3668
|
+
localLoadsAtRestart: "이 런타임에 v{{version}} 설치됨. \"{{name}}\"은(는) 런타임이 다음에 다시 시작될 때 로드되며, 그때까지는 앱 전환기에 표시되지 않습니다.",
|
|
2931
3669
|
localManifestConflict: "{{message}}\n참고: 로컬 앱이 이미 이 manifest_id를 가지고 있습니다. 먼저 objectstack.config.ts에서 제거하세요.",
|
|
2932
3670
|
localUnauthorized: "먼저 이 런타임에 로그인하세요.",
|
|
2933
3671
|
localMarketplaceUnavailable: "이 런타임에 OS_CLOUD_URL이 구성되지 않았습니다.",
|
|
2934
3672
|
updateTo: "업데이트 → v{{version}}",
|
|
2935
3673
|
installedVersion: "v{{version}} 설치됨",
|
|
3674
|
+
deploying: "앱을 배포하는 중…",
|
|
3675
|
+
deployed: "앱이 배포되어 사용할 준비가 되었습니다.",
|
|
3676
|
+
openApp: "{{name}} 열기",
|
|
3677
|
+
deployTimeout: "설치는 기록되었지만 이 환경에서 아직 앱을 제공하지 않습니다. 아직 배포 중일 수 있으니 잠시 후 다시 확인하세요. 계속 나타나지 않으면 패키지가 로드되지 않았거나, 앱이 포함되어 있지 않거나, 앱에 사용자에게 없는 권한이 필요할 수 있습니다.",
|
|
3678
|
+
checkAgain: "다시 확인",
|
|
3679
|
+
// ADR-0131 D6 — the install modes a package's manifest permits, and
|
|
3680
|
+
// what an unmanaged install answers (MarketplacePackagePage).
|
|
3681
|
+
mode: {
|
|
3682
|
+
label: "설치 방식",
|
|
3683
|
+
managed: "관리형",
|
|
3684
|
+
managedHint: "패키지가 계속 원본으로 남습니다. 코드로 등록되고 업그레이드를 받으며, 항목은 여기에서 편집하지 않습니다.",
|
|
3685
|
+
unmanaged: "비관리형 사본",
|
|
3686
|
+
unmanagedHint: "이 런타임의 자체 메타데이터로 한 번 복사됩니다. 모든 항목을 여기에서 편집할 수 있으며, 사본은 업그레이드를 받지 않습니다.",
|
|
3687
|
+
required: "이 패키지를 설치하려면 설치 방식을 선택하세요.",
|
|
3688
|
+
},
|
|
3689
|
+
unmanagedSuccess: "\"{{name}}\" v{{version}}을(를) 이 런타임의 자체 메타데이터로 베이스 {{base}}에 복사했습니다. 사본은 편집할 수 있으며 업그레이드를 받지 않습니다.",
|
|
3690
|
+
unmanagedStrippedLocks: "패키지가 이 항목들을 잠갔습니다. 사본은 편집할 수 있으므로 잠금은 복사되지 않았습니다:",
|
|
3691
|
+
unmanagedIgnored: "이 런타임은 비관리형 설치를 지원하지 않으므로 \"{{name}}\"이(가) 복사되지 않고 관리형(코드로 등록)으로 설치되었습니다. 런타임을 업그레이드한 다음 패키지를 제거하고 비관리형 사본으로 다시 설치하세요.",
|
|
3692
|
+
},
|
|
3693
|
+
// objectui#12146 — the install dialog opened as an UPDATE of the copy
|
|
3694
|
+
// this environment holds (MarketplacePackagePage).
|
|
3695
|
+
update: {
|
|
3696
|
+
dialogTitle: "{{name}} 업데이트",
|
|
3697
|
+
dialogDescCurrent: "이 환경({{host}})에 설치된 앱을 업데이트합니다.",
|
|
3698
|
+
dialogDescPicker: "설치된 앱을 업데이트할 환경을 선택하세요. ObjectStack Cloud에 로그인되어 있어야 합니다.",
|
|
3699
|
+
majorNotice: "메이저 버전 업데이트입니다(v{{fromMajor}} → v{{toMajor}}). 호환되지 않는 변경이 포함될 수 있습니다.",
|
|
3700
|
+
releaseNotes: "v{{version}} 릴리스 노트 읽기",
|
|
3701
|
+
success: "v{{version}}(으)로 업데이트했습니다.",
|
|
3702
|
+
deployTimeout: "업데이트는 기록되었지만 이 환경에서 아직 v{{version}}을(를) 제공하지 않습니다. 아직 배포 중일 수 있으니 잠시 후 다시 확인하세요.",
|
|
2936
3703
|
},
|
|
2937
3704
|
// objectui#3546 — the MarketplacePage "Your organization" strip.
|
|
2938
3705
|
org: {
|
|
@@ -2950,7 +3717,8 @@ const ko = {
|
|
|
2950
3717
|
reviewed: "검토 및 승인됨",
|
|
2951
3718
|
unreviewed: "아직 검토되지 않음",
|
|
2952
3719
|
signed: "서명됨",
|
|
2953
|
-
grantsIntro: "
|
|
3720
|
+
grantsIntro: "이 패키지가 요청하는 권한:",
|
|
3721
|
+
notEnforced: "이 목록은 설치 시 기록되며 이후 버전이 더 많은 권한을 요청하면 다시 확인합니다. 다만 런타임은 아직 패키지를 이 목록으로 제한하지 않습니다.",
|
|
2954
3722
|
services: "플랫폼 서비스",
|
|
2955
3723
|
hooks: "라이프사이클 후크",
|
|
2956
3724
|
network: "네트워크 액세스",
|
|
@@ -2964,9 +3732,11 @@ const ko = {
|
|
|
2964
3732
|
},
|
|
2965
3733
|
},
|
|
2966
3734
|
uninstall: {
|
|
2967
|
-
confirm: "이 런타임에서 {{manifestId}} v{{version}}을(를) 제거하시겠습니까?\n\n캐시된
|
|
2968
|
-
successInList: "{{manifestId}} 제거됨.
|
|
2969
|
-
successInDetail: "{{manifestId}}
|
|
3735
|
+
confirm: "이 런타임에서 {{manifestId}} v{{version}}을(를) 제거하시겠습니까?\n\n앱이 실행 중인 커널에서 즉시 제거되며, 앱의 권한 세트와 그 부여 내역도 함께 제거됩니다. 캐시된 매니페스트도 삭제됩니다. 앱의 객체에 저장된 레코드는 데이터베이스에 남습니다.",
|
|
3736
|
+
successInList: "{{manifestId}} 제거됨. 앱이 실행 중인 커널에서 제거되었으며, 권한 세트와 그 부여 내역도 함께 제거되었습니다. 앱의 객체에 저장된 레코드는 데이터베이스에 남습니다.",
|
|
3737
|
+
successInDetail: "{{manifestId}} 및 캐시된 매니페스트 제거됨. 앱이 실행 중인 커널에서 제거되었으며, 권한 세트와 그 부여 내역도 함께 제거되었습니다. 앱의 객체에 저장된 레코드는 데이터베이스에 남습니다.",
|
|
3738
|
+
confirmNotLoaded: "이 런타임에서 {{manifestId}} v{{version}}을(를) 제거하시겠습니까?\n\n캐시된 매니페스트가 삭제됩니다. 이 런타임은 이 패키지를 로드하지 않았으므로 실행 중인 부분이 없습니다.",
|
|
3739
|
+
successNotLoaded: "{{manifestId}} 제거됨. 로드되지 않았으므로 재시작할 필요가 없습니다.",
|
|
2970
3740
|
},
|
|
2971
3741
|
accessDenied: {
|
|
2972
3742
|
title: "관리자 전용 앱 마켓플레이스",
|
|
@@ -2989,32 +3759,21 @@ const ko = {
|
|
|
2989
3759
|
storage: "스토리지",
|
|
2990
3760
|
other: "기타",
|
|
2991
3761
|
},
|
|
2992
|
-
pricing: {
|
|
2993
|
-
free: "무료",
|
|
2994
|
-
freemium: "프리미엄",
|
|
2995
|
-
paid: "유료",
|
|
2996
|
-
subscription: "구독",
|
|
2997
|
-
"usage-based": "사용량 기반",
|
|
2998
|
-
"contact-sales": "영업팀 문의",
|
|
2999
|
-
},
|
|
3000
3762
|
relativeTime: {
|
|
3001
3763
|
today: "오늘",
|
|
3002
3764
|
daysAgo: "{{count}}일 전",
|
|
3003
3765
|
monthsAgo: "{{count}}개월 전",
|
|
3766
|
+
monthsAgo_one: "{{count}}개월 전",
|
|
3767
|
+
monthsAgo_other: "{{count}}개월 전",
|
|
3004
3768
|
yearsAgo: "{{count}}년 전",
|
|
3769
|
+
yearsAgo_one: "{{count}}년 전",
|
|
3770
|
+
yearsAgo_other: "{{count}}년 전",
|
|
3005
3771
|
},
|
|
3006
3772
|
},
|
|
3007
|
-
approvals: {
|
|
3008
|
-
approve: '승인',
|
|
3009
|
-
reject: '반려',
|
|
3010
|
-
comment: '의견(선택 사항)',
|
|
3011
|
-
approveSuccess: '승인됨',
|
|
3012
|
-
rejectSuccess: '반려됨',
|
|
3013
|
-
rejectConfirm: '이 승인 요청을 반려하시겠습니까?',
|
|
3014
|
-
},
|
|
3015
3773
|
approvalsInbox: {
|
|
3774
|
+
recordUnresolvable: '이 레코드를 열 수 없습니다',
|
|
3016
3775
|
loadMore: '더 보기',
|
|
3017
|
-
loadingMore: '
|
|
3776
|
+
loadingMore: '로딩 중…',
|
|
3018
3777
|
loadedOf: '{{total}}개 중 {{loaded}}개 로드됨',
|
|
3019
3778
|
actEscalate: 'SLA 에스컬레이션',
|
|
3020
3779
|
systemSlaActor: '시스템(SLA)',
|
|
@@ -3031,6 +3790,8 @@ const ko = {
|
|
|
3031
3790
|
requestInfoSent: '추가 정보 요청을 보냈습니다',
|
|
3032
3791
|
remindBtn: '독촉',
|
|
3033
3792
|
remindSuccess: '승인자 {{count}}명에게 알렸습니다',
|
|
3793
|
+
remindSuccess_one: '승인자 {{count}}명에게 알렸습니다',
|
|
3794
|
+
remindSuccess_other: '승인자 {{count}}명에게 알렸습니다',
|
|
3034
3795
|
remindThrottled: '최근에 이미 독촉했습니다. 잠시 후 다시 시도하세요.',
|
|
3035
3796
|
replyPlaceholder: '이 요청에 답하기…',
|
|
3036
3797
|
slaRemaining: 'SLA {{dur}} 남음',
|
|
@@ -3047,8 +3808,11 @@ const ko = {
|
|
|
3047
3808
|
progressApprovals: '승인 — {{got}} / {{need}}',
|
|
3048
3809
|
progressGroups: '그룹 승인 — {{got}} / {{need}} 그룹',
|
|
3049
3810
|
progressEligible: '승인 가능자 {{count}}명',
|
|
3811
|
+
progressEligible_one: '승인 가능자 {{count}}명',
|
|
3812
|
+
progressEligible_other: '승인 가능자 {{count}}명',
|
|
3050
3813
|
progressBar: '결정 진행 상황',
|
|
3051
3814
|
declaredActions: '작업',
|
|
3815
|
+
decisionPanelOffRequestPage: '승인 결정 패널은 승인 요청 페이지에서만 작동합니다.',
|
|
3052
3816
|
attachmentChip: '첨부 파일',
|
|
3053
3817
|
attachmentOpenFailed: '첨부 파일을 열 수 없습니다. 다시 시도해 주세요',
|
|
3054
3818
|
approveOneTitle: '"{{title}}"을(를) 승인할까요?',
|
|
@@ -3078,6 +3842,8 @@ const ko = {
|
|
|
3078
3842
|
filterCount: '{{total}}개 중 {{shown}}개',
|
|
3079
3843
|
selected: '선택됨',
|
|
3080
3844
|
actionableCount: '({{count}}개 처리 가능)',
|
|
3845
|
+
actionableCount_one: '({{count}}개 처리 가능)',
|
|
3846
|
+
actionableCount_other: '({{count}}개 처리 가능)',
|
|
3081
3847
|
selectAll: '전체 선택',
|
|
3082
3848
|
selectRow: '이 요청 선택',
|
|
3083
3849
|
colRequest: '승인 항목',
|
|
@@ -3112,6 +3878,9 @@ const ko = {
|
|
|
3112
3878
|
emptyPending: '모두 처리했습니다. 승인 대기 항목이 없습니다.',
|
|
3113
3879
|
emptyOther: '아직 아무것도 없습니다.',
|
|
3114
3880
|
emptyViewAll: '전체 요청 보기',
|
|
3881
|
+
waitingOnOthers: "{{count}}건의 요청이 다른 승인자를 기다리고 있습니다",
|
|
3882
|
+
waitingOnOthers_one: "{{count}}건의 요청이 다른 승인자를 기다리고 있습니다",
|
|
3883
|
+
waitingOnOthers_other: "{{count}}건의 요청이 다른 승인자를 기다리고 있습니다",
|
|
3115
3884
|
noMatches: '현재 필터와 일치하는 항목이 없습니다.',
|
|
3116
3885
|
keyboardHint: '단축키: j/k 이동 · Enter 열기 · x 선택 · a 승인 · r 거부',
|
|
3117
3886
|
drawerTitle: '승인 요청',
|
|
@@ -3129,12 +3898,12 @@ const ko = {
|
|
|
3129
3898
|
overrideActionLabel: '{{action}}(관리자 권한)',
|
|
3130
3899
|
overrideNotice: '이 단계의 승인자 자리가 없습니다. 계속하면 관리자 재정의가 사용되어 단계가 즉시 확정되고, 아직 처리하지 않은 승인자는 모두 건너뜁니다. 이 결정은 관리자 재정의로 기록됩니다.',
|
|
3131
3900
|
overrideNoticeWho: '이 단계의 승인자 자리가 없습니다. 계속하면 관리자 재정의가 사용되어 단계가 즉시 확정되고, 아직 처리하지 않은 승인자 — {{who}} — 를 건너뜁니다. 이 결정은 관리자 재정의로 기록됩니다.',
|
|
3901
|
+
overrideReassignNotice: '이 단계의 승인자 자리가 없습니다. 계속하면 관리자 재정의가 사용되어 단계가 선택한 새 승인자에게 재할당되고, 아직 처리하지 않은 승인자는 모두 교체됩니다. 요청은 대기 상태로 유지되며 새 승인자의 처리를 기다립니다. 이 재할당은 관리자 재정의로 기록됩니다.',
|
|
3902
|
+
overrideReassignNoticeWho: '이 단계의 승인자 자리가 없습니다. 계속하면 관리자 재정의가 사용되어 단계가 선택한 새 승인자에게 재할당되고, 아직 처리하지 않은 승인자 — {{who}} — 는 교체됩니다. 요청은 대기 상태로 유지되며 새 승인자의 처리를 기다립니다. 이 재할당은 관리자 재정의로 기록됩니다.',
|
|
3903
|
+
overrideRecallNotice: '내가 제출한 요청이 아닙니다. 계속하면 관리자 재정의가 사용되어 요청이 회수되고, 아직 처리하지 않은 승인자는 모두 더 이상 처리할 수 없으며, 레코드 잠금이 해제됩니다.',
|
|
3904
|
+
overrideRecallNoticeWho: '내가 제출한 요청이 아닙니다. 계속하면 관리자 재정의가 사용되어 요청이 회수되고 레코드 잠금이 해제되며, 아직 처리하지 않은 승인자 — {{who}} — 는 더 이상 처리할 수 없습니다.',
|
|
3132
3905
|
viaOverrideChip: '관리자 재정의',
|
|
3133
3906
|
viaOverrideHint: '실행자는 이 단계의 승인자 자리가 없으며 관리자 재정의 경로로 처리했습니다.',
|
|
3134
|
-
rawData: '원본 데이터(JSON)',
|
|
3135
|
-
copy: '복사',
|
|
3136
|
-
copied: '복사됨',
|
|
3137
|
-
copyFailed: '복사 실패',
|
|
3138
3907
|
overrideActor: '다른 ID로 작업(관리자)',
|
|
3139
3908
|
actor: '작업 ID',
|
|
3140
3909
|
auto: '자동',
|
|
@@ -3151,11 +3920,19 @@ const ko = {
|
|
|
3151
3920
|
approveN: '{{count}}개 승인',
|
|
3152
3921
|
rejectN: '{{count}}개 거부',
|
|
3153
3922
|
bulkApproveTitle: '{{count}}개 요청을 승인할까요?',
|
|
3923
|
+
bulkApproveTitle_one: '{{count}}개 요청을 승인할까요?',
|
|
3924
|
+
bulkApproveTitle_other: '{{count}}개 요청을 승인할까요?',
|
|
3154
3925
|
bulkApproveBody: '각 요청은 내 ID로 승인되며 해당 플로우는 승인 분기로 진행됩니다.',
|
|
3155
3926
|
bulkRejectTitle: '{{count}}개 요청을 거부할까요?',
|
|
3927
|
+
bulkRejectTitle_one: '{{count}}개 요청을 거부할까요?',
|
|
3928
|
+
bulkRejectTitle_other: '{{count}}개 요청을 거부할까요?',
|
|
3156
3929
|
bulkRejectBody: '선택한 요청을 거부하고 신청자에게 알립니다.',
|
|
3157
3930
|
bulkApproved: '{{count}}개 요청을 승인했습니다',
|
|
3931
|
+
bulkApproved_one: '{{count}}개 요청을 승인했습니다',
|
|
3932
|
+
bulkApproved_other: '{{count}}개 요청을 승인했습니다',
|
|
3158
3933
|
bulkRejected: '{{count}}개 요청을 거부했습니다',
|
|
3934
|
+
bulkRejected_one: '{{count}}개 요청을 거부했습니다',
|
|
3935
|
+
bulkRejected_other: '{{count}}개 요청을 거부했습니다',
|
|
3159
3936
|
bulkPartial: '{{ok}}개 성공, {{fail}}개 실패: {{which}}',
|
|
3160
3937
|
rejectOneTitle: '"{{title}}"을(를) 거부할까요?',
|
|
3161
3938
|
rejectOneBody: '요청을 거부하고 신청자에게 알립니다.',
|
|
@@ -3180,8 +3957,14 @@ const ko = {
|
|
|
3180
3957
|
alreadyDecided: '이미 처리된 요청입니다. 목록을 새로고침하세요.',
|
|
3181
3958
|
justNow: '방금 전',
|
|
3182
3959
|
minutesAgo: '{{count}}분 전',
|
|
3960
|
+
minutesAgo_one: '{{count}}분 전',
|
|
3961
|
+
minutesAgo_other: '{{count}}분 전',
|
|
3183
3962
|
hoursAgo: '{{count}}시간 전',
|
|
3963
|
+
hoursAgo_one: '{{count}}시간 전',
|
|
3964
|
+
hoursAgo_other: '{{count}}시간 전',
|
|
3184
3965
|
daysAgo: '{{count}}일 전',
|
|
3966
|
+
daysAgo_one: '{{count}}일 전',
|
|
3967
|
+
daysAgo_other: '{{count}}일 전',
|
|
3185
3968
|
},
|
|
3186
3969
|
preview: {
|
|
3187
3970
|
empty: {
|
|
@@ -3202,6 +3985,9 @@ const ko = {
|
|
|
3202
3985
|
publishing: '게시 중…',
|
|
3203
3986
|
exit: '미리보기 종료',
|
|
3204
3987
|
changes: '변경 사항',
|
|
3988
|
+
pendingHere: '초안 미리보기 · 이 페이지의 게시되지 않은 변경 {{count}}개',
|
|
3989
|
+
pendingHere_one: '초안 미리보기 · 이 페이지의 게시되지 않은 변경 {{count}}개',
|
|
3990
|
+
pendingHere_other: '초안 미리보기 · 이 페이지의 게시되지 않은 변경 {{count}}개',
|
|
3205
3991
|
},
|
|
3206
3992
|
changes: {
|
|
3207
3993
|
title: '대기 중인 변경 사항',
|
|
@@ -3216,11 +4002,65 @@ const ko = {
|
|
|
3216
4002
|
detailNone: '차이가 감지되지 않았습니다 — 초안이 게시된 버전과 일치합니다.',
|
|
3217
4003
|
detailChangedKeys: '기타 변경:',
|
|
3218
4004
|
confirmNote: '게시하면 이 패키지의 대기 중인 초안 {{count}}개가 한 번에(원자적으로) 게시됩니다.',
|
|
4005
|
+
confirmNote_one: '게시하면 이 패키지의 대기 중인 초안 {{count}}개가 한 번에(원자적으로) 게시됩니다.',
|
|
4006
|
+
confirmNote_other: '게시하면 이 패키지의 대기 중인 초안 {{count}}개가 한 번에(원자적으로) 게시됩니다.',
|
|
4007
|
+
// objectui#11591 — the package-less sheet: no package to batch, so each
|
|
4008
|
+
// draft publishes by itself and one that fails stays pending.
|
|
4009
|
+
confirmNoteSeparate: '게시하면 대기 중인 초안 {{count}}개가 하나씩 따로 게시됩니다. 게시에 실패한 초안은 대기 상태로 남고, 나머지는 그대로 게시됩니다.',
|
|
4010
|
+
confirmNoteSeparate_one: '게시하면 대기 중인 초안 {{count}}개가 하나씩 따로 게시됩니다. 게시에 실패한 초안은 대기 상태로 남고, 나머지는 그대로 게시됩니다.',
|
|
4011
|
+
confirmNoteSeparate_other: '게시하면 대기 중인 초안 {{count}}개가 하나씩 따로 게시됩니다. 게시에 실패한 초안은 대기 상태로 남고, 나머지는 그대로 게시됩니다.',
|
|
3219
4012
|
publishConfirm: '모두 게시',
|
|
3220
|
-
|
|
4013
|
+
summaryItems: '{{count}}개 항목',
|
|
4014
|
+
summaryItems_one: '{{count}}개 항목',
|
|
4015
|
+
summaryItems_other: '{{count}}개 항목',
|
|
4016
|
+
summaryType: '{{type}} {{n}}',
|
|
4017
|
+
typeCount: {
|
|
4018
|
+
object: '객체 {{count}}',
|
|
4019
|
+
object_one: '객체 {{count}}',
|
|
4020
|
+
object_other: '객체 {{count}}',
|
|
4021
|
+
view: '뷰 {{count}}',
|
|
4022
|
+
view_one: '뷰 {{count}}',
|
|
4023
|
+
view_other: '뷰 {{count}}',
|
|
4024
|
+
page: '페이지 {{count}}',
|
|
4025
|
+
page_one: '페이지 {{count}}',
|
|
4026
|
+
page_other: '페이지 {{count}}',
|
|
4027
|
+
dashboard: '대시보드 {{count}}',
|
|
4028
|
+
dashboard_one: '대시보드 {{count}}',
|
|
4029
|
+
dashboard_other: '대시보드 {{count}}',
|
|
4030
|
+
app: '앱 {{count}}',
|
|
4031
|
+
app_one: '앱 {{count}}',
|
|
4032
|
+
app_other: '앱 {{count}}',
|
|
4033
|
+
action: '작업 {{count}}',
|
|
4034
|
+
action_one: '작업 {{count}}',
|
|
4035
|
+
action_other: '작업 {{count}}',
|
|
4036
|
+
report: '보고서 {{count}}',
|
|
4037
|
+
report_one: '보고서 {{count}}',
|
|
4038
|
+
report_other: '보고서 {{count}}',
|
|
4039
|
+
flow: '플로우 {{count}}',
|
|
4040
|
+
flow_one: '플로우 {{count}}',
|
|
4041
|
+
flow_other: '플로우 {{count}}',
|
|
4042
|
+
permission: '권한 세트 {{count}}',
|
|
4043
|
+
permission_one: '권한 세트 {{count}}',
|
|
4044
|
+
permission_other: '권한 세트 {{count}}',
|
|
4045
|
+
agent: '에이전트 {{count}}',
|
|
4046
|
+
agent_one: '에이전트 {{count}}',
|
|
4047
|
+
agent_other: '에이전트 {{count}}',
|
|
4048
|
+
email_template: '이메일 템플릿 {{count}}',
|
|
4049
|
+
email_template_one: '이메일 템플릿 {{count}}',
|
|
4050
|
+
email_template_other: '이메일 템플릿 {{count}}',
|
|
4051
|
+
},
|
|
4052
|
+
// objectui#12929 — the unchecked choice under an added object field whose
|
|
4053
|
+
// literal default the batch publish can write into the existing records.
|
|
4054
|
+
backfillOption: '기본값 채우기(기존 레코드 {{count}}개)',
|
|
4055
|
+
backfillOption_one: '기본값 채우기(기존 레코드 {{count}}개)',
|
|
4056
|
+
backfillOption_other: '기본값 채우기(기존 레코드 {{count}}개)',
|
|
4057
|
+
backfillOptionNoCount: '기본값 채우기',
|
|
4058
|
+
// [`7a90afdf9`] Pre-publish security-posture findings, shown next to
|
|
3221
4059
|
// the confirm button so a refusal the door would issue is read BEFORE
|
|
3222
4060
|
// the click rather than as a toast after the batch rolled back.
|
|
3223
4061
|
securityBlockTitle: '게시가 거부됩니다 — {{count}}개 항목에 먼저 결정이 필요합니다',
|
|
4062
|
+
securityBlockTitle_one: '게시가 거부됩니다 — {{count}}개 항목에 먼저 결정이 필요합니다',
|
|
4063
|
+
securityBlockTitle_other: '게시가 거부됩니다 — {{count}}개 항목에 먼저 결정이 필요합니다',
|
|
3224
4064
|
securityBlockWhere: '객체의 설정 → 레코드 공유에서 수정한 후 다시 게시하세요.',
|
|
3225
4065
|
},
|
|
3226
4066
|
// ADR-0045 — the materialized-but-unlisted app banner
|
|
@@ -3245,7 +4085,7 @@ const ko = {
|
|
|
3245
4085
|
revertLabel: '변경을 되돌렸습니다',
|
|
3246
4086
|
applyLabel: '빌드 변경',
|
|
3247
4087
|
revert: '되돌림',
|
|
3248
|
-
items: '항목',
|
|
4088
|
+
items: '{{count}} 항목',
|
|
3249
4089
|
revertAction: '되돌리기',
|
|
3250
4090
|
reverted: '되돌렸습니다 — 변경이 취소되었습니다.',
|
|
3251
4091
|
revertFailed: '되돌리기 실패',
|
|
@@ -3274,28 +4114,32 @@ const ko = {
|
|
|
3274
4114
|
rangeEnd: "끝",
|
|
3275
4115
|
operators: {
|
|
3276
4116
|
equals: "같음",
|
|
3277
|
-
|
|
4117
|
+
not_equals: "같지 않음",
|
|
3278
4118
|
contains: "포함",
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
4119
|
+
icontains: "포함 (대소문자 무시)",
|
|
4120
|
+
not_contains: "포함하지 않음",
|
|
4121
|
+
is_empty: "비어 있음",
|
|
4122
|
+
is_not_empty: "비어 있지 않음",
|
|
4123
|
+
greater_than: "보다 큼",
|
|
4124
|
+
less_than: "보다 작음",
|
|
4125
|
+
greater_than_or_equal: "크거나 같음",
|
|
4126
|
+
less_than_or_equal: "작거나 같음",
|
|
3287
4127
|
before: "이전",
|
|
3288
4128
|
after: "이후",
|
|
3289
4129
|
between: "사이",
|
|
3290
4130
|
in: "포함됨",
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
4131
|
+
not_in: "포함되지 않음",
|
|
4132
|
+
starts_with: "다음으로 시작",
|
|
4133
|
+
ends_with: "다음으로 끝남",
|
|
4134
|
+
is_null: "null임",
|
|
4135
|
+
is_not_null: "null이 아님",
|
|
3296
4136
|
exists: "설정됨",
|
|
3297
4137
|
notExists: "설정되지 않음",
|
|
3298
4138
|
},
|
|
4139
|
+
emptyCheckHint: {
|
|
4140
|
+
text: '"{{isEmpty}}"은(는) 빈 텍스트도 포함합니다. "{{isNull}}"은(는) 값이 없는 경우만 포함합니다.',
|
|
4141
|
+
list: '"{{isEmpty}}"은(는) 빈 목록도 포함합니다. "{{isNull}}"은(는) 값이 없는 경우만 포함합니다.',
|
|
4142
|
+
},
|
|
3299
4143
|
},
|
|
3300
4144
|
sortBuilder: {
|
|
3301
4145
|
sortBy: "정렬 기준",
|
|
@@ -3308,7 +4152,8 @@ const ko = {
|
|
|
3308
4152
|
},
|
|
3309
4153
|
collaboration: {
|
|
3310
4154
|
commentCount: "댓글 {{count}}개",
|
|
3311
|
-
|
|
4155
|
+
commentCount_one: "댓글 {{count}}개",
|
|
4156
|
+
commentCount_other: "댓글 {{count}}개",
|
|
3312
4157
|
resolvedSuffix: " · 해결됨",
|
|
3313
4158
|
sortComments: "댓글 정렬",
|
|
3314
4159
|
sortOldest: "오래된 순",
|
|
@@ -3317,11 +4162,18 @@ const ko = {
|
|
|
3317
4162
|
reopen: "다시 열기",
|
|
3318
4163
|
justNow: "방금",
|
|
3319
4164
|
minutesAgo: "{{count}}분 전",
|
|
4165
|
+
minutesAgo_one: "{{count}}분 전",
|
|
4166
|
+
minutesAgo_other: "{{count}}분 전",
|
|
3320
4167
|
hoursAgo: "{{count}}시간 전",
|
|
4168
|
+
hoursAgo_one: "{{count}}시간 전",
|
|
4169
|
+
hoursAgo_other: "{{count}}시간 전",
|
|
3321
4170
|
daysAgo: "{{count}}일 전",
|
|
4171
|
+
daysAgo_one: "{{count}}일 전",
|
|
4172
|
+
daysAgo_other: "{{count}}일 전",
|
|
3322
4173
|
edited: "(수정됨)",
|
|
3323
4174
|
reactionCount: "반응 {{count}}개",
|
|
3324
|
-
|
|
4175
|
+
reactionCount_one: "반응 {{count}}개",
|
|
4176
|
+
reactionCount_other: "반응 {{count}}개",
|
|
3325
4177
|
addThumbsUp: "좋아요 추가",
|
|
3326
4178
|
reply: "답글",
|
|
3327
4179
|
reactThumbsUp: "좋아요로 반응",
|
|
@@ -3332,9 +4184,11 @@ const ko = {
|
|
|
3332
4184
|
commentPlaceholder: "댓글 추가…(@로 멘션)",
|
|
3333
4185
|
send: "보내기",
|
|
3334
4186
|
presentUserCount: "{{count}}명 접속 중",
|
|
3335
|
-
|
|
4187
|
+
presentUserCount_one: "{{count}}명 접속 중",
|
|
4188
|
+
presentUserCount_other: "{{count}}명 접속 중",
|
|
3336
4189
|
moreUserCount: "외 {{count}}명",
|
|
3337
|
-
|
|
4190
|
+
moreUserCount_one: "외 {{count}}명",
|
|
4191
|
+
moreUserCount_other: "외 {{count}}명",
|
|
3338
4192
|
userStatusTitle: "{{name}}({{status}})",
|
|
3339
4193
|
statusActive: "활성",
|
|
3340
4194
|
statusIdle: "유휴",
|
|
@@ -3342,6 +4196,11 @@ const ko = {
|
|
|
3342
4196
|
},
|
|
3343
4197
|
wizard: {
|
|
3344
4198
|
missingRequired: "필수 항목을 입력하세요: {{fields}}",
|
|
4199
|
+
back: "뒤로",
|
|
4200
|
+
submitting: "제출 중…",
|
|
4201
|
+
stepFallback: "{{n}}단계",
|
|
4202
|
+
progressLabel: "진행 상황",
|
|
4203
|
+
emptyStep: "이 단계에 구성된 필드가 없습니다",
|
|
3345
4204
|
},
|
|
3346
4205
|
flowRunner: {
|
|
3347
4206
|
title: '입력',
|
|
@@ -3391,6 +4250,8 @@ const ko = {
|
|
|
3391
4250
|
setDefaultFailed: "기본 앱 설정 실패: {{reason}}",
|
|
3392
4251
|
appDeleted: "{{name}}을(를) 삭제했습니다",
|
|
3393
4252
|
deleteFailed: "앱 삭제 실패: {{reason}}",
|
|
4253
|
+
nothingToDelete: "{{name}}에 삭제할 항목이 없습니다: {{reason}}",
|
|
4254
|
+
alreadyAtDefault: "이미 패키지 기본 상태입니다",
|
|
3394
4255
|
bulkEnabled: "앱 {{n}}개를 활성화했습니다",
|
|
3395
4256
|
bulkDisabled: "앱 {{n}}개를 비활성화했습니다",
|
|
3396
4257
|
bulkFailed: "{{n}}개 실패: {{details}}",
|
|
@@ -3399,5 +4260,130 @@ const ko = {
|
|
|
3399
4260
|
bulkOperationFailed: "일괄 작업 실패: {{reason}}",
|
|
3400
4261
|
},
|
|
3401
4262
|
},
|
|
4263
|
+
// objectui#6301 — 설정 › 패키지 자동화 (ADR-0126 §7.4). 용어는 기존 번역을
|
|
4264
|
+
// 따릅니다: `common.package` = 패키지, `flowRunner.completed` = 플로우,
|
|
4265
|
+
// 인용부호는 「」. ⛔ 계보·드리프트를 나타내는 표현은 이 그룹에 두지 않습니다 (§9).
|
|
4266
|
+
packagedAutomation: {
|
|
4267
|
+
title: "패키지 자동화",
|
|
4268
|
+
subtitle: "설치된 패키지가 제공하는 플로우와 액션입니다. 이 배포에서 끌 수 있으며, 플로우는 새 이름으로 복제해 사용자 지정할 수도 있습니다. 편집은 Studio에서 합니다.",
|
|
4269
|
+
refresh: "새로고침",
|
|
4270
|
+
flowsHeading: "패키지 플로우",
|
|
4271
|
+
actionsHeading: "패키지 액션",
|
|
4272
|
+
colFlow: "플로우",
|
|
4273
|
+
colActivation: "활성화 상태",
|
|
4274
|
+
colActions: "작업",
|
|
4275
|
+
toggleLabel: "{{label}}의 활성화 상태",
|
|
4276
|
+
on: "켜짐",
|
|
4277
|
+
off: "꺼짐",
|
|
4278
|
+
notRunning: "여기서 실행되지 않음",
|
|
4279
|
+
clone: "복제",
|
|
4280
|
+
cloneTitle: "패키지 플로우 복제",
|
|
4281
|
+
cloneBody: "사본은 정의 전체를 그대로 가져가며 새 머신 이름과 레이블이 필요합니다. 사본은 Studio에서 편집하세요.",
|
|
4282
|
+
cloneName: "새 머신 이름",
|
|
4283
|
+
cloneLabel: "새 레이블",
|
|
4284
|
+
cancel: "취소",
|
|
4285
|
+
cloneConfirm: "복제본 만들기",
|
|
4286
|
+
cloneCreated: "플로우 「{{name}}」을(를) 만들었습니다.",
|
|
4287
|
+
cloneSwitchSourceOff: "「{{label}}」 끄기",
|
|
4288
|
+
cloneSourceOff: "패키지 플로우 「{{label}}」이(가) 꺼져 있습니다.",
|
|
4289
|
+
cloneOpen: "Studio에서 복사본 열기",
|
|
4290
|
+
emptyTitle: "패키지 플로우 없음",
|
|
4291
|
+
emptyBody: "이 배포에는 자동화 플로우를 제공하는 설치된 패키지가 없습니다. 직접 작성한 플로우는 Studio에 있습니다.",
|
|
4292
|
+
loadFailed: "패키지 자동화를 불러오지 못했습니다.",
|
|
4293
|
+
toggleFailedHttp: "활성화 상태를 변경하지 못했습니다 (HTTP {{status}}).",
|
|
4294
|
+
toggleFailed: "활성화 상태를 변경하지 못했습니다.",
|
|
4295
|
+
cloneFailedHttp: "이 플로우를 복제하지 못했습니다 (HTTP {{status}}).",
|
|
4296
|
+
cloneFailed: "이 플로우를 복제하지 못했습니다.",
|
|
4297
|
+
reasonDetails: "세부 정보",
|
|
4298
|
+
actionsSubtitle: "설치된 패키지가 제공하는 액션입니다. 이 배포에서 끄면 액션이 제공되는 모든 곳에서 실행되지 않습니다. Studio에서 직접 액션을 따로 작성하는 것은 계속 가능합니다.",
|
|
4299
|
+
colAction: "액션",
|
|
4300
|
+
colObject: "오브젝트",
|
|
4301
|
+
actionToggleLabel: "{{object}}의 {{label}} 활성화 상태",
|
|
4302
|
+
actionsEmptyTitle: "패키지 액션 없음",
|
|
4303
|
+
actionsEmptyBody: "이 배포에는 액션을 선언하는 설치된 패키지가 없습니다. 직접 작성한 액션은 Studio에 있습니다.",
|
|
4304
|
+
actionsLoadFailed: "패키지 액션을 불러오지 못했습니다.",
|
|
4305
|
+
},
|
|
4306
|
+
element: {
|
|
4307
|
+
number: {
|
|
4308
|
+
noObject: "개체가 지정되지 않았습니다. dataSource.object를 설정하세요.",
|
|
4309
|
+
sourceUnresolved: "이 지표의 데이터 소스를 확인할 수 없습니다",
|
|
4310
|
+
},
|
|
4311
|
+
image: {
|
|
4312
|
+
noSource: "이미지 소스 없음",
|
|
4313
|
+
},
|
|
4314
|
+
recordPicker: {
|
|
4315
|
+
sourceUnresolved: "이 레코드 선택기의 데이터 소스를 확인할 수 없습니다",
|
|
4316
|
+
},
|
|
4317
|
+
calendar: {
|
|
4318
|
+
sourceUnresolved: "이 캘린더의 데이터 소스를 확인할 수 없습니다",
|
|
4319
|
+
},
|
|
4320
|
+
chart: {
|
|
4321
|
+
sourceUnresolved: "이 차트의 데이터 소스를 확인할 수 없습니다",
|
|
4322
|
+
},
|
|
4323
|
+
pivotTable: {
|
|
4324
|
+
sourceUnresolved: "이 피벗 테이블의 데이터 소스를 확인할 수 없습니다",
|
|
4325
|
+
},
|
|
4326
|
+
detailView: {
|
|
4327
|
+
sourceUnresolved: "이 상세 보기의 데이터 소스를 확인할 수 없습니다",
|
|
4328
|
+
},
|
|
4329
|
+
relatedList: {
|
|
4330
|
+
sourceUnresolved: "이 관련 목록의 데이터 소스를 확인할 수 없습니다",
|
|
4331
|
+
parentUnreadable: "이 관련 목록의 상위 레코드를 읽을 수 없습니다",
|
|
4332
|
+
},
|
|
4333
|
+
form: {
|
|
4334
|
+
sourceUnresolved: "이 양식의 데이터 소스를 확인할 수 없습니다",
|
|
4335
|
+
},
|
|
4336
|
+
lineItems: {
|
|
4337
|
+
sourceUnresolved: "이 품목 패널의 데이터 소스를 확인할 수 없습니다",
|
|
4338
|
+
},
|
|
4339
|
+
gantt: {
|
|
4340
|
+
sourceUnresolved: "이 간트 차트의 데이터 소스를 확인할 수 없습니다",
|
|
4341
|
+
},
|
|
4342
|
+
grid: {
|
|
4343
|
+
sourceUnresolved: "이 그리드의 데이터 소스를 확인할 수 없습니다",
|
|
4344
|
+
},
|
|
4345
|
+
board: {
|
|
4346
|
+
sourceUnresolved: "이 보드의 데이터 소스를 확인할 수 없습니다",
|
|
4347
|
+
},
|
|
4348
|
+
listView: {
|
|
4349
|
+
sourceUnresolved: "이 목록 보기의 데이터 소스를 확인할 수 없습니다",
|
|
4350
|
+
},
|
|
4351
|
+
map: {
|
|
4352
|
+
sourceUnresolved: "이 지도의 데이터 소스를 확인할 수 없습니다",
|
|
4353
|
+
},
|
|
4354
|
+
timeline: {
|
|
4355
|
+
sourceUnresolved: "이 타임라인의 데이터 소스를 확인할 수 없습니다",
|
|
4356
|
+
},
|
|
4357
|
+
component: {
|
|
4358
|
+
sourceUnresolved: "이 구성 요소의 데이터 소스를 확인할 수 없습니다",
|
|
4359
|
+
noDataSource: "확인된 데이터 소스가 없습니다",
|
|
4360
|
+
apiRefused: "이 구성 요소의 API 데이터 소스가 거부되었습니다",
|
|
4361
|
+
apiUnreadable: "이 구성 요소의 API 데이터 소스를 읽을 수 없습니다",
|
|
4362
|
+
},
|
|
4363
|
+
metadataViewer: {
|
|
4364
|
+
missingKey: "이 보기에 {{key}}이(가) 없습니다.",
|
|
4365
|
+
loading: "{{name}} 로딩 중…",
|
|
4366
|
+
loadFailed: "{{name}}을(를) 불러오지 못했습니다: {{message}}",
|
|
4367
|
+
notFound: "{{name}}을(를) 찾을 수 없습니다.",
|
|
4368
|
+
stateMachine: "상태 머신",
|
|
4369
|
+
flow: "플로우",
|
|
4370
|
+
permission: "권한",
|
|
4371
|
+
noStateMachine: "{{object}}에 상태 머신이 없습니다.",
|
|
4372
|
+
noStateMachineNamed: "{{object}}에 “{{name}}”(이)라는 상태 머신이 없습니다.",
|
|
4373
|
+
lifecycle: "{{object}}의 수명 주기",
|
|
4374
|
+
field: "필드 {{field}}",
|
|
4375
|
+
initial: "초기",
|
|
4376
|
+
final: "최종",
|
|
4377
|
+
steps: "단계: {{count}}",
|
|
4378
|
+
noSteps: "표시할 단계가 없습니다.",
|
|
4379
|
+
untitledStep: "(단계)",
|
|
4380
|
+
hiddenSteps: "숨겨진 기술 단계: {{count}} · 모두 표시하려면 {{setting}} 설정",
|
|
4381
|
+
objectAccess: "개체 액세스: {{count}}",
|
|
4382
|
+
noPermissions: "선언된 개체 권한이 없습니다.",
|
|
4383
|
+
object: "개체",
|
|
4384
|
+
unknownType: "알 수 없는 메타데이터 보기 유형입니다. {{a}}, {{b}} 또는 {{c}}이어야 합니다.",
|
|
4385
|
+
unknownTypeNamed: "알 수 없는 메타데이터 보기 유형 “{{type}}”입니다. {{a}}, {{b}} 또는 {{c}}이어야 합니다.",
|
|
4386
|
+
},
|
|
4387
|
+
},
|
|
3402
4388
|
};
|
|
3403
4389
|
export default ko;
|