@things-factory/auth-ui 10.1.206 → 10.1.212

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.
Files changed (32) hide show
  1. package/dist-client/auth-style-sign.js +15 -7
  2. package/dist-client/auth-style-sign.js.map +1 -1
  3. package/dist-client/components/abstract-sign.d.ts +9 -1
  4. package/dist-client/components/abstract-sign.js +48 -28
  5. package/dist-client/components/abstract-sign.js.map +1 -1
  6. package/dist-client/components/my-passkeys.d.ts +31 -0
  7. package/dist-client/components/my-passkeys.js +247 -0
  8. package/dist-client/components/my-passkeys.js.map +1 -0
  9. package/dist-client/components/profile-component.d.ts +1 -1
  10. package/dist-client/components/profile-component.js +4 -53
  11. package/dist-client/components/profile-component.js.map +1 -1
  12. package/dist-client/entries/auth/passkey-offer.d.ts +27 -0
  13. package/dist-client/entries/auth/passkey-offer.js +161 -0
  14. package/dist-client/entries/auth/passkey-offer.js.map +1 -0
  15. package/dist-client/tsconfig.tsbuildinfo +1 -1
  16. package/dist-client/utils/audit-words.js +3 -1
  17. package/dist-client/utils/audit-words.js.map +1 -1
  18. package/dist-client/utils/audit-words.test.js +6 -0
  19. package/dist-client/utils/audit-words.test.js.map +1 -1
  20. package/dist-client/utils/passkey.d.ts +38 -0
  21. package/dist-client/utils/passkey.js +84 -0
  22. package/dist-client/utils/passkey.js.map +1 -0
  23. package/dist-client/utils/passkey.test.d.ts +1 -0
  24. package/dist-client/utils/passkey.test.js +75 -0
  25. package/dist-client/utils/passkey.test.js.map +1 -0
  26. package/package.json +5 -5
  27. package/translations/en.json +17 -1
  28. package/translations/es.json +17 -1
  29. package/translations/ja.json +17 -1
  30. package/translations/ko.json +18 -2
  31. package/translations/ms.json +17 -1
  32. package/translations/zh.json +17 -1
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "button.accept invitation": "招待を受ける",
3
3
  "button.activate": "アクティブ化",
4
+ "button.add passkey": "パスキーを登録",
4
5
  "button.close": "閉じる",
5
6
  "button.confirm": "確認",
6
7
  "button.copy": "コピー",
@@ -12,23 +13,26 @@
12
13
  "button.delete this appliance": "この機器を削除",
13
14
  "button.delete user": "ユーザー削除",
14
15
  "button.detail": "詳細",
16
+ "button.do not ask on this device": "このデバイスでは今後確認しない",
15
17
  "button.generate new access token": "新しいアクセス トークンを生成",
16
18
  "button.generate new secret": "シークレットを新規発行",
17
19
  "button.go to home": "ホームへ移動",
18
20
  "button.hide": "隠す",
21
+ "button.later": "後で",
19
22
  "button.logout": "ログアウト",
20
23
  "button.name it yourself": "name it yourself",
21
24
  "button.register": "登録",
25
+ "button.register on this device": "このデバイスに登録",
22
26
  "button.renew access token": "アクセストークンを更新",
23
27
  "button.resend": "再送する",
24
28
  "button.reveal": "表示",
25
29
  "button.revoke credential": "資格情報を取り消す",
26
30
  "button.save": "保存",
27
- "button.security-key registration": "セキュリティキー登録",
28
31
  "button.show-all": "すべて表示",
29
32
  "button.show-orphans-only": "Orphanのみ表示",
30
33
  "button.sign in": "ログイン",
31
34
  "button.sign_in": "ログイン",
35
+ "button.signin with passkey": "パスキーでサインイン",
32
36
  "button.stand it here": "ここに作る",
33
37
  "button.submit": "送信",
34
38
  "button.terminate contract": "契約解除",
@@ -278,7 +282,9 @@
278
282
  "title.open attributes view": "属性リストを見る",
279
283
  "title.owner_transfer": "$t(term.domain)所有者変更",
280
284
  "title.partners": "パートナー管理",
285
+ "title.passkey offer": "パスキーの登録",
281
286
  "title.protected-privileges": "保護されている権限",
287
+ "title.remove passkey": "パスキーの削除",
282
288
  "title.reset password": "パスワード リセット",
