@aiquants/auth-react-router 0.13.0 → 0.14.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/README.md +73 -0
- package/dist/admin.d.mts +309 -11
- package/dist/admin.d.ts +309 -11
- package/dist/admin.js +1 -1
- package/dist/admin.js.map +1 -1
- package/dist/admin.mjs +1 -1
- package/dist/admin.mjs.map +1 -1
- package/dist/styles/auth-react-router.standalone.css +1 -1
- package/package.json +12 -3
- package/src/admin/app.ts +5 -0
- package/src/admin/format.ts +10 -1
- package/src/admin/labels.ts +289 -15
- package/src/admin/server.ts +549 -37
- package/src/admin/ui.tsx +17 -4
- package/src/admin/views.tsx +913 -94
package/src/admin/labels.ts
CHANGED
|
@@ -45,6 +45,32 @@ export type UserAdminLabels = {
|
|
|
45
45
|
}
|
|
46
46
|
/** アクションが拒否・失敗したときの文言。 */
|
|
47
47
|
errors: {
|
|
48
|
+
/** 一覧に無い上流キーを指定した。`{key}` に受け取った値。 */
|
|
49
|
+
unknownUpstream: string
|
|
50
|
+
/** その上流グループは既に別のローカルグループへ連携している。`{key}` / `{group}`。 */
|
|
51
|
+
alreadyLinked: string
|
|
52
|
+
/** ディレクトリ未設定の配備で連携を求められたときの説明。 */
|
|
53
|
+
directoryDisabled: string
|
|
54
|
+
/** 必須欄が欠けている、または読めない値だったことの説明。 */
|
|
55
|
+
invalidField: string
|
|
56
|
+
/**
|
|
57
|
+
* Shown for an intent this screen does not perform. この画面が行わない intent への文言。
|
|
58
|
+
*
|
|
59
|
+
* ⚠️ 受け取った値を含めない。認可より手前で返るため、認証を通っていない相手にも届く。
|
|
60
|
+
*/
|
|
61
|
+
unknownIntent: string
|
|
62
|
+
/**
|
|
63
|
+
* Operator-facing names for the form fields. 欄の、操作者に見える名前。
|
|
64
|
+
*
|
|
65
|
+
* ⚠️ `invalidField` の `{field}` に **通信上のキー** を差し込まない。日本語の文の中に
|
|
66
|
+
* `membershipMode` のような識別子が現れ、画面のどの欄を指すのか操作者には判らない。
|
|
67
|
+
* 表に無い欄はキーのまま出す (出さないより、判りにくくても出すほうがよい)。
|
|
68
|
+
*/
|
|
69
|
+
fieldNames: Record<string, string>
|
|
70
|
+
/** 許可リストの種別が既定の 2 値でなかったことの説明。 */
|
|
71
|
+
invalidAllowlistType: string
|
|
72
|
+
/** 想定外の失敗 (原文はサーバーのログにだけ残す)。 */
|
|
73
|
+
unexpected: string
|
|
48
74
|
/**
|
|
49
75
|
* Shown when the actor lacks permission for the attempted operation.
|
|
50
76
|
* 操作の権限が無いときに出す文言。
|
|
@@ -53,6 +79,13 @@ export type UserAdminLabels = {
|
|
|
53
79
|
* 拒否理由といった内部の語彙が、権限を持たない相手にそのまま渡る。
|
|
54
80
|
*/
|
|
55
81
|
forbidden: string
|
|
82
|
+
/**
|
|
83
|
+
* Shown when the request body exceeds the ceiling. 本文が上限を越えたときの文言。
|
|
84
|
+
*
|
|
85
|
+
* この画面が送るのは短い文字列だけなので、越えるのは誤操作か攻撃である。どちらにも
|
|
86
|
+
* 同じ文言を返す (どこで弾かれたかを細かく教えない)。
|
|
87
|
+
*/
|
|
88
|
+
requestTooLarge: string
|
|
56
89
|
}
|
|
57
90
|
/** シェル (タブ枠) の見出し。 */
|
|
58
91
|
heading: string
|
|
@@ -61,6 +94,8 @@ export type UserAdminLabels = {
|
|
|
61
94
|
label: string
|
|
62
95
|
canWrite: string
|
|
63
96
|
canRead: string
|
|
97
|
+
/** 削除だけを持つ主体の表示 (読み書きが無いことを「権限なし」と描かない)。 */
|
|
98
|
+
canDelete: string
|
|
64
99
|
none: string
|
|
65
100
|
/** 未結線・取得失敗・付与ゼロのいずれも「不明」であり、許可ではない。 */
|
|
66
101
|
unknown: string
|
|
@@ -74,6 +109,8 @@ export type UserAdminLabels = {
|
|
|
74
109
|
}
|
|
75
110
|
usersView: {
|
|
76
111
|
title: string
|
|
112
|
+
/** 並べ替えの読み上げ名。`{column}` は列名。 */
|
|
113
|
+
sortBy: string
|
|
77
114
|
searchPlaceholder: string
|
|
78
115
|
/** 検索欄の読み上げ名。プレースホルダは入力すると消えるため名前にならない。 */
|
|
79
116
|
searchLabel: string
|
|
@@ -90,12 +127,65 @@ export type UserAdminLabels = {
|
|
|
90
127
|
activateAria: string
|
|
91
128
|
deactivateAria: string
|
|
92
129
|
/** 無効化はサインインを止める。確認を取る。 */
|
|
130
|
+
/** 検索で 0 件になったときの文言 (「登録が無い」と区別する)。 */
|
|
131
|
+
emptyFiltered: string
|
|
132
|
+
/** 一覧の絞り込み結果を読み上げるための文言。 */
|
|
133
|
+
listSummary: string
|
|
134
|
+
/** 昇順で並べ替え中の列の読み上げ名。 */
|
|
135
|
+
sortedAscending: string
|
|
136
|
+
/** 降順で並べ替え中の列の読み上げ名。 */
|
|
137
|
+
sortedDescending: string
|
|
93
138
|
confirmDeactivate: string
|
|
94
139
|
empty: string
|
|
95
140
|
}
|
|
96
141
|
groupsView: {
|
|
97
142
|
/** 検索語に一致しないときの説明。空状態と混ぜると「消えた」と誤読される。 */
|
|
98
143
|
emptyFiltered: string
|
|
144
|
+
/** 作成方法の切替。ローカルに作るか、上流のグループから作るか。 */
|
|
145
|
+
/** 作成方法を選ぶ操作群の読み上げ名。 */
|
|
146
|
+
createModeLabel: string
|
|
147
|
+
createModeLocal: string
|
|
148
|
+
createModeUpstream: string
|
|
149
|
+
/** 上流グループを選ぶ欄。 */
|
|
150
|
+
pickUpstream: string
|
|
151
|
+
pickUpstreamPlaceholder: string
|
|
152
|
+
/** 選択肢 1 件の副題。`{count}` はメンバー数。 */
|
|
153
|
+
upstreamOptionMembers: string
|
|
154
|
+
/** すでに連携済みの選択肢に付ける表示。 */
|
|
155
|
+
upstreamAlreadyLinked: string
|
|
156
|
+
/** 候補一覧が引けなかったときの説明。`{reason}` に理由。 */
|
|
157
|
+
/** 候補は引けたが、この配備の連携プロバイダ名が決まっていないことの説明。 */
|
|
158
|
+
providerUnset: string
|
|
159
|
+
/** 候補を選ぶまで作成できないことの説明 (押せないボタンの理由)。 */
|
|
160
|
+
pickUpstreamFirst: string
|
|
161
|
+
/**
|
|
162
|
+
* Shown when every upstream group is already linked. 上流のすべてが連携済みのときの文言。
|
|
163
|
+
*
|
|
164
|
+
* ⚠️ この場面で「先に選べ」と言ってはならない。従いようのない指示になる。
|
|
165
|
+
*/
|
|
166
|
+
allUpstreamLinked: string
|
|
167
|
+
/** 上流を読めたが 1 件も無かったことの説明。 */
|
|
168
|
+
catalogEmpty: string
|
|
169
|
+
catalogUnavailable: string
|
|
170
|
+
/** 上流へ届かないときの案内 (作成対話向け — この対話にアドレス欄は無い)。 */
|
|
171
|
+
catalogUnavailableHere: string
|
|
172
|
+
/** 候補一覧をいつ観測したか。 */
|
|
173
|
+
catalogObservedAt: string
|
|
174
|
+
/** 観測が配備の許す鮮度を越えている旨。 */
|
|
175
|
+
catalogStale: string
|
|
176
|
+
/** 候補一覧を引けなかった理由の文言 (上流の例外文は使わない)。 */
|
|
177
|
+
catalogFailures: {
|
|
178
|
+
denied: string
|
|
179
|
+
rateLimited: string
|
|
180
|
+
upstreamError: string
|
|
181
|
+
neverObserved: string
|
|
182
|
+
unknown: string
|
|
183
|
+
}
|
|
184
|
+
/** 上流から作る場合の説明 (何が起きるかを先に伝える)。 */
|
|
185
|
+
createUpstreamNotice: string
|
|
186
|
+
/** グループのメンバー面へ移動する操作。 */
|
|
187
|
+
openMembers: string
|
|
188
|
+
openMembersAria: string
|
|
99
189
|
title: string
|
|
100
190
|
searchPlaceholder: string
|
|
101
191
|
searchLabel: string
|
|
@@ -107,6 +197,8 @@ export type UserAdminLabels = {
|
|
|
107
197
|
/** 所属人数。`{count}` を人数へ置換する。 */
|
|
108
198
|
memberCountTemplate: string
|
|
109
199
|
confirmDelete: string
|
|
200
|
+
/** 連携付きで作る前の確認。`{group}` / `{upstream}`。委譲は元に戻しづらい。 */
|
|
201
|
+
confirmCreateLinked: string
|
|
110
202
|
/** 行ごとの読み上げ名。`{group}` をグループ名へ置換する。 */
|
|
111
203
|
editGroupAria: string
|
|
112
204
|
deleteGroupAria: string
|
|
@@ -117,8 +209,25 @@ export type UserAdminLabels = {
|
|
|
117
209
|
}
|
|
118
210
|
groupMembersView: {
|
|
119
211
|
title: string
|
|
212
|
+
/** 利用者の絞り込み。数百人の一覧を目で追わせない。 */
|
|
213
|
+
searchLabel: string
|
|
214
|
+
searchPlaceholder: string
|
|
215
|
+
/** 所属している人だけに絞る切替。`{count}` は該当数。 */
|
|
216
|
+
onlyMembers: string
|
|
217
|
+
/** 絞り込み結果が空のときの説明。 */
|
|
218
|
+
emptyFiltered: string
|
|
219
|
+
/** 一覧の要約。`{shown}` / `{total}` / `{members}`。 */
|
|
220
|
+
summary: string
|
|
120
221
|
selectGroup: string
|
|
121
222
|
selectPrompt: string
|
|
223
|
+
/** グループが 1 つも無い配備での説明 (「選べ」は従えない指示になる)。 */
|
|
224
|
+
noGroups: string
|
|
225
|
+
/** 所属だけに絞った結果 0 件になったときの説明。 */
|
|
226
|
+
emptyNoMembers: string
|
|
227
|
+
/** 利用者が 1 人も登録されていない配備での説明。 */
|
|
228
|
+
noUsers: string
|
|
229
|
+
/** 深いリンクが指すグループが見つからず、代替を出していることの説明。 */
|
|
230
|
+
deepLinkMissed: string
|
|
122
231
|
actionAdd: string
|
|
123
232
|
actionRemove: string
|
|
124
233
|
/** 行ごとの読み上げ名。`{user}` を利用者名へ置換する。 */
|
|
@@ -166,6 +275,8 @@ export type UserAdminLabels = {
|
|
|
166
275
|
syncEnabled: string
|
|
167
276
|
syncNow: string
|
|
168
277
|
syncQueued: string
|
|
278
|
+
/** 同じ範囲の要求が既に待っていて、積まれなかったことの説明。 */
|
|
279
|
+
syncAlreadyPending: string
|
|
169
280
|
/** 同期が滞っていることの警告。停止はセキュリティ事象である。 */
|
|
170
281
|
staleWarning: string
|
|
171
282
|
disabledWarning: string
|
|
@@ -183,6 +294,8 @@ export type UserAdminLabels = {
|
|
|
183
294
|
pendingTemplate: string
|
|
184
295
|
/** 連携先が 1 つも残っていないときの説明。 */
|
|
185
296
|
nothingToLink: string
|
|
297
|
+
/** グループが 1 つも無い配備での説明 (「全部が連携済み」と区別する)。 */
|
|
298
|
+
noGroupsToLink: string
|
|
186
299
|
/** 未結線の配備で操作を出さない理由。 */
|
|
187
300
|
notWiredNotice: string
|
|
188
301
|
/** 行ごとの読み上げ名。`{group}` をグループ名へ置換する。 */
|
|
@@ -201,9 +314,21 @@ export type UserAdminLabels = {
|
|
|
201
314
|
empty: string
|
|
202
315
|
/** 連携するグループを選ぶ欄。 */
|
|
203
316
|
selectGroup: string
|
|
317
|
+
/** 選択欄が自前で持つ文言。渡さないと英語のまま出る。 */
|
|
318
|
+
/** 選択欄の入力の手引き。 */
|
|
319
|
+
pickUpstreamPlaceholder: string
|
|
320
|
+
pickerNoOptions: string
|
|
321
|
+
pickerClear: string
|
|
322
|
+
pickerToggle: string
|
|
323
|
+
/** 選択中の値の読み上げ。`{value}`。 */
|
|
324
|
+
pickerSelected: string
|
|
325
|
+
/** 候補件数の読み上げ。`{count}`。 */
|
|
326
|
+
pickerAvailable: string
|
|
204
327
|
/** 上流グループのアドレス入力。 */
|
|
205
328
|
externalKeyPlaceholder: string
|
|
206
329
|
/** 連携解除の確認。台帳と許可設定が消える。 */
|
|
330
|
+
/** 連携を作る前の確認 (元へ戻すには連携解除という別の操作が要る)。 */
|
|
331
|
+
confirmLink: string
|
|
207
332
|
confirmUnlink: string
|
|
208
333
|
/** 同期の一時停止・再開。 */
|
|
209
334
|
pause: string
|
|
@@ -240,12 +365,37 @@ export const defaultUserAdminLabels: UserAdminLabels = {
|
|
|
240
365
|
none: "-",
|
|
241
366
|
},
|
|
242
367
|
errors: {
|
|
243
|
-
|
|
368
|
+
unknownUpstream: "No group named {key} exists upstream. Check the spelling, or pick one from the list.",
|
|
369
|
+
directoryDisabled: "This deployment has no directory configured, so groups cannot be linked.",
|
|
370
|
+
invalidField: "“{field}” is missing or not a value this operation accepts.",
|
|
371
|
+
unknownIntent: "This screen does not perform that operation.",
|
|
372
|
+
fieldNames: {
|
|
373
|
+
groupId: "Group",
|
|
374
|
+
userId: "User",
|
|
375
|
+
entryId: "Entry",
|
|
376
|
+
displayName: "Display name",
|
|
377
|
+
email: "Email",
|
|
378
|
+
groupKey: "Group key",
|
|
379
|
+
name: "Name",
|
|
380
|
+
provider: "Directory provider",
|
|
381
|
+
externalKey: "Directory group address",
|
|
382
|
+
membershipMode: "Membership expansion",
|
|
383
|
+
isActive: "Active",
|
|
384
|
+
isSyncEnabled: "Synchronization",
|
|
385
|
+
pattern: "Pattern",
|
|
386
|
+
type: "Type",
|
|
387
|
+
},
|
|
388
|
+
invalidAllowlistType: "The allowlist type must be either an address or a domain.",
|
|
389
|
+
unexpected: "The operation failed. The reason is in the server log.",
|
|
390
|
+
alreadyLinked: "{key} is already linked to {group}. One upstream group can back only one local group.",
|
|
391
|
+
forbidden: "You do not have permission for this operation. The badge in the header shows what you currently hold; ask an administrator for the rest.",
|
|
392
|
+
requestTooLarge: "The request was too large to process.",
|
|
244
393
|
},
|
|
245
394
|
permissions: {
|
|
246
395
|
label: "Your permissions:",
|
|
247
396
|
canWrite: "Editable",
|
|
248
397
|
canRead: "Read only",
|
|
398
|
+
canDelete: "Delete only",
|
|
249
399
|
none: "No access",
|
|
250
400
|
unknown: "Unknown",
|
|
251
401
|
},
|
|
@@ -258,6 +408,7 @@ export const defaultUserAdminLabels: UserAdminLabels = {
|
|
|
258
408
|
},
|
|
259
409
|
usersView: {
|
|
260
410
|
title: "Users",
|
|
411
|
+
sortBy: "Sort by {column}",
|
|
261
412
|
searchPlaceholder: "Search by name or email...",
|
|
262
413
|
searchLabel: "Search users",
|
|
263
414
|
addUser: "\uFF0B Add user",
|
|
@@ -271,11 +422,41 @@ export const defaultUserAdminLabels: UserAdminLabels = {
|
|
|
271
422
|
editUserAria: "Edit {user}",
|
|
272
423
|
activateAria: "Activate {user}",
|
|
273
424
|
deactivateAria: "Deactivate {user}",
|
|
274
|
-
|
|
275
|
-
|
|
425
|
+
emptyFiltered: "No user matches this search.",
|
|
426
|
+
listSummary: "Showing {shown} of {total} users.",
|
|
427
|
+
sortedAscending: "{column}, sorted ascending. Activate to sort descending.",
|
|
428
|
+
sortedDescending: "{column}, sorted descending. Activate to sort ascending.",
|
|
429
|
+
confirmDeactivate: "Deactivate {user}? They will no longer be able to sign in.",
|
|
430
|
+
empty: "No user is registered yet.",
|
|
276
431
|
},
|
|
277
432
|
groupsView: {
|
|
278
433
|
emptyFiltered: "No group matches this search",
|
|
434
|
+
createModeLabel: "How to create the group",
|
|
435
|
+
createModeLocal: "Create locally",
|
|
436
|
+
createModeUpstream: "Create from a directory group",
|
|
437
|
+
pickUpstream: "Directory group",
|
|
438
|
+
pickUpstreamPlaceholder: "Search by name or address...",
|
|
439
|
+
upstreamOptionMembers: "{count} members",
|
|
440
|
+
upstreamAlreadyLinked: "already linked to {group}",
|
|
441
|
+
providerUnset: "This deployment has no directory provider configured, so a directory group cannot be linked yet. Ask an administrator to set it.",
|
|
442
|
+
pickUpstreamFirst: "Pick a directory group first.",
|
|
443
|
+
allUpstreamLinked: "Every directory group is already linked to a local group. One upstream group can back only one local group, so unlink one first.",
|
|
444
|
+
catalogEmpty: "The directory reported no groups as of {at}. Creating from a directory group is unavailable until one exists upstream.",
|
|
445
|
+
catalogUnavailable: "The directory could not be reached, so the group list is unavailable. Enter the address by hand instead. ({reason})",
|
|
446
|
+
catalogUnavailableHere: "The directory could not be reached, so creating from a directory group is unavailable. Create the group locally, then link it on the Directory tab. ({reason})",
|
|
447
|
+
catalogObservedAt: "This list is the directory as of {at}.",
|
|
448
|
+
catalogStale: "⚠ This list is the directory as of {at} and is overdue for a refresh — a group created since then will not appear.",
|
|
449
|
+
catalogFailures: {
|
|
450
|
+
denied: "the directory refused this deployment's credential",
|
|
451
|
+
rateLimited: "the directory is rate-limiting this deployment",
|
|
452
|
+
upstreamError: "the directory reported an internal error",
|
|
453
|
+
neverObserved: "the directory has not been read yet — the synchronization job may not be running",
|
|
454
|
+
unknown: "the reason is in the server log",
|
|
455
|
+
},
|
|
456
|
+
createUpstreamNotice:
|
|
457
|
+
"Creates the group and links it in one step. The directory then owns its membership — and this screen can no longer rename, describe or delete the group. Unlinking is the only way back, and it removes the member ledger and the group-based sign-in permission.",
|
|
458
|
+
openMembers: "Members",
|
|
459
|
+
openMembersAria: "Show the members of {group}",
|
|
279
460
|
title: "Groups",
|
|
280
461
|
searchPlaceholder: "Search by group name or key...",
|
|
281
462
|
searchLabel: "Search groups",
|
|
@@ -285,7 +466,8 @@ export const defaultUserAdminLabels: UserAdminLabels = {
|
|
|
285
466
|
name: "Name",
|
|
286
467
|
description: "Description",
|
|
287
468
|
memberCountTemplate: "{count} members",
|
|
288
|
-
confirmDelete: "Delete this group
|
|
469
|
+
confirmDelete: "Delete {group}? Its {count} membership record(s) go with it, and anyone who could sign in only through this group will be locked out.",
|
|
470
|
+
confirmCreateLinked: "Create {group} and hand its membership to {upstream}? Renaming and deleting it here becomes impossible.",
|
|
289
471
|
editGroupAria: "Edit {group}",
|
|
290
472
|
deleteGroupAria: "Delete {group}",
|
|
291
473
|
noDescription: "No description",
|
|
@@ -295,8 +477,17 @@ export const defaultUserAdminLabels: UserAdminLabels = {
|
|
|
295
477
|
},
|
|
296
478
|
groupMembersView: {
|
|
297
479
|
title: "Group members",
|
|
480
|
+
searchLabel: "Search users",
|
|
481
|
+
searchPlaceholder: "Search by name or email...",
|
|
482
|
+
onlyMembers: "Members only ({count})",
|
|
483
|
+
emptyFiltered: "No user matches this search",
|
|
484
|
+
summary: "Showing {shown} of {total} users. This group has {members} member(s).",
|
|
298
485
|
selectGroup: "Select a group",
|
|
299
486
|
selectPrompt: "Select a group to manage its members",
|
|
487
|
+
noGroups: "No group exists yet. Create one on the Groups tab first.",
|
|
488
|
+
emptyNoMembers: "This group has no members yet. Untick “Members only” to add someone.",
|
|
489
|
+
noUsers: "No user is registered yet. Add one on the Users tab first.",
|
|
490
|
+
deepLinkMissed: "Group {id} was not found — it may have been deleted. Showing {group} instead.",
|
|
300
491
|
actionAdd: "Add",
|
|
301
492
|
actionRemove: "Remove",
|
|
302
493
|
actionAddAria: "Add {user} to this group",
|
|
@@ -318,7 +509,7 @@ export const defaultUserAdminLabels: UserAdminLabels = {
|
|
|
318
509
|
target: "Target",
|
|
319
510
|
description: "Description",
|
|
320
511
|
deploymentOwner: "Deployment-wide",
|
|
321
|
-
confirmDelete: "Remove
|
|
512
|
+
confirmDelete: "Remove {target} from the sign-in allowlist? Anyone who could sign in only through it will be locked out.",
|
|
322
513
|
deleteAria: "Remove the allowlist entry for {target}",
|
|
323
514
|
empty: "No allowlist entries registered",
|
|
324
515
|
},
|
|
@@ -334,6 +525,7 @@ export const defaultUserAdminLabels: UserAdminLabels = {
|
|
|
334
525
|
syncEnabled: "Active",
|
|
335
526
|
syncNow: "Sync now",
|
|
336
527
|
syncQueued: "Queued",
|
|
528
|
+
syncAlreadyPending: "A synchronization request for this scope is already waiting, so nothing was queued. If it never completes, the synchronization job may not be running.",
|
|
337
529
|
staleWarning: "Synchronization is overdue. Until it runs, people removed upstream keep their access.",
|
|
338
530
|
disabledWarning: "Directory synchronization is not wired for this deployment. Existing memberships remain in force and are no longer being refreshed.",
|
|
339
531
|
pausedTemplate: "{paused} of {total} links are paused",
|
|
@@ -343,6 +535,7 @@ export const defaultUserAdminLabels: UserAdminLabels = {
|
|
|
343
535
|
oldestSyncedTemplate: "oldest successful sync: {at}",
|
|
344
536
|
pendingTemplate: "{count} sync requests are queued",
|
|
345
537
|
nothingToLink: "Every group is already linked to a directory.",
|
|
538
|
+
noGroupsToLink: "No group exists yet. Create one on the Groups tab first.",
|
|
346
539
|
notWiredNotice: "Directory synchronization is not wired for this deployment, so links cannot be created or changed here.",
|
|
347
540
|
syncNowAria: "Synchronize {group} now",
|
|
348
541
|
syncQueuedAria: "A synchronization of {group} is queued",
|
|
@@ -351,14 +544,21 @@ export const defaultUserAdminLabels: UserAdminLabels = {
|
|
|
351
544
|
allowGroupAria: "Allow members of {group} to sign in",
|
|
352
545
|
disallowGroupAria: "Stop allowing members of {group} to sign in",
|
|
353
546
|
unlinkAria: "Unlink {group} from the directory",
|
|
354
|
-
confirmDisallow: "Stop allowing
|
|
547
|
+
confirmDisallow: "Stop allowing {group} to sign in? Anyone who could sign in only through it will be locked out.",
|
|
355
548
|
link: "Link to a directory group",
|
|
356
549
|
unlink: "Unlink",
|
|
357
550
|
externalKey: "Upstream group",
|
|
358
551
|
empty: "No groups are linked to a directory",
|
|
359
552
|
selectGroup: "Group to link",
|
|
553
|
+
pickUpstreamPlaceholder: "Search by name or address...",
|
|
554
|
+
pickerNoOptions: "No matching group",
|
|
555
|
+
pickerClear: "Clear the selection",
|
|
556
|
+
pickerToggle: "Show the group list",
|
|
557
|
+
pickerSelected: "Selected: {value}",
|
|
558
|
+
pickerAvailable: "{count} groups available",
|
|
360
559
|
externalKeyPlaceholder: "e.g. dev-team@example.com",
|
|
361
|
-
|
|
560
|
+
confirmLink: "Hand {group}'s membership to {upstream}? Renaming, deleting, and editing its members here becomes impossible.",
|
|
561
|
+
confirmUnlink: "Unlink {group} from {upstream}? Its member ledger and group-based sign-in permission are removed.",
|
|
362
562
|
pause: "Pause",
|
|
363
563
|
resume: "Resume",
|
|
364
564
|
allowGroup: "Allow sign-in",
|
|
@@ -391,12 +591,37 @@ export const jaUserAdminLabels: UserAdminLabels = {
|
|
|
391
591
|
none: "-",
|
|
392
592
|
},
|
|
393
593
|
errors: {
|
|
394
|
-
|
|
594
|
+
unknownUpstream: "上流に {key} というグループが見つかりません。綴りを確認するか、一覧から選んでください。",
|
|
595
|
+
directoryDisabled: "この配備にはディレクトリが設定されていないため、グループを連携できません。",
|
|
596
|
+
invalidField: "「{field}」が未指定か、この操作が受け付けられない値です。",
|
|
597
|
+
unknownIntent: "この画面では、その操作を行いません。",
|
|
598
|
+
fieldNames: {
|
|
599
|
+
groupId: "グループ",
|
|
600
|
+
userId: "ユーザー",
|
|
601
|
+
entryId: "項目",
|
|
602
|
+
displayName: "表示名",
|
|
603
|
+
email: "メールアドレス",
|
|
604
|
+
groupKey: "グループキー",
|
|
605
|
+
name: "名前",
|
|
606
|
+
provider: "連携プロバイダ",
|
|
607
|
+
externalKey: "ディレクトリのグループアドレス",
|
|
608
|
+
membershipMode: "所属の展開",
|
|
609
|
+
isActive: "有効",
|
|
610
|
+
isSyncEnabled: "同期",
|
|
611
|
+
pattern: "パターン",
|
|
612
|
+
type: "種別",
|
|
613
|
+
},
|
|
614
|
+
invalidAllowlistType: "許可リストの種別は、アドレスかドメインのいずれかで指定してください。",
|
|
615
|
+
unexpected: "操作に失敗しました。理由はサーバーのログに出ています。",
|
|
616
|
+
alreadyLinked: "{key} は既に {group} と連携しています。1 つの上流グループを 2 つのローカルグループへ繋ぐことはできません。",
|
|
617
|
+
forbidden: "この操作を行う権限がありません。今の権限はヘッダーのバッジに出ています。必要であれば管理者に付与を依頼してください。",
|
|
618
|
+
requestTooLarge: "送信された内容が大きすぎるため処理できませんでした。",
|
|
395
619
|
},
|
|
396
620
|
permissions: {
|
|
397
621
|
label: "あなたの権限:",
|
|
398
622
|
canWrite: "編集可",
|
|
399
623
|
canRead: "閲覧のみ",
|
|
624
|
+
canDelete: "削除のみ",
|
|
400
625
|
none: "権限なし",
|
|
401
626
|
unknown: "権限不明",
|
|
402
627
|
},
|
|
@@ -409,6 +634,7 @@ export const jaUserAdminLabels: UserAdminLabels = {
|
|
|
409
634
|
},
|
|
410
635
|
usersView: {
|
|
411
636
|
title: "ユーザー管理",
|
|
637
|
+
sortBy: "{column} で並べ替え",
|
|
412
638
|
searchPlaceholder: "表示名や Email で検索...",
|
|
413
639
|
searchLabel: "ユーザーを検索",
|
|
414
640
|
addUser: "\uFF0B ユーザー追加",
|
|
@@ -422,11 +648,40 @@ export const jaUserAdminLabels: UserAdminLabels = {
|
|
|
422
648
|
editUserAria: "{user} を編集",
|
|
423
649
|
activateAria: "{user} を有効化",
|
|
424
650
|
deactivateAria: "{user} を無効化",
|
|
425
|
-
|
|
426
|
-
|
|
651
|
+
emptyFiltered: "検索条件に一致する利用者はいません。",
|
|
652
|
+
listSummary: "{total} 人中 {shown} 人を表示しています。",
|
|
653
|
+
sortedAscending: "{column} (昇順で並べ替え中)。押すと降順になります。",
|
|
654
|
+
sortedDescending: "{column} (降順で並べ替え中)。押すと昇順になります。",
|
|
655
|
+
confirmDeactivate: "{user} を無効化しますか? 以後サインインできなくなります。",
|
|
656
|
+
empty: "ユーザーが登録されていません。",
|
|
427
657
|
},
|
|
428
658
|
groupsView: {
|
|
429
659
|
emptyFiltered: "検索条件に一致するグループはありません",
|
|
660
|
+
createModeLabel: "作成方法",
|
|
661
|
+
createModeLocal: "ローカルに作成",
|
|
662
|
+
createModeUpstream: "ディレクトリのグループから作成",
|
|
663
|
+
pickUpstream: "ディレクトリのグループ",
|
|
664
|
+
pickUpstreamPlaceholder: "名前かアドレスで検索...",
|
|
665
|
+
upstreamOptionMembers: "{count} 名",
|
|
666
|
+
upstreamAlreadyLinked: "{group} と連携済み",
|
|
667
|
+
providerUnset: "この配備には連携プロバイダ名が設定されていないため、ディレクトリのグループを連携できません。管理者に設定を依頼してください。",
|
|
668
|
+
pickUpstreamFirst: "先にディレクトリのグループを選んでください。",
|
|
669
|
+
allUpstreamLinked: "ディレクトリのグループはすべて、いずれかのローカルグループと連携済みです。1 つの上流グループを繋げる先は 1 つだけなので、繋ぎ替えるにはどれかの連携を解除してください。",
|
|
670
|
+
catalogEmpty: "{at} 時点で、上流にグループが 1 つもありませんでした。上流にグループができるまで、ディレクトリからの作成はできません。",
|
|
671
|
+
catalogUnavailable: "上流へ到達できないため、グループ一覧を出せません。アドレスを手入力してください。({reason})",
|
|
672
|
+
catalogUnavailableHere: "上流へ到達できないため、ディレクトリからの作成はできません。ローカルに作成したうえで、連携タブから連携してください。({reason})",
|
|
673
|
+
catalogObservedAt: "この一覧は {at} 時点のディレクトリです。",
|
|
674
|
+
catalogStale: "⚠ この一覧は {at} 時点のもので、更新が滞っています。それ以降に作られたグループは出てきません。",
|
|
675
|
+
catalogFailures: {
|
|
676
|
+
denied: "この配備の資格情報が上流に拒否されました",
|
|
677
|
+
rateLimited: "上流がこの配備の呼び出しを制限しています",
|
|
678
|
+
upstreamError: "上流が内部エラーを返しました",
|
|
679
|
+
neverObserved: "上流をまだ一度も読めていません (同期ジョブが動いていない可能性があります)",
|
|
680
|
+
unknown: "理由はサーバーのログに出ています",
|
|
681
|
+
},
|
|
682
|
+
createUpstreamNotice: "グループの作成と連携を 1 手で行います。以後、所属は上流が所有し — この画面からは名称・説明の変更も削除もできなくなります。戻す手段は連携解除だけで、それはメンバー台帳とグループ単位のサインイン許可を消します。",
|
|
683
|
+
openMembers: "メンバー",
|
|
684
|
+
openMembersAria: "{group} のメンバーを表示",
|
|
430
685
|
title: "ユーザーグループ管理",
|
|
431
686
|
searchPlaceholder: "グループ名やキーで検索...",
|
|
432
687
|
searchLabel: "グループを検索",
|
|
@@ -436,7 +691,8 @@ export const jaUserAdminLabels: UserAdminLabels = {
|
|
|
436
691
|
name: "名称",
|
|
437
692
|
description: "説明",
|
|
438
693
|
memberCountTemplate: "所属 {count} 名",
|
|
439
|
-
confirmDelete: "
|
|
694
|
+
confirmDelete: "{group} を削除しますか? 所属 {count} 件も一緒に消え、このグループでしかサインインできない人はサインインできなくなります。",
|
|
695
|
+
confirmCreateLinked: "{group} を作成し、その所属を {upstream} に委ねますか? 以後この画面から名称変更と削除ができなくなります。",
|
|
440
696
|
editGroupAria: "{group} を編集",
|
|
441
697
|
deleteGroupAria: "{group} を削除",
|
|
442
698
|
noDescription: "説明なし",
|
|
@@ -446,8 +702,17 @@ export const jaUserAdminLabels: UserAdminLabels = {
|
|
|
446
702
|
},
|
|
447
703
|
groupMembersView: {
|
|
448
704
|
title: "グループメンバー管理",
|
|
705
|
+
searchLabel: "利用者を検索",
|
|
706
|
+
searchPlaceholder: "表示名や Email で検索...",
|
|
707
|
+
onlyMembers: "所属のみ表示 ({count} 名)",
|
|
708
|
+
emptyFiltered: "検索条件に一致する利用者はいません",
|
|
709
|
+
summary: "{total} 名のうち {shown} 名を表示中。このグループの所属は {members} 名です。",
|
|
449
710
|
selectGroup: "グループ選択",
|
|
450
711
|
selectPrompt: "グループを選択してください",
|
|
712
|
+
noGroups: "グループがまだ 1 つもありません。先にグループタブで作成してください。",
|
|
713
|
+
emptyNoMembers: "このグループにはまだメンバーがいません。「所属のみ表示」のチェックを外すと追加できます。",
|
|
714
|
+
noUsers: "利用者がまだ 1 人も登録されていません。先にユーザータブで追加してください。",
|
|
715
|
+
deepLinkMissed: "グループ {id} が見つかりませんでした (削除された可能性があります)。代わりに {group} を表示しています。",
|
|
451
716
|
actionAdd: "追加",
|
|
452
717
|
actionRemove: "除外",
|
|
453
718
|
actionAddAria: "{user} をこのグループへ追加",
|
|
@@ -469,9 +734,9 @@ export const jaUserAdminLabels: UserAdminLabels = {
|
|
|
469
734
|
target: "対象",
|
|
470
735
|
description: "説明 / 備考",
|
|
471
736
|
deploymentOwner: "配備共通",
|
|
472
|
-
confirmDelete: "
|
|
737
|
+
confirmDelete: "{target} を許可リストから削除しますか? これでしかサインインできない人はログインできなくなります。",
|
|
473
738
|
deleteAria: "{target} の許可を削除",
|
|
474
|
-
empty: "
|
|
739
|
+
empty: "サインイン許可リストに登録がありません。",
|
|
475
740
|
},
|
|
476
741
|
directoryView: {
|
|
477
742
|
title: "ディレクトリ同期",
|
|
@@ -485,6 +750,7 @@ export const jaUserAdminLabels: UserAdminLabels = {
|
|
|
485
750
|
syncEnabled: "有効",
|
|
486
751
|
syncNow: "今すぐ同期",
|
|
487
752
|
syncQueued: "同期を要求しました",
|
|
753
|
+
syncAlreadyPending: "この範囲の同期要求は既に待機中のため、新しくは積みませんでした。いつまでも完了しない場合、同期ジョブが動いていない可能性があります。",
|
|
488
754
|
staleWarning: "同期が滞っています。実行されるまで、上流から外れた人のアクセスは残り続けます。",
|
|
489
755
|
disabledWarning: "この配備ではディレクトリ同期が結線されていません。既存の所属はそのまま有効で、更新だけが止まっています。",
|
|
490
756
|
pausedTemplate: "連携 {total} 件のうち {paused} 件が停止中",
|
|
@@ -494,6 +760,7 @@ export const jaUserAdminLabels: UserAdminLabels = {
|
|
|
494
760
|
oldestSyncedTemplate: "最も古い同期成功: {at}",
|
|
495
761
|
pendingTemplate: "{count} 件の同期要求が未処理",
|
|
496
762
|
nothingToLink: "すべてのグループが既にディレクトリと連携しています。",
|
|
763
|
+
noGroupsToLink: "グループがまだ 1 つもありません。先にグループタブで作成してください。",
|
|
497
764
|
notWiredNotice: "この配備ではディレクトリ同期が結線されていないため、ここから連携の作成・変更はできません。",
|
|
498
765
|
syncNowAria: "{group} を今すぐ同期",
|
|
499
766
|
syncQueuedAria: "{group} の同期を要求済み",
|
|
@@ -502,14 +769,21 @@ export const jaUserAdminLabels: UserAdminLabels = {
|
|
|
502
769
|
allowGroupAria: "{group} のメンバーのサインインを許可",
|
|
503
770
|
disallowGroupAria: "{group} のメンバーのサインイン許可を外す",
|
|
504
771
|
unlinkAria: "{group} のディレクトリ連携を解除",
|
|
505
|
-
confirmDisallow: "
|
|
772
|
+
confirmDisallow: "{group} のサインイン許可を外しますか? これでしかサインインできない人はログインできなくなります。",
|
|
506
773
|
link: "ディレクトリのグループと連携する",
|
|
507
774
|
unlink: "連携を解除",
|
|
508
775
|
externalKey: "上流グループ",
|
|
509
776
|
empty: "ディレクトリと連携しているグループはありません",
|
|
510
777
|
selectGroup: "連携するグループ",
|
|
778
|
+
pickUpstreamPlaceholder: "名前かアドレスで検索...",
|
|
779
|
+
pickerNoOptions: "一致するグループがありません",
|
|
780
|
+
pickerClear: "選択を解除",
|
|
781
|
+
pickerToggle: "グループ一覧を開く",
|
|
782
|
+
pickerSelected: "選択中: {value}",
|
|
783
|
+
pickerAvailable: "候補 {count} 件",
|
|
511
784
|
externalKeyPlaceholder: "例: dev-team@example.com",
|
|
512
|
-
|
|
785
|
+
confirmLink: "{group} の所属を {upstream} に委ねますか? 以後この画面から名称変更・削除・メンバー編集ができなくなります。",
|
|
786
|
+
confirmUnlink: "{group} と {upstream} の連携を解除しますか? メンバー台帳とグループ単位のサインイン許可が失われます。",
|
|
513
787
|
pause: "一時停止",
|
|
514
788
|
resume: "再開",
|
|
515
789
|
allowGroup: "サインインを許可",
|