@aiquants/auth-react-router 0.15.0 → 0.16.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 +100 -7
- package/dist/admin.d.mts +13 -436
- package/dist/admin.d.ts +13 -436
- package/dist/admin.js +1 -2
- package/dist/admin.mjs +1 -2
- package/dist/client.d.mts +1 -10
- package/dist/client.d.ts +1 -10
- package/dist/client.js +0 -1
- package/dist/client.mjs +0 -1
- package/dist/server.d.mts +6 -146
- package/dist/server.d.ts +6 -146
- package/dist/server.js +0 -1
- package/dist/server.mjs +0 -1
- package/package.json +12 -16
- package/dist/admin.js.map +0 -1
- package/dist/admin.mjs.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/client.mjs.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/server.mjs.map +0 -1
- package/src/admin/app.ts +0 -9
- package/src/admin/format.ts +0 -58
- package/src/admin/labels.ts +0 -838
- package/src/admin/server.ts +0 -1143
- package/src/admin/ui.tsx +0 -276
- package/src/admin/views.tsx +0 -2120
- package/src/admin.ts +0 -5
- package/src/client/GoogleForm.tsx +0 -47
- package/src/client.ts +0 -6
- package/src/server/auth-server.ts +0 -69
- package/src/server/authenticate-in-loader.ts +0 -243
- package/src/server/authenticate.ts +0 -224
- package/src/server/google-strategy-impl.ts +0 -154
- package/src/server/google-strategy.ts +0 -183
- package/src/server/handlers.ts +0 -139
- package/src/server/logger.ts +0 -14
- package/src/server/ports.ts +0 -113
- package/src/server/session.ts +0 -132
- package/src/server.ts +0 -14
- package/src/styles/standalone.entry.css +0 -6
package/src/admin/labels.ts
DELETED
|
@@ -1,838 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Labels and i18n strings for the user administration UI.
|
|
3
|
-
* ユーザー管理 UI で使用するラベルと i18n 文字列の定義。
|
|
4
|
-
*
|
|
5
|
-
* パッケージ既定は **英語** ([defaultUserAdminLabels])。日本語で使う場合はアプリ側が
|
|
6
|
-
* [jaUserAdminLabels] を明示的に注入する (認可管理 `@aiquants/authz-react-router` と同じ規約)。
|
|
7
|
-
* UI 文字列はすべて本モジュールに集約し、コンポーネント側へ直書きしないこと — 直書きすると
|
|
8
|
-
* 日本語以外の利用者がその箇所を差し替えられなくなる。
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
export type UserAdminLabels = {
|
|
12
|
-
title: string
|
|
13
|
-
/**
|
|
14
|
-
* BCP 47 locale used to format dates. 日付整形に使う BCP 47 ロケール。
|
|
15
|
-
*
|
|
16
|
-
* 実行環境任せにするとサーバーとブラウザで別の文字列になり、水和が壊れる。
|
|
17
|
-
*/
|
|
18
|
-
locale: string
|
|
19
|
-
/** IANA time zone used to format dates. 日付整形に使う IANA タイムゾーン。 */
|
|
20
|
-
timeZone: string
|
|
21
|
-
/**
|
|
22
|
-
* Strings shared by more than one view. 複数のビューが共有する文言。
|
|
23
|
-
*
|
|
24
|
-
* ビューごとに同じ語を持たせると、ある画面の「削除」だけを言い換えることが **できなく
|
|
25
|
-
* なる** (実装がどのビューのキーを読んでいるかは呼び出し側から見えない)。共有する語は
|
|
26
|
-
* ここ 1 か所に置く。
|
|
27
|
-
*/
|
|
28
|
-
common: {
|
|
29
|
-
create: string
|
|
30
|
-
edit: string
|
|
31
|
-
delete: string
|
|
32
|
-
save: string
|
|
33
|
-
cancel: string
|
|
34
|
-
actions: string
|
|
35
|
-
status: string
|
|
36
|
-
id: string
|
|
37
|
-
/** 変更不能な供給元 (環境変数など) 由来の行に出す表示。 */
|
|
38
|
-
readOnly: string
|
|
39
|
-
/** 上流所有のグループに出す編集不可の表示。 */
|
|
40
|
-
managedUpstream: string
|
|
41
|
-
/** `#{id}` の表示。記号の位置は言語で変わる。 */
|
|
42
|
-
idTemplate: string
|
|
43
|
-
/** 値が無いことの表示 (説明欄など)。 */
|
|
44
|
-
none: string
|
|
45
|
-
}
|
|
46
|
-
/** アクションが拒否・失敗したときの文言。 */
|
|
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
|
|
74
|
-
/**
|
|
75
|
-
* Shown when the actor lacks permission for the attempted operation.
|
|
76
|
-
* 操作の権限が無いときに出す文言。
|
|
77
|
-
*
|
|
78
|
-
* ガードの例外メッセージをそのまま返してはならない。テナント ID・アプリキー・
|
|
79
|
-
* 拒否理由といった内部の語彙が、権限を持たない相手にそのまま渡る。
|
|
80
|
-
*/
|
|
81
|
-
forbidden: string
|
|
82
|
-
/**
|
|
83
|
-
* Shown when the request body exceeds the ceiling. 本文が上限を越えたときの文言。
|
|
84
|
-
*
|
|
85
|
-
* この画面が送るのは短い文字列だけなので、越えるのは誤操作か攻撃である。どちらにも
|
|
86
|
-
* 同じ文言を返す (どこで弾かれたかを細かく教えない)。
|
|
87
|
-
*/
|
|
88
|
-
requestTooLarge: string
|
|
89
|
-
}
|
|
90
|
-
/** シェル (タブ枠) の見出し。 */
|
|
91
|
-
heading: string
|
|
92
|
-
/** シェルが描く自己権限バッジの文言。 */
|
|
93
|
-
permissions: {
|
|
94
|
-
label: string
|
|
95
|
-
canWrite: string
|
|
96
|
-
canRead: string
|
|
97
|
-
/** 削除だけを持つ主体の表示 (読み書きが無いことを「権限なし」と描かない)。 */
|
|
98
|
-
canDelete: string
|
|
99
|
-
none: string
|
|
100
|
-
/** 未結線・取得失敗・付与ゼロのいずれも「不明」であり、許可ではない。 */
|
|
101
|
-
unknown: string
|
|
102
|
-
}
|
|
103
|
-
tabs: {
|
|
104
|
-
users: string
|
|
105
|
-
groups: string
|
|
106
|
-
groupMembers: string
|
|
107
|
-
allowlist: string
|
|
108
|
-
directory: string
|
|
109
|
-
}
|
|
110
|
-
usersView: {
|
|
111
|
-
title: string
|
|
112
|
-
/** 並べ替えの読み上げ名。`{column}` は列名。 */
|
|
113
|
-
sortBy: string
|
|
114
|
-
searchPlaceholder: string
|
|
115
|
-
/** 検索欄の読み上げ名。プレースホルダは入力すると消えるため名前にならない。 */
|
|
116
|
-
searchLabel: string
|
|
117
|
-
addUser: string
|
|
118
|
-
editUser: string
|
|
119
|
-
displayName: string
|
|
120
|
-
email: string
|
|
121
|
-
active: string
|
|
122
|
-
inactive: string
|
|
123
|
-
activate: string
|
|
124
|
-
deactivate: string
|
|
125
|
-
/** 行ごとの読み上げ名。`{user}` を利用者名へ置換する。 */
|
|
126
|
-
editUserAria: string
|
|
127
|
-
activateAria: string
|
|
128
|
-
deactivateAria: string
|
|
129
|
-
/** 無効化はサインインを止める。確認を取る。 */
|
|
130
|
-
/** 検索で 0 件になったときの文言 (「登録が無い」と区別する)。 */
|
|
131
|
-
emptyFiltered: string
|
|
132
|
-
/** 一覧の絞り込み結果を読み上げるための文言。 */
|
|
133
|
-
listSummary: string
|
|
134
|
-
/** 昇順で並べ替え中の列の読み上げ名。 */
|
|
135
|
-
sortedAscending: string
|
|
136
|
-
/** 降順で並べ替え中の列の読み上げ名。 */
|
|
137
|
-
sortedDescending: string
|
|
138
|
-
confirmDeactivate: string
|
|
139
|
-
empty: string
|
|
140
|
-
}
|
|
141
|
-
groupsView: {
|
|
142
|
-
/** 検索語に一致しないときの説明。空状態と混ぜると「消えた」と誤読される。 */
|
|
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
|
|
189
|
-
title: string
|
|
190
|
-
searchPlaceholder: string
|
|
191
|
-
searchLabel: string
|
|
192
|
-
addGroup: string
|
|
193
|
-
editGroup: string
|
|
194
|
-
groupKey: string
|
|
195
|
-
name: string
|
|
196
|
-
description: string
|
|
197
|
-
/** 所属人数。`{count}` を人数へ置換する。 */
|
|
198
|
-
memberCountTemplate: string
|
|
199
|
-
confirmDelete: string
|
|
200
|
-
/** 連携付きで作る前の確認。`{group}` / `{upstream}`。委譲は元に戻しづらい。 */
|
|
201
|
-
confirmCreateLinked: string
|
|
202
|
-
/** 行ごとの読み上げ名。`{group}` をグループ名へ置換する。 */
|
|
203
|
-
editGroupAria: string
|
|
204
|
-
deleteGroupAria: string
|
|
205
|
-
noDescription: string
|
|
206
|
-
groupKeyPlaceholder: string
|
|
207
|
-
namePlaceholder: string
|
|
208
|
-
empty: string
|
|
209
|
-
}
|
|
210
|
-
groupMembersView: {
|
|
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
|
|
221
|
-
selectGroup: string
|
|
222
|
-
selectPrompt: string
|
|
223
|
-
/** グループが 1 つも無い配備での説明 (「選べ」は従えない指示になる)。 */
|
|
224
|
-
noGroups: string
|
|
225
|
-
/** 所属だけに絞った結果 0 件になったときの説明。 */
|
|
226
|
-
emptyNoMembers: string
|
|
227
|
-
/** 利用者が 1 人も登録されていない配備での説明。 */
|
|
228
|
-
noUsers: string
|
|
229
|
-
/** 深いリンクが指すグループが見つからず、代替を出していることの説明。 */
|
|
230
|
-
deepLinkMissed: string
|
|
231
|
-
actionAdd: string
|
|
232
|
-
actionRemove: string
|
|
233
|
-
/** 行ごとの読み上げ名。`{user}` を利用者名へ置換する。 */
|
|
234
|
-
actionAddAria: string
|
|
235
|
-
actionRemoveAria: string
|
|
236
|
-
/** 上流所有グループで編集を出さない理由。押せない理由を書かないと故障に見える。 */
|
|
237
|
-
upstreamNotice: string
|
|
238
|
-
/** 見出し。`{group}` をグループ名へ置換する。語順が言語で変わるため位置指定にする。 */
|
|
239
|
-
membersOfTemplate: string
|
|
240
|
-
groupKeyLabel: string
|
|
241
|
-
}
|
|
242
|
-
allowlistView: {
|
|
243
|
-
title: string
|
|
244
|
-
addEntry: string
|
|
245
|
-
pattern: string
|
|
246
|
-
type: string
|
|
247
|
-
emailType: string
|
|
248
|
-
domainType: string
|
|
249
|
-
/** 一覧のバッジ表示 (短縮形)。 */
|
|
250
|
-
emailTypeShort: string
|
|
251
|
-
domainTypeShort: string
|
|
252
|
-
/** グループ単位の許可。上流ディレクトリの所属で判定される。 */
|
|
253
|
-
groupTypeShort: string
|
|
254
|
-
/** 対象列の見出し。パターンとグループが混在するため「パターン」ではない。 */
|
|
255
|
-
target: string
|
|
256
|
-
description: string
|
|
257
|
-
/** 配備全体が所有する行 (環境変数由来) の所有者表示。 */
|
|
258
|
-
deploymentOwner: string
|
|
259
|
-
/** 許可の取り消しはサインインを止める。確認を取る。 */
|
|
260
|
-
confirmDelete: string
|
|
261
|
-
/** 行ごとの読み上げ名。`{target}` を対象へ置換する。 */
|
|
262
|
-
deleteAria: string
|
|
263
|
-
empty: string
|
|
264
|
-
}
|
|
265
|
-
directoryView: {
|
|
266
|
-
title: string
|
|
267
|
-
membershipMode: string
|
|
268
|
-
directMode: string
|
|
269
|
-
transitiveMode: string
|
|
270
|
-
lastSynced: string
|
|
271
|
-
neverSynced: string
|
|
272
|
-
/** 上流に居るがローカルユーザーへ解決できていない人数。`{count}` を人数へ置換する。 */
|
|
273
|
-
unresolvedTemplate: string
|
|
274
|
-
syncPaused: string
|
|
275
|
-
syncEnabled: string
|
|
276
|
-
syncNow: string
|
|
277
|
-
syncQueued: string
|
|
278
|
-
/** 同じ範囲の要求が既に待っていて、積まれなかったことの説明。 */
|
|
279
|
-
syncAlreadyPending: string
|
|
280
|
-
/** 連携は作れたが、その直後の同期要求を積めなかったときの告知。 */
|
|
281
|
-
linkSyncNotQueued: string
|
|
282
|
-
/** 同期が滞っていることの警告。停止はセキュリティ事象である。 */
|
|
283
|
-
staleWarning: string
|
|
284
|
-
disabledWarning: string
|
|
285
|
-
/** 停止件数。`{paused}` / `{total}` を件数へ置換する。 */
|
|
286
|
-
pausedTemplate: string
|
|
287
|
-
/** 失敗したグループの列挙。`{groups}` を名前の並びへ置換する。 */
|
|
288
|
-
erroredTemplate: string
|
|
289
|
-
/** 失敗理由付きの 1 件。`{group}` / `{reason}`。 */
|
|
290
|
-
erroredItemTemplate: string
|
|
291
|
-
/** 列挙の区切り。言語で変わる。 */
|
|
292
|
-
listSeparator: string
|
|
293
|
-
/** 滞留警告に添える最終成功時刻。`{at}`。 */
|
|
294
|
-
oldestSyncedTemplate: string
|
|
295
|
-
/** 未処理の同期要求。`{count}`。 */
|
|
296
|
-
pendingTemplate: string
|
|
297
|
-
/** 連携先が 1 つも残っていないときの説明。 */
|
|
298
|
-
nothingToLink: string
|
|
299
|
-
/** グループが 1 つも無い配備での説明 (「全部が連携済み」と区別する)。 */
|
|
300
|
-
noGroupsToLink: string
|
|
301
|
-
/** 未結線の配備で操作を出さない理由。 */
|
|
302
|
-
notWiredNotice: string
|
|
303
|
-
/** 行ごとの読み上げ名。`{group}` をグループ名へ置換する。 */
|
|
304
|
-
syncNowAria: string
|
|
305
|
-
syncQueuedAria: string
|
|
306
|
-
pauseAria: string
|
|
307
|
-
resumeAria: string
|
|
308
|
-
allowGroupAria: string
|
|
309
|
-
disallowGroupAria: string
|
|
310
|
-
unlinkAria: string
|
|
311
|
-
/** グループ単位のサインイン許可を外す確認。 */
|
|
312
|
-
confirmDisallow: string
|
|
313
|
-
link: string
|
|
314
|
-
unlink: string
|
|
315
|
-
externalKey: string
|
|
316
|
-
empty: string
|
|
317
|
-
/** 連携するグループを選ぶ欄。 */
|
|
318
|
-
selectGroup: string
|
|
319
|
-
/** 選択欄が自前で持つ文言。渡さないと英語のまま出る。 */
|
|
320
|
-
/** 選択欄の入力の手引き。 */
|
|
321
|
-
pickUpstreamPlaceholder: string
|
|
322
|
-
pickerNoOptions: string
|
|
323
|
-
pickerClear: string
|
|
324
|
-
pickerToggle: string
|
|
325
|
-
/** 選択中の値の読み上げ。`{value}`。 */
|
|
326
|
-
pickerSelected: string
|
|
327
|
-
/** 候補件数の読み上げ。`{count}`。 */
|
|
328
|
-
pickerAvailable: string
|
|
329
|
-
/** 上流グループのアドレス入力。 */
|
|
330
|
-
externalKeyPlaceholder: string
|
|
331
|
-
/** 連携解除の確認。台帳と許可設定が消える。 */
|
|
332
|
-
/** 連携を作る前の確認 (元へ戻すには連携解除という別の操作が要る)。 */
|
|
333
|
-
confirmLink: string
|
|
334
|
-
confirmUnlink: string
|
|
335
|
-
/** 同期の一時停止・再開。 */
|
|
336
|
-
pause: string
|
|
337
|
-
resume: string
|
|
338
|
-
/** 許可グループに加える / 外す。 */
|
|
339
|
-
allowGroup: string
|
|
340
|
-
disallowGroup: string
|
|
341
|
-
/** グループ名と鍵の併記。`{name}` / `{key}`。 */
|
|
342
|
-
groupOptionTemplate: string
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Package default labels (English).
|
|
348
|
-
* パッケージ既定ラベル (英語)。
|
|
349
|
-
*/
|
|
350
|
-
export const defaultUserAdminLabels: UserAdminLabels = {
|
|
351
|
-
title: "Users & Groups",
|
|
352
|
-
locale: "en-US",
|
|
353
|
-
timeZone: "UTC",
|
|
354
|
-
heading: "\u{1F464} User administration",
|
|
355
|
-
common: {
|
|
356
|
-
create: "Create",
|
|
357
|
-
edit: "Edit",
|
|
358
|
-
delete: "Delete",
|
|
359
|
-
save: "Save",
|
|
360
|
-
cancel: "Cancel",
|
|
361
|
-
actions: "Actions",
|
|
362
|
-
status: "Status",
|
|
363
|
-
id: "ID",
|
|
364
|
-
readOnly: "Read-only",
|
|
365
|
-
managedUpstream: "Managed upstream",
|
|
366
|
-
idTemplate: "#{id}",
|
|
367
|
-
none: "-",
|
|
368
|
-
},
|
|
369
|
-
errors: {
|
|
370
|
-
unknownUpstream: "No group named {key} exists upstream. Check the spelling, or pick one from the list.",
|
|
371
|
-
directoryDisabled: "This deployment has no directory configured, so groups cannot be linked.",
|
|
372
|
-
invalidField: "“{field}” is missing or not a value this operation accepts.",
|
|
373
|
-
unknownIntent: "This screen does not perform that operation.",
|
|
374
|
-
fieldNames: {
|
|
375
|
-
groupId: "Group",
|
|
376
|
-
userId: "User",
|
|
377
|
-
entryId: "Entry",
|
|
378
|
-
displayName: "Display name",
|
|
379
|
-
email: "Email",
|
|
380
|
-
groupKey: "Group key",
|
|
381
|
-
name: "Name",
|
|
382
|
-
provider: "Directory provider",
|
|
383
|
-
externalKey: "Directory group address",
|
|
384
|
-
membershipMode: "Membership expansion",
|
|
385
|
-
isActive: "Active",
|
|
386
|
-
isSyncEnabled: "Synchronization",
|
|
387
|
-
pattern: "Pattern",
|
|
388
|
-
type: "Type",
|
|
389
|
-
},
|
|
390
|
-
invalidAllowlistType: "The allowlist type must be either an address or a domain.",
|
|
391
|
-
unexpected: "The operation failed. The reason is in the server log.",
|
|
392
|
-
alreadyLinked: "{key} is already linked to {group}. One upstream group can back only one local group.",
|
|
393
|
-
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.",
|
|
394
|
-
requestTooLarge: "The request was too large to process.",
|
|
395
|
-
},
|
|
396
|
-
permissions: {
|
|
397
|
-
label: "Your permissions:",
|
|
398
|
-
canWrite: "Editable",
|
|
399
|
-
canRead: "Read only",
|
|
400
|
-
canDelete: "Delete only",
|
|
401
|
-
none: "No access",
|
|
402
|
-
unknown: "Unknown",
|
|
403
|
-
},
|
|
404
|
-
tabs: {
|
|
405
|
-
users: "\u{1F464} Users",
|
|
406
|
-
groups: "\u{1F465} Groups",
|
|
407
|
-
groupMembers: "\u{1F517} Members",
|
|
408
|
-
allowlist: "\u2709\uFE0F Allowlist",
|
|
409
|
-
directory: "\u{1F504} Directory",
|
|
410
|
-
},
|
|
411
|
-
usersView: {
|
|
412
|
-
title: "Users",
|
|
413
|
-
sortBy: "Sort by {column}",
|
|
414
|
-
searchPlaceholder: "Search by name or email...",
|
|
415
|
-
searchLabel: "Search users",
|
|
416
|
-
addUser: "\uFF0B Add user",
|
|
417
|
-
editUser: "Edit user",
|
|
418
|
-
displayName: "Name",
|
|
419
|
-
email: "Email",
|
|
420
|
-
active: "Active",
|
|
421
|
-
inactive: "Inactive",
|
|
422
|
-
activate: "Activate",
|
|
423
|
-
deactivate: "Deactivate",
|
|
424
|
-
editUserAria: "Edit {user}",
|
|
425
|
-
activateAria: "Activate {user}",
|
|
426
|
-
deactivateAria: "Deactivate {user}",
|
|
427
|
-
emptyFiltered: "No user matches this search.",
|
|
428
|
-
listSummary: "Showing {shown} of {total} users.",
|
|
429
|
-
sortedAscending: "{column}, sorted ascending. Activate to sort descending.",
|
|
430
|
-
sortedDescending: "{column}, sorted descending. Activate to sort ascending.",
|
|
431
|
-
confirmDeactivate: "Deactivate {user}? They will no longer be able to sign in.",
|
|
432
|
-
empty: "No user is registered yet.",
|
|
433
|
-
},
|
|
434
|
-
groupsView: {
|
|
435
|
-
emptyFiltered: "No group matches this search",
|
|
436
|
-
createModeLabel: "How to create the group",
|
|
437
|
-
createModeLocal: "Create locally",
|
|
438
|
-
createModeUpstream: "Create from a directory group",
|
|
439
|
-
pickUpstream: "Directory group",
|
|
440
|
-
pickUpstreamPlaceholder: "Search by name or address...",
|
|
441
|
-
upstreamOptionMembers: "{count} members",
|
|
442
|
-
upstreamAlreadyLinked: "already linked to {group}",
|
|
443
|
-
providerUnset: "This deployment has no directory provider configured, so a directory group cannot be linked yet. Ask an administrator to set it.",
|
|
444
|
-
pickUpstreamFirst: "Pick a directory group first.",
|
|
445
|
-
allUpstreamLinked: "Every directory group is already linked to a local group. One upstream group can back only one local group, so unlink one first.",
|
|
446
|
-
catalogEmpty: "The directory reported no groups as of {at}. Creating from a directory group is unavailable until one exists upstream.",
|
|
447
|
-
catalogUnavailable: "The directory could not be reached, so the group list is unavailable. Enter the address by hand instead. ({reason})",
|
|
448
|
-
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})",
|
|
449
|
-
catalogObservedAt: "This list is the directory as of {at}.",
|
|
450
|
-
catalogStale: "⚠ This list is the directory as of {at} and is overdue for a refresh — a group created since then will not appear.",
|
|
451
|
-
catalogFailures: {
|
|
452
|
-
denied: "the directory refused this deployment's credential",
|
|
453
|
-
rateLimited: "the directory is rate-limiting this deployment",
|
|
454
|
-
upstreamError: "the directory reported an internal error",
|
|
455
|
-
neverObserved: "the directory has not been read yet — the synchronization job may not be running",
|
|
456
|
-
unknown: "the reason is in the server log",
|
|
457
|
-
},
|
|
458
|
-
createUpstreamNotice:
|
|
459
|
-
"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.",
|
|
460
|
-
openMembers: "Members",
|
|
461
|
-
openMembersAria: "Show the members of {group}",
|
|
462
|
-
title: "Groups",
|
|
463
|
-
searchPlaceholder: "Search by group name or key...",
|
|
464
|
-
searchLabel: "Search groups",
|
|
465
|
-
addGroup: "\uFF0B Add group",
|
|
466
|
-
editGroup: "Edit group",
|
|
467
|
-
groupKey: "Group key",
|
|
468
|
-
name: "Name",
|
|
469
|
-
description: "Description",
|
|
470
|
-
memberCountTemplate: "{count} members",
|
|
471
|
-
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.",
|
|
472
|
-
confirmCreateLinked: "Create {group} and hand its membership to {upstream}? Renaming and deleting it here becomes impossible.",
|
|
473
|
-
editGroupAria: "Edit {group}",
|
|
474
|
-
deleteGroupAria: "Delete {group}",
|
|
475
|
-
noDescription: "No description",
|
|
476
|
-
groupKeyPlaceholder: "e.g. dev-team",
|
|
477
|
-
namePlaceholder: "e.g. Development team",
|
|
478
|
-
empty: "No groups registered",
|
|
479
|
-
},
|
|
480
|
-
groupMembersView: {
|
|
481
|
-
title: "Group members",
|
|
482
|
-
searchLabel: "Search users",
|
|
483
|
-
searchPlaceholder: "Search by name or email...",
|
|
484
|
-
onlyMembers: "Members only ({count})",
|
|
485
|
-
emptyFiltered: "No user matches this search",
|
|
486
|
-
summary: "Showing {shown} of {total} users. This group has {members} member(s).",
|
|
487
|
-
selectGroup: "Select a group",
|
|
488
|
-
selectPrompt: "Select a group to manage its members",
|
|
489
|
-
noGroups: "No group exists yet. Create one on the Groups tab first.",
|
|
490
|
-
emptyNoMembers: "This group has no members yet. Untick “Members only” to add someone.",
|
|
491
|
-
noUsers: "No user is registered yet. Add one on the Users tab first.",
|
|
492
|
-
deepLinkMissed: "Group {id} was not found — it may have been deleted. Showing {group} instead.",
|
|
493
|
-
actionAdd: "Add",
|
|
494
|
-
actionRemove: "Remove",
|
|
495
|
-
actionAddAria: "Add {user} to this group",
|
|
496
|
-
actionRemoveAria: "Remove {user} from this group",
|
|
497
|
-
upstreamNotice: "Membership of this group is owned by the upstream directory. Edit it there \u2014 a local change would be reverted at the next synchronization.",
|
|
498
|
-
membersOfTemplate: "Members of {group}",
|
|
499
|
-
groupKeyLabel: "Group key",
|
|
500
|
-
},
|
|
501
|
-
allowlistView: {
|
|
502
|
-
title: "Sign-in allowlist",
|
|
503
|
-
addEntry: "\uFF0B Add pattern",
|
|
504
|
-
pattern: "Pattern (e.g. @example.com or user@example.com)",
|
|
505
|
-
type: "Type",
|
|
506
|
-
emailType: "Exact email match",
|
|
507
|
-
domainType: "Domain match",
|
|
508
|
-
emailTypeShort: "Email",
|
|
509
|
-
domainTypeShort: "Domain",
|
|
510
|
-
groupTypeShort: "Group",
|
|
511
|
-
target: "Target",
|
|
512
|
-
description: "Description",
|
|
513
|
-
deploymentOwner: "Deployment-wide",
|
|
514
|
-
confirmDelete: "Remove {target} from the sign-in allowlist? Anyone who could sign in only through it will be locked out.",
|
|
515
|
-
deleteAria: "Remove the allowlist entry for {target}",
|
|
516
|
-
empty: "No allowlist entries registered",
|
|
517
|
-
},
|
|
518
|
-
directoryView: {
|
|
519
|
-
title: "Directory synchronization",
|
|
520
|
-
membershipMode: "Membership",
|
|
521
|
-
directMode: "Direct only",
|
|
522
|
-
transitiveMode: "Nested expanded",
|
|
523
|
-
lastSynced: "Last synced",
|
|
524
|
-
neverSynced: "Never",
|
|
525
|
-
unresolvedTemplate: "{count} unresolved",
|
|
526
|
-
syncPaused: "Paused",
|
|
527
|
-
syncEnabled: "Active",
|
|
528
|
-
syncNow: "Sync now",
|
|
529
|
-
syncQueued: "Queued",
|
|
530
|
-
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.",
|
|
531
|
-
linkSyncNotQueued: 'The link was created, but a synchronization request could not be queued. Use "Sync now" on the Directory tab.',
|
|
532
|
-
staleWarning: "Synchronization is overdue. Until it runs, people removed upstream keep their access.",
|
|
533
|
-
disabledWarning: "Directory synchronization is not wired for this deployment. Existing memberships remain in force and are no longer being refreshed.",
|
|
534
|
-
pausedTemplate: "{paused} of {total} links are paused",
|
|
535
|
-
erroredTemplate: "Last synchronization failed for {groups}",
|
|
536
|
-
erroredItemTemplate: "{group}: {reason}",
|
|
537
|
-
listSeparator: ", ",
|
|
538
|
-
oldestSyncedTemplate: "oldest successful sync: {at}",
|
|
539
|
-
pendingTemplate: "{count} sync requests are queued",
|
|
540
|
-
nothingToLink: "Every group is already linked to a directory.",
|
|
541
|
-
noGroupsToLink: "No group exists yet. Create one on the Groups tab first.",
|
|
542
|
-
notWiredNotice: "Directory synchronization is not wired for this deployment, so links cannot be created or changed here.",
|
|
543
|
-
syncNowAria: "Synchronize {group} now",
|
|
544
|
-
syncQueuedAria: "A synchronization of {group} is queued",
|
|
545
|
-
pauseAria: "Pause synchronization of {group}",
|
|
546
|
-
resumeAria: "Resume synchronization of {group}",
|
|
547
|
-
allowGroupAria: "Allow members of {group} to sign in",
|
|
548
|
-
disallowGroupAria: "Stop allowing members of {group} to sign in",
|
|
549
|
-
unlinkAria: "Unlink {group} from the directory",
|
|
550
|
-
confirmDisallow: "Stop allowing {group} to sign in? Anyone who could sign in only through it will be locked out.",
|
|
551
|
-
link: "Link to a directory group",
|
|
552
|
-
unlink: "Unlink",
|
|
553
|
-
externalKey: "Upstream group",
|
|
554
|
-
empty: "No groups are linked to a directory",
|
|
555
|
-
selectGroup: "Group to link",
|
|
556
|
-
pickUpstreamPlaceholder: "Search by name or address...",
|
|
557
|
-
pickerNoOptions: "No matching group",
|
|
558
|
-
pickerClear: "Clear the selection",
|
|
559
|
-
pickerToggle: "Show the group list",
|
|
560
|
-
pickerSelected: "Selected: {value}",
|
|
561
|
-
pickerAvailable: "{count} groups available",
|
|
562
|
-
externalKeyPlaceholder: "e.g. dev-team@example.com",
|
|
563
|
-
confirmLink: "Hand {group}'s membership to {upstream}? Renaming, deleting, and editing its members here becomes impossible.",
|
|
564
|
-
confirmUnlink: "Unlink {group} from {upstream}? Its member ledger and group-based sign-in permission are removed.",
|
|
565
|
-
pause: "Pause",
|
|
566
|
-
resume: "Resume",
|
|
567
|
-
allowGroup: "Allow sign-in",
|
|
568
|
-
disallowGroup: "Stop allowing sign-in",
|
|
569
|
-
groupOptionTemplate: "{name} ({key})",
|
|
570
|
-
},
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
/**
|
|
574
|
-
* Standard Japanese labels for user administration (opt-in).
|
|
575
|
-
* ユーザー管理の標準日本語ラベル (アプリ側で明示注入して使う)。
|
|
576
|
-
*/
|
|
577
|
-
export const jaUserAdminLabels: UserAdminLabels = {
|
|
578
|
-
title: "ユーザー・グループ管理",
|
|
579
|
-
locale: "ja-JP",
|
|
580
|
-
timeZone: "Asia/Tokyo",
|
|
581
|
-
heading: "\u{1F464} ユーザー管理",
|
|
582
|
-
common: {
|
|
583
|
-
create: "作成",
|
|
584
|
-
edit: "編集",
|
|
585
|
-
delete: "削除",
|
|
586
|
-
save: "保存",
|
|
587
|
-
cancel: "キャンセル",
|
|
588
|
-
actions: "操作",
|
|
589
|
-
status: "状態",
|
|
590
|
-
id: "ID",
|
|
591
|
-
readOnly: "変更不可",
|
|
592
|
-
managedUpstream: "上流が所有",
|
|
593
|
-
idTemplate: "#{id}",
|
|
594
|
-
none: "-",
|
|
595
|
-
},
|
|
596
|
-
errors: {
|
|
597
|
-
unknownUpstream: "上流に {key} というグループが見つかりません。綴りを確認するか、一覧から選んでください。",
|
|
598
|
-
directoryDisabled: "この配備にはディレクトリが設定されていないため、グループを連携できません。",
|
|
599
|
-
invalidField: "「{field}」が未指定か、この操作が受け付けられない値です。",
|
|
600
|
-
unknownIntent: "この画面では、その操作を行いません。",
|
|
601
|
-
fieldNames: {
|
|
602
|
-
groupId: "グループ",
|
|
603
|
-
userId: "ユーザー",
|
|
604
|
-
entryId: "項目",
|
|
605
|
-
displayName: "表示名",
|
|
606
|
-
email: "メールアドレス",
|
|
607
|
-
groupKey: "グループキー",
|
|
608
|
-
name: "名前",
|
|
609
|
-
provider: "連携プロバイダ",
|
|
610
|
-
externalKey: "ディレクトリのグループアドレス",
|
|
611
|
-
membershipMode: "所属の展開",
|
|
612
|
-
isActive: "有効",
|
|
613
|
-
isSyncEnabled: "同期",
|
|
614
|
-
pattern: "パターン",
|
|
615
|
-
type: "種別",
|
|
616
|
-
},
|
|
617
|
-
invalidAllowlistType: "許可リストの種別は、アドレスかドメインのいずれかで指定してください。",
|
|
618
|
-
unexpected: "操作に失敗しました。理由はサーバーのログに出ています。",
|
|
619
|
-
alreadyLinked: "{key} は既に {group} と連携しています。1 つの上流グループを 2 つのローカルグループへ繋ぐことはできません。",
|
|
620
|
-
forbidden: "この操作を行う権限がありません。今の権限はヘッダーのバッジに出ています。必要であれば管理者に付与を依頼してください。",
|
|
621
|
-
requestTooLarge: "送信された内容が大きすぎるため処理できませんでした。",
|
|
622
|
-
},
|
|
623
|
-
permissions: {
|
|
624
|
-
label: "あなたの権限:",
|
|
625
|
-
canWrite: "編集可",
|
|
626
|
-
canRead: "閲覧のみ",
|
|
627
|
-
canDelete: "削除のみ",
|
|
628
|
-
none: "権限なし",
|
|
629
|
-
unknown: "権限不明",
|
|
630
|
-
},
|
|
631
|
-
tabs: {
|
|
632
|
-
users: "\u{1F464} ユーザー一覧",
|
|
633
|
-
groups: "\u{1F465} ユーザーグループ",
|
|
634
|
-
groupMembers: "\u{1F517} グループメンバー",
|
|
635
|
-
allowlist: "\u2709\uFE0F アクセス許可リスト",
|
|
636
|
-
directory: "\u{1F504} ディレクトリ連携",
|
|
637
|
-
},
|
|
638
|
-
usersView: {
|
|
639
|
-
title: "ユーザー管理",
|
|
640
|
-
sortBy: "{column} で並べ替え",
|
|
641
|
-
searchPlaceholder: "表示名や Email で検索...",
|
|
642
|
-
searchLabel: "ユーザーを検索",
|
|
643
|
-
addUser: "\uFF0B ユーザー追加",
|
|
644
|
-
editUser: "ユーザー編集",
|
|
645
|
-
displayName: "表示名",
|
|
646
|
-
email: "Email",
|
|
647
|
-
active: "有効",
|
|
648
|
-
inactive: "無効",
|
|
649
|
-
activate: "有効化",
|
|
650
|
-
deactivate: "無効化",
|
|
651
|
-
editUserAria: "{user} を編集",
|
|
652
|
-
activateAria: "{user} を有効化",
|
|
653
|
-
deactivateAria: "{user} を無効化",
|
|
654
|
-
emptyFiltered: "検索条件に一致する利用者はいません。",
|
|
655
|
-
listSummary: "{total} 人中 {shown} 人を表示しています。",
|
|
656
|
-
sortedAscending: "{column} (昇順で並べ替え中)。押すと降順になります。",
|
|
657
|
-
sortedDescending: "{column} (降順で並べ替え中)。押すと昇順になります。",
|
|
658
|
-
confirmDeactivate: "{user} を無効化しますか? 以後サインインできなくなります。",
|
|
659
|
-
empty: "ユーザーが登録されていません。",
|
|
660
|
-
},
|
|
661
|
-
groupsView: {
|
|
662
|
-
emptyFiltered: "検索条件に一致するグループはありません",
|
|
663
|
-
createModeLabel: "作成方法",
|
|
664
|
-
createModeLocal: "ローカルに作成",
|
|
665
|
-
createModeUpstream: "ディレクトリのグループから作成",
|
|
666
|
-
pickUpstream: "ディレクトリのグループ",
|
|
667
|
-
pickUpstreamPlaceholder: "名前かアドレスで検索...",
|
|
668
|
-
upstreamOptionMembers: "{count} 名",
|
|
669
|
-
upstreamAlreadyLinked: "{group} と連携済み",
|
|
670
|
-
providerUnset: "この配備には連携プロバイダ名が設定されていないため、ディレクトリのグループを連携できません。管理者に設定を依頼してください。",
|
|
671
|
-
pickUpstreamFirst: "先にディレクトリのグループを選んでください。",
|
|
672
|
-
allUpstreamLinked: "ディレクトリのグループはすべて、いずれかのローカルグループと連携済みです。1 つの上流グループを繋げる先は 1 つだけなので、繋ぎ替えるにはどれかの連携を解除してください。",
|
|
673
|
-
catalogEmpty: "{at} 時点で、上流にグループが 1 つもありませんでした。上流にグループができるまで、ディレクトリからの作成はできません。",
|
|
674
|
-
catalogUnavailable: "上流へ到達できないため、グループ一覧を出せません。アドレスを手入力してください。({reason})",
|
|
675
|
-
catalogUnavailableHere: "上流へ到達できないため、ディレクトリからの作成はできません。ローカルに作成したうえで、連携タブから連携してください。({reason})",
|
|
676
|
-
catalogObservedAt: "この一覧は {at} 時点のディレクトリです。",
|
|
677
|
-
catalogStale: "⚠ この一覧は {at} 時点のもので、更新が滞っています。それ以降に作られたグループは出てきません。",
|
|
678
|
-
catalogFailures: {
|
|
679
|
-
denied: "この配備の資格情報が上流に拒否されました",
|
|
680
|
-
rateLimited: "上流がこの配備の呼び出しを制限しています",
|
|
681
|
-
upstreamError: "上流が内部エラーを返しました",
|
|
682
|
-
neverObserved: "上流をまだ一度も読めていません (同期ジョブが動いていない可能性があります)",
|
|
683
|
-
unknown: "理由はサーバーのログに出ています",
|
|
684
|
-
},
|
|
685
|
-
createUpstreamNotice: "グループの作成と連携を 1 手で行います。以後、所属は上流が所有し — この画面からは名称・説明の変更も削除もできなくなります。戻す手段は連携解除だけで、それはメンバー台帳とグループ単位のサインイン許可を消します。",
|
|
686
|
-
openMembers: "メンバー",
|
|
687
|
-
openMembersAria: "{group} のメンバーを表示",
|
|
688
|
-
title: "ユーザーグループ管理",
|
|
689
|
-
searchPlaceholder: "グループ名やキーで検索...",
|
|
690
|
-
searchLabel: "グループを検索",
|
|
691
|
-
addGroup: "\uFF0B グループ追加",
|
|
692
|
-
editGroup: "グループ編集",
|
|
693
|
-
groupKey: "グループキー",
|
|
694
|
-
name: "名称",
|
|
695
|
-
description: "説明",
|
|
696
|
-
memberCountTemplate: "所属 {count} 名",
|
|
697
|
-
confirmDelete: "{group} を削除しますか? 所属 {count} 件も一緒に消え、このグループでしかサインインできない人はサインインできなくなります。",
|
|
698
|
-
confirmCreateLinked: "{group} を作成し、その所属を {upstream} に委ねますか? 以後この画面から名称変更と削除ができなくなります。",
|
|
699
|
-
editGroupAria: "{group} を編集",
|
|
700
|
-
deleteGroupAria: "{group} を削除",
|
|
701
|
-
noDescription: "説明なし",
|
|
702
|
-
groupKeyPlaceholder: "例: dev-team",
|
|
703
|
-
namePlaceholder: "例: 開発チーム",
|
|
704
|
-
empty: "ユーザーグループが登録されていません",
|
|
705
|
-
},
|
|
706
|
-
groupMembersView: {
|
|
707
|
-
title: "グループメンバー管理",
|
|
708
|
-
searchLabel: "利用者を検索",
|
|
709
|
-
searchPlaceholder: "表示名や Email で検索...",
|
|
710
|
-
onlyMembers: "所属のみ表示 ({count} 名)",
|
|
711
|
-
emptyFiltered: "検索条件に一致する利用者はいません",
|
|
712
|
-
summary: "{total} 名のうち {shown} 名を表示中。このグループの所属は {members} 名です。",
|
|
713
|
-
selectGroup: "グループ選択",
|
|
714
|
-
selectPrompt: "グループを選択してください",
|
|
715
|
-
noGroups: "グループがまだ 1 つもありません。先にグループタブで作成してください。",
|
|
716
|
-
emptyNoMembers: "このグループにはまだメンバーがいません。「所属のみ表示」のチェックを外すと追加できます。",
|
|
717
|
-
noUsers: "利用者がまだ 1 人も登録されていません。先にユーザータブで追加してください。",
|
|
718
|
-
deepLinkMissed: "グループ {id} が見つかりませんでした (削除された可能性があります)。代わりに {group} を表示しています。",
|
|
719
|
-
actionAdd: "追加",
|
|
720
|
-
actionRemove: "除外",
|
|
721
|
-
actionAddAria: "{user} をこのグループへ追加",
|
|
722
|
-
actionRemoveAria: "{user} をこのグループから除外",
|
|
723
|
-
upstreamNotice: "このグループの所属は上流ディレクトリが所有しています。変更は上流で行ってください (ここで変えても次の同期で元に戻ります)。",
|
|
724
|
-
membersOfTemplate: "{group} の所属メンバー",
|
|
725
|
-
groupKeyLabel: "グループキー",
|
|
726
|
-
},
|
|
727
|
-
allowlistView: {
|
|
728
|
-
title: "サインイン許可リスト",
|
|
729
|
-
addEntry: "\uFF0B パターン追加",
|
|
730
|
-
pattern: "パターン (例: @example.com または user@example.com)",
|
|
731
|
-
type: "種別",
|
|
732
|
-
emailType: "メールアドレス完全一致",
|
|
733
|
-
domainType: "ドメイン一致",
|
|
734
|
-
emailTypeShort: "メール",
|
|
735
|
-
domainTypeShort: "ドメイン",
|
|
736
|
-
groupTypeShort: "グループ",
|
|
737
|
-
target: "対象",
|
|
738
|
-
description: "説明 / 備考",
|
|
739
|
-
deploymentOwner: "配備共通",
|
|
740
|
-
confirmDelete: "{target} を許可リストから削除しますか? これでしかサインインできない人はログインできなくなります。",
|
|
741
|
-
deleteAria: "{target} の許可を削除",
|
|
742
|
-
empty: "サインイン許可リストに登録がありません。",
|
|
743
|
-
},
|
|
744
|
-
directoryView: {
|
|
745
|
-
title: "ディレクトリ同期",
|
|
746
|
-
membershipMode: "所属の展開",
|
|
747
|
-
directMode: "直接所属のみ",
|
|
748
|
-
transitiveMode: "入れ子を展開",
|
|
749
|
-
lastSynced: "最終同期",
|
|
750
|
-
neverSynced: "未実行",
|
|
751
|
-
unresolvedTemplate: "{count} 件が未解決",
|
|
752
|
-
syncPaused: "停止中",
|
|
753
|
-
syncEnabled: "有効",
|
|
754
|
-
syncNow: "今すぐ同期",
|
|
755
|
-
syncQueued: "同期を要求しました",
|
|
756
|
-
syncAlreadyPending: "この範囲の同期要求は既に待機中のため、新しくは積みませんでした。いつまでも完了しない場合、同期ジョブが動いていない可能性があります。",
|
|
757
|
-
linkSyncNotQueued: "連携は作成しましたが、同期要求を積めませんでした。ディレクトリ連携タブの「今すぐ同期」で要求してください。",
|
|
758
|
-
staleWarning: "同期が滞っています。実行されるまで、上流から外れた人のアクセスは残り続けます。",
|
|
759
|
-
disabledWarning: "この配備ではディレクトリ同期が結線されていません。既存の所属はそのまま有効で、更新だけが止まっています。",
|
|
760
|
-
pausedTemplate: "連携 {total} 件のうち {paused} 件が停止中",
|
|
761
|
-
erroredTemplate: "直近の同期に失敗したグループ: {groups}",
|
|
762
|
-
erroredItemTemplate: "{group}: {reason}",
|
|
763
|
-
listSeparator: " / ",
|
|
764
|
-
oldestSyncedTemplate: "最も古い同期成功: {at}",
|
|
765
|
-
pendingTemplate: "{count} 件の同期要求が未処理",
|
|
766
|
-
nothingToLink: "すべてのグループが既にディレクトリと連携しています。",
|
|
767
|
-
noGroupsToLink: "グループがまだ 1 つもありません。先にグループタブで作成してください。",
|
|
768
|
-
notWiredNotice: "この配備ではディレクトリ同期が結線されていないため、ここから連携の作成・変更はできません。",
|
|
769
|
-
syncNowAria: "{group} を今すぐ同期",
|
|
770
|
-
syncQueuedAria: "{group} の同期を要求済み",
|
|
771
|
-
pauseAria: "{group} の同期を一時停止",
|
|
772
|
-
resumeAria: "{group} の同期を再開",
|
|
773
|
-
allowGroupAria: "{group} のメンバーのサインインを許可",
|
|
774
|
-
disallowGroupAria: "{group} のメンバーのサインイン許可を外す",
|
|
775
|
-
unlinkAria: "{group} のディレクトリ連携を解除",
|
|
776
|
-
confirmDisallow: "{group} のサインイン許可を外しますか? これでしかサインインできない人はログインできなくなります。",
|
|
777
|
-
link: "ディレクトリのグループと連携する",
|
|
778
|
-
unlink: "連携を解除",
|
|
779
|
-
externalKey: "上流グループ",
|
|
780
|
-
empty: "ディレクトリと連携しているグループはありません",
|
|
781
|
-
selectGroup: "連携するグループ",
|
|
782
|
-
pickUpstreamPlaceholder: "名前かアドレスで検索...",
|
|
783
|
-
pickerNoOptions: "一致するグループがありません",
|
|
784
|
-
pickerClear: "選択を解除",
|
|
785
|
-
pickerToggle: "グループ一覧を開く",
|
|
786
|
-
pickerSelected: "選択中: {value}",
|
|
787
|
-
pickerAvailable: "候補 {count} 件",
|
|
788
|
-
externalKeyPlaceholder: "例: dev-team@example.com",
|
|
789
|
-
confirmLink: "{group} の所属を {upstream} に委ねますか? 以後この画面から名称変更・削除・メンバー編集ができなくなります。",
|
|
790
|
-
confirmUnlink: "{group} と {upstream} の連携を解除しますか? メンバー台帳とグループ単位のサインイン許可が失われます。",
|
|
791
|
-
pause: "一時停止",
|
|
792
|
-
resume: "再開",
|
|
793
|
-
allowGroup: "サインインを許可",
|
|
794
|
-
disallowGroup: "サインイン許可を外す",
|
|
795
|
-
groupOptionTemplate: "{name} ({key})",
|
|
796
|
-
},
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
/** セクション単位の部分上書き。 */
|
|
800
|
-
export type PartialUserAdminLabels = {
|
|
801
|
-
title?: string
|
|
802
|
-
locale?: string
|
|
803
|
-
timeZone?: string
|
|
804
|
-
common?: Partial<UserAdminLabels["common"]>
|
|
805
|
-
errors?: Partial<UserAdminLabels["errors"]>
|
|
806
|
-
heading?: string
|
|
807
|
-
permissions?: Partial<UserAdminLabels["permissions"]>
|
|
808
|
-
tabs?: Partial<UserAdminLabels["tabs"]>
|
|
809
|
-
usersView?: Partial<UserAdminLabels["usersView"]>
|
|
810
|
-
groupsView?: Partial<UserAdminLabels["groupsView"]>
|
|
811
|
-
groupMembersView?: Partial<UserAdminLabels["groupMembersView"]>
|
|
812
|
-
allowlistView?: Partial<UserAdminLabels["allowlistView"]>
|
|
813
|
-
directoryView?: Partial<UserAdminLabels["directoryView"]>
|
|
814
|
-
}
|
|
815
|
-
|
|
816
|
-
/**
|
|
817
|
-
* Shallow per-section merge over the English defaults.
|
|
818
|
-
* 英語既定に対してセクション単位で浅くマージする処理。
|
|
819
|
-
*/
|
|
820
|
-
export function resolveUserAdminLabels(over?: PartialUserAdminLabels): UserAdminLabels {
|
|
821
|
-
const d = defaultUserAdminLabels
|
|
822
|
-
if (!over) return d
|
|
823
|
-
return {
|
|
824
|
-
title: over.title ?? d.title,
|
|
825
|
-
locale: over.locale ?? d.locale,
|
|
826
|
-
timeZone: over.timeZone ?? d.timeZone,
|
|
827
|
-
heading: over.heading ?? d.heading,
|
|
828
|
-
common: { ...d.common, ...over.common },
|
|
829
|
-
errors: { ...d.errors, ...over.errors },
|
|
830
|
-
permissions: { ...d.permissions, ...over.permissions },
|
|
831
|
-
tabs: { ...d.tabs, ...over.tabs },
|
|
832
|
-
usersView: { ...d.usersView, ...over.usersView },
|
|
833
|
-
groupsView: { ...d.groupsView, ...over.groupsView },
|
|
834
|
-
groupMembersView: { ...d.groupMembersView, ...over.groupMembersView },
|
|
835
|
-
allowlistView: { ...d.allowlistView, ...over.allowlistView },
|
|
836
|
-
directoryView: { ...d.directoryView, ...over.directoryView },
|
|
837
|
-
}
|
|
838
|
-
}
|