283
289
  "title.secure-ip-list": "セキュアな IP リスト",
284
290
  "title.sign in": "ログイン",
@@ -305,6 +311,7 @@
305
311
  "label.execute": "実行",
306
312
  "label.inherited": "継承",
307
313
  "label.ours": "自分のロール",
314
+ "label.passkey": "パスキー",
308
315
  "label.read": "読み取り",
309
316
  "label.write": "書き込み",
310
317
  "text.account exists so joins immediately": "このアカウントはすでにあります。追加するとすぐに入れます。",
@@ -325,6 +332,7 @@
325
332
  "text.no description for this role": "説明はまだありません — ロール一覧で書けます。",
326
333
  "text.no one holds this role yet": "このロールを持つ人はまだいません。",
327
334
  "text.no other user yet": "まだ他のユーザーはいません",
335
+ "text.no passkey yet": "登録したパスキーはありません。",
328
336
  "text.no privilege declared in this deployment": "このデプロイで宣言された権限はまだありません。ロールに付けるものがありません。",
329
337
  "text.no privilege granted": "何も開かない",
330
338
  "text.no role assigned": "ロールなし",
@@ -340,6 +348,7 @@
340
348
  "text.please enter username or email": "ユーザー名またはメールを入力してください",
341
349
  "text.please try again": "しばらくしてからもう一度お試しください。",
342
350
  "text.remove the role from x people first": "このロールを削除するには、まず持っている {x} 人から外してください。",
351
+ "text.removed passkey cannot sign in": "{{name}} を削除すると、そのパスキーではサインインできなくなります。",
343
352
  "text.role belongs to x domain and is edited there": "このロールは {x} で定義されており、そちらでのみ編集できます。ここで付与できるため一覧に表示されています。",
344
353
  "text.roles in use are kept": "誰かが持っているロールは残します。使われていないものだけ削除されます。",
345
354
  "text.they lose access to this domain but keep the account": "この$t(term.domain)では作業できなくなります。アカウントは残るので、後で再び追加できます。",
@@ -413,6 +422,11 @@
413
422
  "access-request.text.denied lately": "{at} に拒否されました: {reason}。再度リクエストするには、何が変わったかを書いてください。",
414
423
  "access-request.button.request": "権限をリクエスト…",
415
424
  "text.parent roles are changed by the parent domain": "上位$t(term.domain)のロールは、その$t(term.domain)で権限を決める人だけが変更できます。",
425
+ "text.passkey added on": "{{date}} 登録",
426
+ "text.passkey already on this device": "このデバイスにはすでにパスキーが登録されています。",
427
+ "text.passkey last used on": "{{date}} 最終使用",
428
+ "text.passkey name": "パスキーの名前",
429
+ "text.passkey offer": "このデバイスにパスキーを登録すると、次回からパスワードの代わりに指紋・顔認証・デバイスのPINでサインインできます。スマートフォンに登録したパスキーで他のコンピューターにもサインインできます。",
416
430
  "access-request.issue.role-belongs-to-parent": "{role} は上位$t(term.domain)のロールです。その$t(term.domain)で権限を決める人だけが付与できます。",
417
431
  "access-request.dock.intro title": "AI と一緒に権限リクエストを整理しましょう",
418
432
  "access-request.dock.intro subtitle": "保留中のリクエストを読んで決定案を作ります。決定はカードで押します。",
@@ -451,6 +465,7 @@
451
465
  "audit.outcome.denied": "拒否",
452
466
  "audit.outcome.error": "エラー",
453
467
  "audit.outcome.failed": "失敗",
468
+ "audit.method.passkey": "パスキー",
454
469
  "audit.button.all-people": "全員",
455
470
  "audit.button.all-privileges": "すべての権限",
456
471
  "audit.health.failures": "記録失敗 {count}件({since} 以降)",
@@ -477,6 +492,7 @@
477
492
  "audit.kind.password.reset-by-admin": "パスワード初期化",
478
493
  "audit.kind.credential.issue": "認証情報の再発行",
479
494
  "audit.kind.webauthn.register": "パスキー登録",
495
+ "audit.kind.webauthn.remove": "パスキー削除",
480
496
  "audit.kind.role.grant": "ロール付与",
481
497
  "audit.kind.role.revoke": "ロール取消",
482
498
  "audit.kind.role.privilege.add": "ロールに権限追加",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "button.accept invitation": "초대 수락",
3
3
  "button.activate": "활성화",
4
+ "button.add passkey": "패스키 등록",
4
5
  "button.add what it can do": "권한 추가",
5
6
  "button.close": "닫기",
6
7
  "button.confirm": "확인",
@@ -13,15 +14,18 @@
13
14
  "button.delete this appliance": "단말장치 삭제",
14
15
  "button.delete user": "사용자 삭제",
15
16
  "button.detail": "상세",
17
+ "button.do not ask on this device": "이 기기에서 다시 묻지 않기",
16
18
  "button.drop": "연결 해제",
17
19
  "button.edit privileges": "권한 편집",
18
20
  "button.generate new access token": "새토큰 생성",
19
21
  "button.generate new secret": "secret 새로 발급",
20
22
  "button.go to home": "홈으로 이동",
21
23
  "button.hide": "가리기",
24
+ "button.later": "나중에",
22
25
  "button.logout": "로그아웃",
23
26
  "button.name it yourself": "직접 이름 짓기",
24
27
  "button.register": "등록",
28
+ "button.register on this device": "이 기기에 등록",
25
29
  "button.remove from domain": "$t(term.domain)에서 제외",
26
30
  "button.remove owner": "소유자 해제",
27
31
  "button.renew access token": "access token 갱신",
@@ -29,11 +33,11 @@
29
33
  "button.reveal": "보기",
30
34
  "button.revoke credential": "자격증명 취소",
31
35
  "button.save": "저장",
32
- "button.security-key registration": "보안인증키 등록",
33
36
  "button.show-all": "전체 보기",
34
37
  "button.show-orphans-only": "Orphan 만 보기",
35
38
  "button.sign in": "로그인",
36
39
  "button.sign_in": "로그인",
40
+ "button.signin with passkey": "패스키로 로그인",
37
41
  "button.stand it here": "현재 도메인에 생성",
38
42
  "button.submit": "전송",
39
43
  "button.terminate contract": "계약 해지",
@@ -143,6 +147,7 @@
143
147
  "label.locked-user": "잠김",
144
148
  "label.login_history": "로그인 이력",
145
149
  "label.ours": "우리 역할",
150
+ "label.passkey": "패스키",
146
151
  "label.password": "비밀번호",
147
152
  "label.privilege": "권한",
148
153
  "label.protected-request-ip": "안전한 요청 IP",
@@ -244,6 +249,7 @@
244
249
  "text.no domain available": "사용할 수 있는 $t(term.domain)이 없습니다.",
245
250
  "text.no one holds this role yet": "이 역할을 가진 사람이 아직 없습니다.",
246
251
  "text.no other user yet": "아직 다른 사용자가 없습니다",
252
+ "text.no passkey yet": "등록한 패스키가 없습니다.",
247
253
  "text.no privilege declared in this deployment": "현재 시스템에 정의된 권한이 없어 역할에 추가할 수 없습니다.",
248
254
  "text.no privilege granted": "부여된 권한 없음",
249
255
  "text.no role assigned": "역할 없음",
@@ -273,6 +279,7 @@
273
279
  "text.registered roles": "등록된 역할 리스트",
274
280
  "text.remaining time": "{days}일 {hours}시간 {mins}분 {secs}초 남았습니다",
275
281
  "text.remove the role from x people first": "이 역할을 삭제하려면 먼저 역할을 보유한 사용자 {x}명의 역할 부여를 해제해 주세요.",
282
+ "text.removed passkey cannot sign in": "{{name}}을(를) 삭제하면 그 패스키로는 더 이상 로그인할 수 없습니다.",
276
283
  "text.revoking stops every token this appliance holds": "이 단말장치의 모든 토큰이 무효화되어 다음 요청부터 시스템에 접근할 수 없습니다. 접근을 재개하려면 새 액세스 토큰을 발급해야 합니다.",
277
284
  "text.role belongs to x domain and is edited there": "이 역할은 {x}에 정의되어 있어 해당 도메인에서만 수정할 수 있습니다. 현재 도메인에서도 사용자에게 부여할 수 있습니다.",
278
285
  "text.role_management": "역할 관리",
@@ -345,7 +352,9 @@
345
352
  "title.open attributes view": "속성목록 보기",
346
353
  "title.owner_transfer": "$t(term.domain) 소유자 변경하기",
347
354
  "title.partners": "파트너 관리",
355
+ "title.passkey offer": "패스키 등록",
348
356
  "title.protected-privileges": "보호되는 권한",
357
+ "title.remove passkey": "패스키 삭제",
349
358
  "title.reset password": "비밀번호 초기화",
350
359
  "title.role privileges": "역할 권한",
351
360
  "title.secure-ip-list": "보안 IP 리스트",
@@ -413,6 +422,11 @@
413
422
  "access-request.text.denied lately": "{at}에 거부되었습니다: {reason}. 다시 요청하려면 무엇이 달라졌는지 입력해 주세요.",
414
423
  "access-request.button.request": "권한 요청…",
415
424
  "text.parent roles are changed by the parent domain": "상위 $t(term.domain)의 역할은 그 $t(term.domain)에서 권한을 정하는 사람만 바꿀 수 있습니다.",
425
+ "text.passkey added on": "{{date}} 등록",
426
+ "text.passkey already on this device": "이 기기에는 이미 패스키가 등록되어 있습니다.",
427
+ "text.passkey last used on": "{{date}} 마지막 사용",
428
+ "text.passkey name": "패스키 이름",
429
+ "text.passkey offer": "이 기기에 패스키를 등록하면 다음부터 비밀번호 대신 지문, 얼굴 인식, 기기 PIN으로 로그인합니다. 휴대폰에 등록한 패스키로는 다른 컴퓨터에서도 로그인할 수 있습니다.",
416
430
  "access-request.issue.role-belongs-to-parent": "{role} 역할은 상위 $t(term.domain)의 것입니다. 그 $t(term.domain)에서 권한을 정하는 사람만 줄 수 있습니다.",
417
431
  "access-request.dock.intro title": "AI 와 함께 권한 요청을 정리하세요",
418
432
  "access-request.dock.intro subtitle": "대기 중인 요청을 조회하여 처리안을 제안합니다. 카드에서 내용을 확인하고 최종 결정해 주세요.",
@@ -451,6 +465,7 @@
451
465
  "audit.outcome.denied": "거절",
452
466
  "audit.outcome.error": "오류",
453
467
  "audit.outcome.failed": "실패",
468
+ "audit.method.passkey": "패스키",
454
469
  "audit.button.all-people": "모든 사람",
455
470
  "audit.button.all-privileges": "모든 권한",
456
471
  "audit.health.failures": "기록 실패 {count}건 ({since} 이후)",
@@ -477,6 +492,7 @@
477
492
  "audit.kind.password.reset-by-admin": "비밀번호 초기화",
478
493
  "audit.kind.credential.issue": "인증 정보 재발급",
479
494
  "audit.kind.webauthn.register": "패스키 등록",
495
+ "audit.kind.webauthn.remove": "패스키 삭제",
480
496
  "audit.kind.role.grant": "역할 부여",
481
497
  "audit.kind.role.revoke": "역할 회수",
482
498
  "audit.kind.role.privilege.add": "역할에 권한 추가",
@@ -494,7 +510,7 @@
494
510
  "text.add task privileges": "{task} 업무의 권한 {count}개를 이 역할에 더하고 저장합니다: {list}.",
495
511
  "text.remove task privileges": "{task} 업무의 권한 {count}개를 이 역할에서 떼고 저장합니다: {list}.",
496
512
  "text.kept for other tasks": "이 역할의 다른 업무가 써서 남깁니다: {list}.",
497
- "text.nothing to remove for task": "{task} 업무의 권한은 모두 이 역할의 다른 업무가 씁니다. 뗄 것이 없습니다.",
513
+ "text.nothing to remove for task": "{task} 업무의 권한을 이 역할의 다른 업무에서도 모두 사용하고 있어 해제할 권한이 없습니다.",
498
514
  "text.save before editing by task": "바꾼 것을 먼저 저장하세요. 업무는 저장한 권한으로 셉니다.",
499
515
  "access-request.issue.role-lacks-task": "{role} 역할에는 {task} 업무의 권한 일부가 없습니다: {privileges}"
500
516
  }
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "button.accept invitation": "terima jemputan",
3
3
  "button.activate": "aktifkan",
4
+ "button.add passkey": "Tambah kunci laluan",
4
5
  "button.close": "tutup",
5
6
  "button.confirm": "sahkan",
6
7
  "button.copy": "salin",
@@ -12,23 +13,26 @@
12
13
  "button.delete this appliance": "padamkan peralatan ini",
13
14
  "button.delete user": "padam pengguna",
14
15
  "button.detail": "perincian",
16
+ "button.do not ask on this device": "Jangan tanya lagi pada peranti ini",
15
17
  "button.generate new access token": "Cipta akses token baru",
16
18
  "button.generate new secret": "jana rahsia baharu",
17
19
  "button.go to home": "ke halaman utama",
18
20
  "button.hide": "sembunyi",
21
+ "button.later": "Kemudian",
19
22
  "button.logout": "logout",
20
23
  "button.name it yourself": "name it yourself",
21
24
  "button.register": "daftar",
25
+ "button.register on this device": "Daftar pada peranti ini",
22
26
  "button.renew access token": "perbaharui token akses",
23
27
  "button.resend": "hantar semula",
24
28
  "button.reveal": "tunjuk",
25
29
  "button.revoke credential": "batalkan kelayakan",
26
30
  "button.save": "simpan",
27
- "button.security-key registration": "pendaftaran kunci keselamatan",
28
31
  "button.show-all": "Tunjukkan semua",
29
32
  "button.show-orphans-only": "Tunjukkan hanya orphan",
30
33
  "button.sign in": "log masuk",
31
34
  "button.sign_in": "log masuk",
35
+ "button.signin with passkey": "Log masuk dengan kunci laluan",
32
36
  "button.stand it here": "bina di sini",
33
37
  "button.submit": "hantar",
34
38
  "button.terminate contract": "tamatkan",
@@ -278,7 +282,9 @@
278
282
  "title.open attributes view": "lihat atribut terbuka",
279
283
  "title.owner_transfer": "menukar pemilik",
280
284
  "title.partners": "rakan kongsi",
285
+ "title.passkey offer": "Tambah kunci laluan",
281
286
  "title.protected-privileges": "hak istimewa yang dilindungi",
287
+ "title.remove passkey": "Padam kunci laluan",
282
288
  "title.reset password": "reset kata laluan",
283
289
  "title.secure-ip-list": "senarai IP yang selamat",
284
290
  "title.sign in": "log masuk",
@@ -305,6 +311,7 @@
305
311
  "label.execute": "laksana",
306
312
  "label.inherited": "diwarisi",
307
313
  "label.ours": "peranan kami",
314
+ "label.passkey": "Kunci laluan",
308
315
  "label.read": "baca",
309
316
  "label.write": "tulis",
310
317
  "text.account exists so joins immediately": "akaun ini sudah wujud. menambahnya membolehkan mereka masuk serta-merta.",
@@ -325,6 +332,7 @@
325
332
  "text.no description for this role": "belum ada keterangan — tulis dalam senarai peranan.",
326
333
  "text.no one holds this role yet": "belum ada sesiapa memegang peranan ini.",
327
334
  "text.no other user yet": "belum ada pengguna lain",
335
+ "text.no passkey yet": "Belum ada kunci laluan.",
328
336
  "text.no privilege declared in this deployment": "belum ada keistimewaan diisytiharkan dalam penggunaan ini, jadi tiada apa untuk diberi.",
329
337
  "text.no privilege granted": "tiada apa dibuka",
330
338
  "text.no role assigned": "tiada peranan",
@@ -340,6 +348,7 @@
340
348
  "text.please enter username or email": "sila masukkan nama pengguna atau e-mel",
341
349
  "text.please try again": "cuba lagi sebentar lagi.",
342
350
  "text.remove the role from x people first": "untuk memadam peranan ini, tanggalkannya dahulu daripada {x} orang yang memegangnya.",
351
+ "text.removed passkey cannot sign in": "Selepas {{name}} dipadam, ia tidak boleh lagi digunakan untuk log masuk.",
343
352
  "text.role belongs to x domain and is edited there": "peranan ini ditakrifkan dalam {x} dan hanya boleh disunting di sana. ia ditunjukkan di sini kerana boleh diberi di sini.",
344
353
  "text.roles in use are kept": "peranan yang masih dipegang dikekalkan. hanya yang tidak digunakan dipadam.",
345
354
  "text.they lose access to this domain but keep the account": "mereka hilang akses ke $t(term.domain) ini. akaun kekal, jadi anda boleh menambah mereka semula kemudian.",
@@ -413,6 +422,11 @@
413
422
  "access-request.text.denied lately": "ditolak pada {at}: {reason}. untuk memohon semula, tulis apa yang telah berubah.",
414
423
  "access-request.button.request": "mohon akses…",
415
424
  "text.parent roles are changed by the parent domain": "peranan $t(term.domain) induk hanya boleh diubah oleh mereka yang memutuskan peranan di sana.",
425
+ "text.passkey added on": "Ditambah {{date}}",
426
+ "text.passkey already on this device": "Peranti ini sudah mempunyai kunci laluan anda.",
427
+ "text.passkey last used on": "terakhir digunakan {{date}}",
428
+ "text.passkey name": "Nama kunci laluan",
429
+ "text.passkey offer": "Dengan kunci laluan pada peranti ini, anda log masuk menggunakan cap jari, wajah atau PIN peranti dan bukan kata laluan. Kunci laluan pada telefon anda juga boleh log masuk pada komputer lain.",
416
430
  "access-request.issue.role-belongs-to-parent": "{role} milik $t(term.domain) induk - hanya mereka yang memutuskan peranan di sana boleh memberikannya.",
417
431
  "access-request.dock.intro title": "putuskan permintaan akses bersama pembantu",
418
432
  "access-request.dock.intro subtitle": "ia membaca permintaan yang menunggu dan menyediakan draf keputusan; anda menekan kad.",
@@ -451,6 +465,7 @@
451
465
  "audit.outcome.denied": "Ditolak",
452
466
  "audit.outcome.error": "Ralat",
453
467
  "audit.outcome.failed": "Gagal",
468
+ "audit.method.passkey": "kunci laluan",
454
469
  "audit.button.all-people": "Semua orang",
455
470
  "audit.button.all-privileges": "Semua keistimewaan",
456
471
  "audit.health.failures": "{count} tidak direkod (sejak {since})",
@@ -477,6 +492,7 @@
477
492
  "audit.kind.password.reset-by-admin": "Set semula kata laluan",
478
493
  "audit.kind.credential.issue": "Kelayakan dikeluarkan semula",
479
494
  "audit.kind.webauthn.register": "Kunci laluan didaftar",
495
+ "audit.kind.webauthn.remove": "Kunci laluan dipadam",
480
496
  "audit.kind.role.grant": "Peranan diberi",
481
497
  "audit.kind.role.revoke": "Peranan ditarik",
482
498
  "audit.kind.role.privilege.add": "Keistimewaan ditambah pada peranan",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "button.accept invitation": "接受邀请",
3
3
  "button.activate": "激活",
4
+ "button.add passkey": "添加通行密钥",
4
5
  "button.close": "关闭",
5
6
  "button.confirm": "确认",
6
7
  "button.copy": "复制",
@@ -12,23 +13,26 @@
12
13
  "button.delete this appliance": "删除此设备",
13
14
  "button.delete user": "删除用户",
14
15
  "button.detail": "详情",
16
+ "button.do not ask on this device": "在此设备上不再询问",
15
17
  "button.generate new access token": "生成新的访问令牌",
16
18
  "button.generate new secret": "重新生成密钥",
17
19
  "button.go to home": "首页",
18
20
  "button.hide": "隐藏",
21
+ "button.later": "以后再说",
19
22
  "button.logout": "退出",
20
23
  "button.name it yourself": "name it yourself",
21
24
  "button.register": "注册",
25
+ "button.register on this device": "在此设备上注册",
22
26
  "button.renew access token": "更新访问令牌",
23
27
  "button.resend": "重新发送",
24
28
  "button.reveal": "显示",
25
29
  "button.revoke credential": "撤销凭据",
26
30
  "button.save": "保存",
27
- "button.security-key registration": "安全密钥注册",
28
31
  "button.show-all": "全部显示",
29
32
  "button.show-orphans-only": "仅显示孤立项",
30
33
  "button.sign in": "登录",
31
34
  "button.sign_in": "登录",
35
+ "button.signin with passkey": "使用通行密钥登录",
32
36
  "button.stand it here": "在此建立",
33
37
  "button.submit": "提交",
34
38
  "button.terminate contract": "终止合同",
@@ -278,7 +282,9 @@
278
282
  "title.open attributes view": "打开属性视图",
279
283
  "title.owner_transfer": "业主权限转移",
280
284
  "title.partners": "合作伙伴",
285
+ "title.passkey offer": "添加通行密钥",
281
286
  "title.protected-privileges": "受保护的权限",
287
+ "title.remove passkey": "删除通行密钥",
282
288
  "title.reset password": "重置密码",
283
289
  "title.secure-ip-list": "安全 IP 列表",
284
290
  "title.sign in": "登录",
@@ -305,6 +311,7 @@
305
311
  "label.execute": "执行",
306
312
  "label.inherited": "继承",
307
313
  "label.ours": "本站角色",
314
+ "label.passkey": "通行密钥",
308
315
  "label.read": "读取",
309
316
  "label.write": "写入",
310
317
  "text.account exists so joins immediately": "该账户已存在。添加后即可立即进入。",
@@ -325,6 +332,7 @@
325
332
  "text.no description for this role": "尚无说明 — 可在角色列表中填写。",
326
333
  "text.no one holds this role yet": "尚无人拥有此角色。",
327
334
  "text.no other user yet": "尚无其他用户",
335
+ "text.no passkey yet": "尚未添加通行密钥。",
328
336
  "text.no privilege declared in this deployment": "此部署中尚未声明任何权限,没有可授予的内容。",
329
337
  "text.no privilege granted": "未开放任何内容",
330
338
  "text.no role assigned": "无角色",
@@ -340,6 +348,7 @@
340
348
  "text.please enter username or email": "请输入用户名或邮箱",
341
349
  "text.please try again": "请稍后再试。",
342
350
  "text.remove the role from x people first": "要删除此角色,请先从拥有它的 {x} 人那里移除。",
351
+ "text.removed passkey cannot sign in": "删除 {{name}} 后将无法再用它登录。",
343
352
  "text.role belongs to x domain and is edited there": "此角色定义在 {x} 中,只能在那里编辑。因可在此授予而显示在列表中。",
344
353
  "text.roles in use are kept": "仍有人拥有的角色会保留,只删除未使用的角色。",
345
354
  "text.they lose access to this domain but keep the account": "对方将无法再访问此$t(term.domain)。账户会保留,之后可以再次添加。",
@@ -413,6 +422,11 @@
413
422
  "access-request.text.denied lately": "已于 {at} 被拒绝: {reason}。如需再次请求,请写明有何变化。",
414
423
  "access-request.button.request": "请求权限…",
415
424
  "text.parent roles are changed by the parent domain": "上级$t(term.domain)的角色只能由该$t(term.domain)负责权限的人更改。",
425
+ "text.passkey added on": "{{date}} 添加",
426
+ "text.passkey already on this device": "此设备上已有您的通行密钥。",
427
+ "text.passkey last used on": "{{date}} 最后使用",
428
+ "text.passkey name": "通行密钥名称",
429
+ "text.passkey offer": "在此设备上注册通行密钥后,下次可使用指纹、面容或设备 PIN 代替密码登录。手机上的通行密钥也可以在其他电脑上登录。",
416
430
  "access-request.issue.role-belongs-to-parent": "{role} 属于上级$t(term.domain),只有在该$t(term.domain)负责权限的人才能授予。",
417
431
  "access-request.dock.intro title": "与 AI 一起处理权限请求",
418
432
  "access-request.dock.intro subtitle": "读取待处理的请求并起草处理方案,由您在卡片上确认。",
@@ -451,6 +465,7 @@
451
465
  "audit.outcome.denied": "拒绝",
452
466
  "audit.outcome.error": "错误",
453
467
  "audit.outcome.failed": "失败",
468
+ "audit.method.passkey": "通行密钥",
454
469
  "audit.button.all-people": "所有人员",
455
470
  "audit.button.all-privileges": "所有权限",
456
471
  "audit.health.failures": "记录失败 {count} 条({since} 起)",
@@ -477,6 +492,7 @@
477
492
  "audit.kind.password.reset-by-admin": "重置密码",
478
493
  "audit.kind.credential.issue": "重新签发凭证",
479
494
  "audit.kind.webauthn.register": "注册通行密钥",
495
+ "audit.kind.webauthn.remove": "删除通行密钥",
480
496
  "audit.kind.role.grant": "授予角色",
481
497
  "audit.kind.role.revoke": "收回角色",
482
498
  "audit.kind.role.privilege.add": "为角色添加权限",