@things-factory/auth-ui 10.1.226 → 10.1.228

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 (37) hide show
  1. package/dist-client/components/role-template-picker.d.ts +5 -0
  2. package/dist-client/components/role-template-picker.js +151 -42
  3. package/dist-client/components/role-template-picker.js.map +1 -1
  4. package/dist-client/components/role-template-picker.test.d.ts +1 -0
  5. package/dist-client/components/role-template-picker.test.js +41 -0
  6. package/dist-client/components/role-template-picker.test.js.map +1 -0
  7. package/dist-client/pages/role/role-add-delete.test.d.ts +1 -0
  8. package/dist-client/pages/role/role-add-delete.test.js +61 -0
  9. package/dist-client/pages/role/role-add-delete.test.js.map +1 -0
  10. package/dist-client/pages/role/role-inheritance-shown.test.d.ts +1 -0
  11. package/dist-client/pages/role/role-inheritance-shown.test.js +31 -0
  12. package/dist-client/pages/role/role-inheritance-shown.test.js.map +1 -0
  13. package/dist-client/pages/role/role-list-page.d.ts +15 -11
  14. package/dist-client/pages/role/role-list-page.js +112 -53
  15. package/dist-client/pages/role/role-list-page.js.map +1 -1
  16. package/dist-client/pages/role/role-privilege-inherited.test.d.ts +1 -0
  17. package/dist-client/pages/role/role-privilege-inherited.test.js +23 -0
  18. package/dist-client/pages/role/role-privilege-inherited.test.js.map +1 -0
  19. package/dist-client/pages/role/role-privilege-page.d.ts +8 -5
  20. package/dist-client/pages/role/role-privilege-page.js +23 -13
  21. package/dist-client/pages/role/role-privilege-page.js.map +1 -1
  22. package/dist-client/pages/role/role-privilege-views.test.d.ts +1 -0
  23. package/dist-client/pages/role/role-privilege-views.test.js +19 -0
  24. package/dist-client/pages/role/role-privilege-views.test.js.map +1 -0
  25. package/dist-client/tsconfig.tsbuildinfo +1 -1
  26. package/helps/auth/application.ko.md +1 -1
  27. package/helps/auth/auth-provider.ko.md +1 -1
  28. package/helps/auth/domain-owners.ko.md +1 -1
  29. package/helps/operato-hub/partners.ko.md +1 -1
  30. package/helps/system/attribute.ko.md +1 -1
  31. package/package.json +6 -6
  32. package/translations/en.json +17 -10
  33. package/translations/es.json +17 -10
  34. package/translations/ja.json +17 -10
  35. package/translations/ko.json +18 -11
  36. package/translations/ms.json +17 -10
  37. package/translations/zh.json +17 -10
@@ -1,5 +1,5 @@
1
1
  # application
2
2
 
3
3
  <!--
4
- 자리만 잡아 둔 문서다. 답해야 할 것은 en 판과 같다(`application.md`).
4
+ 자리만 잡아 둔 문서다. 답해야 할 것은 en 버전과 같다(`application.md`).
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  # 인증 제공자
2
2
 
3
3
  <!--
4
- 자리만 잡아 둔 문서다. 답해야 할 것은 en 판과 같다(`auth-provider.md`).
4
+ 자리만 잡아 둔 문서다. 답해야 할 것은 en 버전과 같다(`auth-provider.md`).
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  # 도메인 소유자
2
2
 
3
3
  <!--
4
- 자리만 잡아 둔 문서다. 답해야 할 것은 en 판과 같다(`domain-owners.md`).
4
+ 자리만 잡아 둔 문서다. 답해야 할 것은 en 버전과 같다(`domain-owners.md`).
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  # partners
2
2
 
3
3
  <!--
4
- 자리만 잡아 둔 문서다. 답해야 할 것은 en 판과 같다(`partners.md`).
4
+ 자리만 잡아 둔 문서다. 답해야 할 것은 en 버전과 같다(`partners.md`).
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  # 속성
2
2
 
3
3
  <!--
4
- 자리만 잡아 둔 문서다. 답해야 할 것은 en 판과 같다(`attribute.md`).
4
+ 자리만 잡아 둔 문서다. 답해야 할 것은 en 버전과 같다(`attribute.md`).
5
5
  -->
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/auth-ui",
3
- "version": "10.1.226",
3
+ "version": "10.1.228",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -42,12 +42,12 @@
42
42
  "@operato/shell": "^10.29.39",
43
43
  "@operato/styles": "^10.0.0",
44
44
  "@operato/utils": "^10.29.39",
45
- "@things-factory/apptool-base": "^10.1.221",
46
- "@things-factory/auth-base": "^10.1.226",
47
- "@things-factory/component-ui": "^10.1.226",
48
- "@things-factory/more-base": "^10.1.219",
45
+ "@things-factory/apptool-base": "^10.1.228",
46
+ "@things-factory/auth-base": "^10.1.228",
47
+ "@things-factory/component-ui": "^10.1.228",
48
+ "@things-factory/more-base": "^10.1.228",
49
49
  "base64url": "^3.0.1",
50
50
  "clipboard": "^2.0.6"
51
51
  },
52
- "gitHead": "abc5cf99effa2de579a1cbfda74ddc5eb41dba50"
52
+ "gitHead": "fc4ede44617418df8701e83b83d177db4142a8f3"
53
53
  }
@@ -6,7 +6,7 @@
6
6
  "button.confirm": "confirm",
7
7
  "button.copy": "copy",
8
8
  "button.create": "create",
9
- "button.create role": "create role",
9
+ "button.add role": "Add role",
10
10
  "button.deactivate": "deactivate",
11
11
  "button.delete": "delete",
12
12
  "button.delete role": "delete role",
@@ -22,7 +22,6 @@
22
22
  "button.hide": "hide",
23
23
  "button.later": "Later",
24
24
  "button.logout": "logout",
25
- "button.name it yourself": "name it yourself",
26
25
  "button.register": "register",
27
26
  "button.register on this device": "Register on this device",
28
27
  "button.remove from domain": "Remove from domain",
@@ -89,7 +88,6 @@
89
88
  "field.required privilege": "required privilege",
90
89
  "field.required role": "required role",
91
90
  "field.scope": "scope",
92
- "field.seat": "seat",
93
91
  "field.serial-no": "serial #",
94
92
  "field.sign in": "sign in",
95
93
  "field.sign out": "sign out",
@@ -168,7 +166,6 @@
168
166
  "label.write": "Write",
169
167
  "label.x description": "{x} description",
170
168
  "label.x name": "{x} name",
171
- "text.a blank seat opens nothing until you give it privileges": "A blank seat opens nothing until you give it privileges.",
172
169
  "text.a role of this name exists and will be added to": "A role of this name already exists. It will be used as it stands and these privileges added to it.",
173
170
  "text.a role of this name is already visible": "a role of this name is already visible",
174
171
  "text.add user puts an account into this domain": "One account works in several $t(term.domain)s. Find it by email, put it into this $t(term.domain) and give it roles.",
@@ -252,7 +249,7 @@
252
249
  "text.filter by module name": "Filter by module name",
253
250
  "text.from x": "from {x}",
254
251
  "text.inherited from x": "inherited from {x}",
255
- "text.inherited roles are edited in their own domain": "These roles are defined in a parent domain and can only be changed there.",
252
+ "text.inherited roles are not deleted here": "Roles inherited from a parent domain cannot be deleted here — {names}. Take them out of the selection.",
256
253
  "text.invalid-email": "that is not an email address",
257
254
  "text.invalid-username": "use an id or an email address",
258
255
  "text.missing against template": "{count} missing",
@@ -296,14 +293,12 @@
296
293
  "text.revoking stops every token this appliance holds": "this appliance stops being able to reach the system from the next request. nothing it holds keeps working, and issuing a new access token is the only way back.",
297
294
  "text.role belongs to x domain and is edited there": "This role is defined in {x} and can only be edited there. It is shown here because it can be granted here.",
298
295
  "text.role_management": "role management",
299
- "text.roles in use are kept": "Roles that someone still holds are kept. Only the unused ones are deleted.",
300
296
  "text.select domain": "select domain",
301
297
  "text.should select at least one of x": "please select at least one of {x}",
302
298
  "text.signed in": "signed in",
303
299
  "text.signed out": "signed out",
304
300
  "text.source_and_target_domain_cannot_be_same": "source and target domain cannot be same",
305
301
  "text.stand this domain own role of the same name": "{name} is defined in {domain} and is already visible here. stand this domain's own role of the same name only if you mean to replace what it inherits — the name stays the same.",
306
- "text.start from a blank seat": "start from a blank seat",
307
302
  "text.struck through are not installed here": "Struck through are privileges this installation does not have.",
308
303
  "text.subdomain_change_critical_warning": "warning: changing the subdomain will alter the full access URL (/{type}/{subdomain}/...) and may invalidate existing external links, bookmarks, and active user sessions. please proceed with caution.",
309
304
  "text.synchronize": "synchronize",
@@ -315,9 +310,7 @@
315
310
  "text.the list could not be loaded": "the list could not be loaded",
316
311
  "text.they lose access to this domain but keep the account": "They lose access to this domain. The account itself remains, so you can add them again later.",
317
312
  "text.this credential has been revoked": "this credential was revoked. the appliance cannot reach the system until a new access token is issued.",
318
- "text.this domain is top level and inherits from nowhere": "top level — nothing is inherited here",
319
313
  "text.this field is required": "this field is required",
320
- "text.this plant may call the seat what it likes": "Call the seat whatever this plant calls it.",
321
314
  "text.this role no longer exists": "this role no longer exists",
322
315
  "text.token expiry time": "token expiry time",
323
316
  "text.unlock email sent": "an unlock email went to the address on this account. set a new password from its link to sign in again.",
@@ -332,6 +325,7 @@
332
325
  "text.without a role they see nothing": "Without a role there will be no screens for them.",
333
326
  "text.x is required": "Please enter the {x}.",
334
327
  "text.x modules y privileges": "{x} modules · {y} privileges",
328
+ "text.x tasks y privileges": "{x} tasks · {y} privileges",
335
329
  "text.x not here": "{x} not installed here",
336
330
  "text.x of y on": "{x} of {y} on",
337
331
  "text.x on": "{x} on",
@@ -531,5 +525,18 @@
531
525
  "text.no passkey to confirm with": "You have no passkey registered. Confirm with your password.",
532
526
  "text.identity confirmation expired": "Put away ten minutes after you confirmed it was you.",
533
527
  "text.identity confirmation needed": "Shown once you confirm it is you.",
534
- "button.confirm it is you": "confirm it is you"
528
+ "button.confirm it is you": "confirm it is you",
529
+ "field.role users": "Users",
530
+ "text.n people": "{n}",
531
+ "text.pick the roles to delete": "Pick the roles to delete in the list.",
532
+ "text.roles held by users are not deleted": "Roles held by users cannot be deleted — {names}. Take them off the users first.",
533
+ "text.role and its users": "{name} ({n})",
534
+ "text.delete these roles": "Delete {names}? This cannot be undone.",
535
+ "field.role templates": "start from a template",
536
+ "field.role template": "picked template",
537
+ "field.new role name": "new role name",
538
+ "label.no template": "no template",
539
+ "text.an empty role with no privileges": "an empty role with no privileges",
540
+ "text.add starts the role as the template is": "Press {add} to start the new role with the picked template's tasks and privileges. Change them later with {edit} in the list.",
541
+ "text.add starts an empty role": "Press {add} to start an empty role with no privileges. Give it privileges with {edit} in the list."
535
542
  }
@@ -6,7 +6,7 @@
6
6
  "button.confirm": "confirmar",
7
7
  "button.copy": "copiar",
8
8
  "button.create": "crear",
9
- "button.create role": "crear rol",
9
+ "button.add role": "Añadir rol",
10
10
  "button.deactivate": "desactivar",
11
11
  "button.delete": "eliminar",
12
12
  "button.delete role": "eliminar rol",
@@ -22,7 +22,6 @@
22
22
  "button.hide": "ocultar",
23
23
  "button.later": "Más tarde",
24
24
  "button.logout": "cerrar sesión",
25
- "button.name it yourself": "asignar nombre manualmente",
26
25
  "button.register": "registrar",
27
26
  "button.register on this device": "Registrar en este dispositivo",
28
27
  "button.remove from domain": "Quitar del dominio",
@@ -89,7 +88,6 @@
89
88
  "field.required privilege": "privilegio requerido",
90
89
  "field.required role": "rol requerido",
91
90
  "field.scope": "ámbito",
92
- "field.seat": "puesto",
93
91
  "field.serial-no": "n.º de serie",
94
92
  "field.sign in": "iniciar sesión",
95
93
  "field.sign out": "cerrar sesión",
@@ -168,7 +166,6 @@
168
166
  "label.write": "Escritura",
169
167
  "label.x description": "descripción de {x}",
170
168
  "label.x name": "nombre de {x}",
171
- "text.a blank seat opens nothing until you give it privileges": "Un puesto vacío no da acceso a nada hasta que se le asignen privilegios.",
172
169
  "text.a role of this name exists and will be added to": "Ya existe un rol con este nombre. Se usará tal como está y se le añadirán estos privilegios.",
173
170
  "text.a role of this name is already visible": "ya se muestra un rol con este nombre",
174
171
  "text.add user puts an account into this domain": "Una cuenta sirve para varios dominios. Búsquela por correo, añádala a este dominio y asígnele roles.",
@@ -252,7 +249,7 @@
252
249
  "text.filter by module name": "Filtrar por nombre de módulo",
253
250
  "text.from x": "de {x}",
254
251
  "text.inherited from x": "heredado de {x}",
255
- "text.inherited roles are edited in their own domain": "Estos roles están definidos en un dominio principal y solo se pueden cambiar allí.",
252
+ "text.inherited roles are not deleted here": "Los roles heredados de un dominio principal no se pueden eliminar aquí — {names}. Quítelos de la selección.",
256
253
  "text.invalid-email": "no es una dirección de correo electrónico",
257
254
  "text.invalid-username": "use un ID o una dirección de correo electrónico",
258
255
  "text.missing against template": "faltan {count}",
@@ -296,14 +293,12 @@
296
293
  "text.revoking stops every token this appliance holds": "este dispositivo dejará de poder acceder al sistema a partir de la siguiente solicitud. nada de lo que tiene seguirá funcionando, y la única forma de recuperar el acceso es emitir un nuevo token de acceso.",
297
294
  "text.role belongs to x domain and is edited there": "Este rol está definido en {x} y solo se puede editar allí. Se muestra aquí porque se puede conceder aquí.",
298
295
  "text.role_management": "gestión de roles",
299
- "text.roles in use are kept": "Los roles que alguien todavía tiene se conservan. Solo se eliminan los que no se usan.",
300
296
  "text.select domain": "seleccionar dominio",
301
297
  "text.should select at least one of x": "seleccione al menos un elemento de {x}",
302
298
  "text.signed in": "sesión iniciada",
303
299
  "text.signed out": "sesión cerrada",
304
300
  "text.source_and_target_domain_cannot_be_same": "el dominio de origen y el de destino no pueden ser el mismo",
305
301
  "text.stand this domain own role of the same name": "{name} está definido en {domain} y ya se muestra aquí. cree en este dominio un rol propio con el mismo nombre solo si pretende sustituir lo que hereda — el nombre se mantiene.",
306
- "text.start from a blank seat": "empezar desde un puesto vacío",
307
302
  "text.struck through are not installed here": "Los tachados son privilegios que esta instalación no tiene.",
308
303
  "text.subdomain_change_critical_warning": "advertencia: cambiar el subdominio modificará la URL de acceso completa (/{type}/{subdomain}/...) y puede invalidar los enlaces externos, marcadores y sesiones de usuario activas existentes. proceda con precaución.",
309
304
  "text.synchronize": "sincronizar",
@@ -315,9 +310,7 @@
315
310
  "text.the list could not be loaded": "no se pudo cargar la lista",
316
311
  "text.they lose access to this domain but keep the account": "Perderá el acceso a este dominio. La cuenta se conserva, así que podrá volver a añadirlo más adelante.",
317
312
  "text.this credential has been revoked": "esta credencial se ha revocado. el dispositivo no podrá acceder al sistema hasta que se emita un nuevo token de acceso.",
318
- "text.this domain is top level and inherits from nowhere": "nivel superior — aquí no se hereda nada",
319
313
  "text.this field is required": "este campo es obligatorio",
320
- "text.this plant may call the seat what it likes": "Llame al puesto como lo llamen en esta planta.",
321
314
  "text.this role no longer exists": "este rol ya no existe",
322
315
  "text.token expiry time": "hora de caducidad del token",
323
316
  "text.unlock email sent": "enviamos un correo de desbloqueo a la dirección de esta cuenta. establezca una contraseña nueva desde su enlace para volver a iniciar sesión.",
@@ -332,6 +325,7 @@
332
325
  "text.without a role they see nothing": "Sin un rol no tendrá ninguna pantalla disponible.",
333
326
  "text.x is required": "Introduzca {x}.",
334
327
  "text.x modules y privileges": "{x} módulos · {y} privilegios",
328
+ "text.x tasks y privileges": "{x} tareas · {y} privilegios",
335
329
  "text.x not here": "{x} no instalados aquí",
336
330
  "text.x of y on": "{x} de {y} activados",
337
331
  "text.x on": "{x} activados",
@@ -531,5 +525,18 @@
531
525
  "text.no passkey to confirm with": "No tiene llaves de acceso registradas. Confirme con su contraseña.",
532
526
  "text.identity confirmation expired": "Se ocultó diez minutos después de confirmar que era usted.",
533
527
  "text.identity confirmation needed": "Se muestra cuando confirme que es usted.",
534
- "button.confirm it is you": "confirmar que soy yo"
528
+ "button.confirm it is you": "confirmar que soy yo",
529
+ "field.role users": "Usuarios",
530
+ "text.n people": "{n}",
531
+ "text.pick the roles to delete": "Elija en la lista los roles que desea eliminar.",
532
+ "text.roles held by users are not deleted": "Los roles asignados a usuarios no se pueden eliminar — {names}. Quítelos primero de los usuarios.",
533
+ "text.role and its users": "{name} ({n})",
534
+ "text.delete these roles": "¿Eliminar {names}? No se puede deshacer.",
535
+ "field.role templates": "empezar desde una plantilla",
536
+ "field.role template": "plantilla elegida",
537
+ "field.new role name": "nombre del nuevo rol",
538
+ "label.no template": "sin plantilla",
539
+ "text.an empty role with no privileges": "un rol vacío sin privilegios",
540
+ "text.add starts the role as the template is": "Pulse {add} para iniciar el nuevo rol con las tareas y privilegios de la plantilla elegida. Cámbielos después con {edit} en la lista.",
541
+ "text.add starts an empty role": "Pulse {add} para iniciar un rol vacío sin privilegios. Asígnelos después con {edit} en la lista."
535
542
  }
@@ -5,7 +5,7 @@
5
5
  "button.confirm": "確認",
6
6
  "button.copy": "コピー",
7
7
  "button.create": "作成",
8
- "button.create role": "create role",
8
+ "button.add role": "ロール追加",
9
9
  "button.deactivate": "非アクティブ化",
10
10
  "button.delete": "削除",
11
11
  "button.delete role": "ロール削除",
@@ -19,7 +19,6 @@
19
19
  "button.hide": "隠す",
20
20
  "button.later": "後で",
21
21
  "button.logout": "ログアウト",
22
- "button.name it yourself": "name it yourself",
23
22
  "button.register": "登録",
24
23
  "button.register on this device": "このデバイスに登録",
25
24
  "button.renew access token": "アクセストークンを更新",
@@ -78,7 +77,6 @@
78
77
  "field.required privilege": "必要な権限",
79
78
  "field.required role": "必要な役割",
80
79
  "field.scope": "スコープ",
81
- "field.seat": "seat",
82
80
  "field.serial-no": "シリアル番号",
83
81
  "field.sign in": "ログイン",
84
82
  "field.sign out": "ログアウト",
@@ -144,7 +142,6 @@
144
142
  "label.whitelist": "ホワイトリスト",
145
143
  "label.x description": "{x}説明",
146
144
  "label.x name": "{x}名前",
147
- "text.a blank seat opens nothing until you give it privileges": "A blank seat opens nothing until you give it privileges.",
148
145
  "text.a role of this name exists and will be added to": "A role of this name already exists. It will be used as it stands and these privileges added to it.",
149
146
  "text.a role of this name is already visible": "同じ名前のロールが既に見えています",
150
147
  "text.add template privileges": "{template} テンプレートが付与し、このロールにない権限 {count}件を追加します: {list}",
@@ -240,7 +237,6 @@
240
237
  "text.signed out": "ログアウト",
241
238
  "text.source_and_target_domain_cannot_be_same": "ソース$t(term.domain)とターゲット$t(term.domain)は同じにできません",
242
239
  "text.stand this domain own role of the same name": "{name} は {domain} に定義されており、ここからも見えています。継承しているものを置き換えるつもりの場合のみ、この$t(term.domain)に同じ名前で作成します。名前はそのままです。",
243
- "text.start from a blank seat": "start from a blank seat",
244
240
  "text.struck through are not installed here": "Struck through are privileges this installation does not have.",
245
241
  "text.subdomain_change_critical_warning": "警告: サブドメインを変更すると、フルアクセスURL(/{type}/{subdomain}/...)が変更され、既存のブックマークや外部リンク、アクティブなセッションが無効化される可能性があります。慎重に確認して進めてください。",
246
242
  "text.synchronize": "同期",
@@ -251,9 +247,7 @@
251
247
  "text.the current secret stops working immediately": "現在のシークレットは直ちに無効になります。利用中の箇所に新しいシークレットを渡す必要があります。",
252
248
  "text.the list could not be loaded": "リストを読み込めませんでした",
253
249
  "text.this credential has been revoked": "取り消された資格情報です。新しいアクセストークンを発行するまで、この機器はシステムに接続できません。",
254
- "text.this domain is top level and inherits from nowhere": "最上位$t(term.domain) — 継承元がありません",
255
250
  "text.this field is required": "必須項目です",
256
- "text.this plant may call the seat what it likes": "Call the seat whatever this plant calls it.",
257
251
  "text.this role no longer exists": "このロールは存在しません",
258
252
  "text.token expiry time": "トークン有効期限",
259
253
  "text.unlock email sent": "登録されたメールアドレスにロック解除メールを送りました. メールのリンクで新しいパスワードを設定すると、再びログインできます.",
@@ -264,6 +258,7 @@
264
258
  "text.where an integration asks for an authorization code": "連携側が認可コードを要求するアドレス",
265
259
  "text.where that code is exchanged for an access token": "そのコードをアクセストークンに交換するアドレス",
266
260
  "text.x modules y privileges": "{x} modules · {y} privileges",
261
+ "text.x tasks y privileges": "{x} tasks · {y} privileges",
267
262
  "text.x not here": "{x} not installed here",
268
263
  "text.x_cannot_delete": "{x}は削除できません.",
269
264
  "text.x_created_successfully": "{x}が成功的に作成されました.",
@@ -337,7 +332,7 @@
337
332
  "text.failed": "失敗",
338
333
  "text.failed to fetch": "一覧を読み込めませんでした",
339
334
  "text.filter by module name": "モジュール名で絞り込み",
340
- "text.inherited roles are edited in their own domain": "これらのロールは上位の$t(term.domain)で定義されており、そちらでのみ変更できます。",
335
+ "text.inherited roles are not deleted here": "上位の$t(term.domain)から継承したロールはここでは削除できません — {names}。選択から外してください。",
341
336
  "text.no account and no default password": "このメールで登録されたアカウントがなく、このシステムには既定のパスワードもありません。先にご本人が登録する必要があります。",
342
337
  "text.no description for this privilege": "この権限の説明はまだありません。",
343
338
  "text.no description for this role": "説明はまだありません — ロール一覧で書けます。",
@@ -360,7 +355,6 @@
360
355
  "text.remove the role from x people first": "このロールを削除するには、まず持っている {x} 人から外してください。",
361
356
  "text.removed passkey cannot sign in": "{{name}} を削除すると、そのパスキーではサインインできなくなります。",
362
357
  "text.role belongs to x domain and is edited there": "このロールは {x} で定義されており、そちらでのみ編集できます。ここで付与できるため一覧に表示されています。",
363
- "text.roles in use are kept": "誰かが持っているロールは残します。使われていないものだけ削除されます。",
364
358
  "text.they lose access to this domain but keep the account": "この$t(term.domain)では作業できなくなります。アカウントは残るので、後で再び追加できます。",
365
359
  "text.unlocks in x minutes": "{x}分後にロック解除",
366
360
  "text.view only": "継承ロール — 閲覧のみ",
@@ -531,5 +525,18 @@
531
525
  "text.no passkey to confirm with": "登録したパスキーがありません。パスワードで確認してください。",
532
526
  "text.identity confirmation expired": "本人確認から10分が過ぎたため内容を隠しました。",
533
527
  "text.identity confirmation needed": "本人確認の後に表示します。",
534
- "button.confirm it is you": "本人確認"
528
+ "button.confirm it is you": "本人確認",
529
+ "field.role users": "ユーザー",
530
+ "text.n people": "{n}人",
531
+ "text.pick the roles to delete": "削除するロールを一覧から選んでください。",
532
+ "text.roles held by users are not deleted": "ユーザーに付与されたロールは削除できません — {names}。先にユーザーから外してください。",
533
+ "text.role and its users": "{name}({n}人)",
534
+ "text.delete these roles": "{names} を削除します。元に戻せません。",
535
+ "field.role templates": "開始するテンプレート",
536
+ "field.role template": "選択したテンプレート",
537
+ "field.new role name": "新しいロール名",
538
+ "label.no template": "テンプレートなし",
539
+ "text.an empty role with no privileges": "権限のない空のロール",
540
+ "text.add starts the role as the template is": "「{add}」を押すと、選択したテンプレートと同じ業務・権限で新しいロールが始まります。変更は一覧の「{edit}」で行います。",
541
+ "text.add starts an empty role": "「{add}」を押すと、権限のない空のロールが始まります。権限は一覧の「{edit}」で付与します。"
535
542
  }
@@ -6,7 +6,7 @@
6
6
  "button.confirm": "확인",
7
7
  "button.copy": "복사",
8
8
  "button.create": "생성",
9
- "button.create role": "역할 만들기",
9
+ "button.add role": "역할 추가",
10
10
  "button.deactivate": "비활성화",
11
11
  "button.delete": "삭제",
12
12
  "button.delete role": "역할 삭제",
@@ -22,7 +22,6 @@
22
22
  "button.hide": "가리기",
23
23
  "button.later": "나중에",
24
24
  "button.logout": "로그아웃",
25
- "button.name it yourself": "직접 이름 짓기",
26
25
  "button.register": "등록",
27
26
  "button.register on this device": "이 기기에 등록",
28
27
  "button.remove from domain": "$t(term.domain)에서 제외",
@@ -89,7 +88,6 @@
89
88
  "field.required privilege": "필수 권한",
90
89
  "field.required role": "필수 역할",
91
90
  "field.scope": "범위",
92
- "field.seat": "역할",
93
91
  "field.serial-no": "일련번호",
94
92
  "field.sign in": "로그인",
95
93
  "field.sign out": "로그아웃",
@@ -168,7 +166,6 @@
168
166
  "label.write": "쓰기",
169
167
  "label.x description": "{x} 설명",
170
168
  "label.x name": "{x} 이름",
171
- "text.a blank seat opens nothing until you give it privileges": "새 역할에 권한을 추가해야 해당 역할로 기능에 접근할 수 있습니다.",
172
169
  "text.a role of this name exists and will be added to": "같은 이름의 역할이 이미 있습니다. 새로 만들지 않고 그 역할에 권한을 더합니다.",
173
170
  "text.a role of this name is already visible": "같은 이름의 역할이 이미 보입니다",
174
171
  "text.add user puts an account into this domain": "계정 하나로 여러 $t(term.domain)에서 일합니다. 이메일로 계정을 찾아 이 $t(term.domain)에 넣고 역할을 줍니다.",
@@ -252,7 +249,7 @@
252
249
  "text.filter by module name": "모듈 이름으로 걸러 보기",
253
250
  "text.from x": "{x} 의 역할",
254
251
  "text.inherited from x": "{x} 에서 물려받습니다",
255
- "text.inherited roles are edited in their own domain": "상위 $t(term.domain)에 정의된 역할은 해당 $t(term.domain)에서만 수정할 수 있습니다.",
252
+ "text.inherited roles are not deleted here": "상위 $t(term.domain)에서 물려받은 역할은 여기서 지울 수 없습니다 — {names}. 고른 것에서 빼 주세요.",
256
253
  "text.invalid-email": "이메일 주소 형식이 맞지 않습니다",
257
254
  "text.invalid-username": "아이디나 이메일 주소를 입력해 주세요",
258
255
  "text.missing against template": "{count}개 빠짐",
@@ -294,16 +291,14 @@
294
291
  "text.remove the role from x people first": "이 역할을 삭제하려면 먼저 역할을 보유한 사용자 {x}명의 역할 부여를 해제해 주세요.",
295
292
  "text.removed passkey cannot sign in": "{{name}}을(를) 삭제하면 그 패스키로는 더 이상 로그인할 수 없습니다.",
296
293
  "text.revoking stops every token this appliance holds": "이 단말장치의 모든 토큰이 무효화되어 다음 요청부터 시스템에 접근할 수 없습니다. 접근을 재개하려면 새 액세스 토큰을 발급해야 합니다.",
297
- "text.role belongs to x domain and is edited there": "이 역할은 {x}에 정의되어 있어 해당 도메인에서만 수정할 수 있습니다. 현재 도메인에서도 사용자에게 부여할 수 있습니다.",
294
+ "text.role belongs to x domain and is edited there": "이 역할은 {x}에 정의되어 있어 그 $t(term.domain)에서만 고칠 수 있습니다. 이 $t(term.domain)에서도 사용자에게 부여할 수는 있습니다.",
298
295
  "text.role_management": "역할 관리",
299
- "text.roles in use are kept": "사용자에게 부여된 역할은 유지되며, 사용자가 없는 역할만 삭제됩니다.",
300
296
  "text.select domain": "$t(term.domain) 선택",
301
297
  "text.should select at least one of x": "적어도 한개 이상의 {x} 을(를) 선택해 주세요.",
302
298
  "text.signed in": "로그인",
303
299
  "text.signed out": "로그아웃",
304
300
  "text.source_and_target_domain_cannot_be_same": "소스 $t(term.domain)과 타겟 $t(term.domain)은 동일할 수 없습니다",
305
301
  "text.stand this domain own role of the same name": "{name} 역할은 {domain}에서 상속되었습니다. 상속된 역할을 대체하려는 경우에만 현재 $t(term.domain)에 같은 이름의 역할을 생성해 주세요.",
306
- "text.start from a blank seat": "새 역할을 생성합니다.",
307
302
  "text.struck through are not installed here": "줄이 그어진 것은 이 설치에 없는 권한입니다.",
308
303
  "text.subdomain_change_critical_warning": "경고: 서브도메인을 변경하면 전체 접속 URL(/{type}/{subdomain}/...)이 변경되어 기존에 배포된 링크, 북마크 및 활성 사용자 세션이 무효화될 수 있습니다. 신중하게 확인 후 진행해 주세요.",
309
304
  "text.synchronize": "동기화",
@@ -315,9 +310,7 @@
315
310
  "text.the list could not be loaded": "목록을 불러오지 못했습니다",
316
311
  "text.they lose access to this domain but keep the account": "이 $t(term.domain)에 대한 접근 권한이 해제됩니다. 계정은 유지되며 나중에 다시 초대할 수 있습니다.",
317
312
  "text.this credential has been revoked": "폐기된 인증정보입니다. 새 액세스 토큰을 발급하기 전까지 이 단말장치는 시스템에 접근할 수 없습니다.",
318
- "text.this domain is top level and inherits from nowhere": "최상위 $t(term.domain) — 물려받는 곳이 없습니다",
319
313
  "text.this field is required": "필수 항목입니다",
320
- "text.this plant may call the seat what it likes": "이 공장에서 부르는 이름으로 바꿔도 됩니다.",
321
314
  "text.this role no longer exists": "이 역할은 더 이상 없습니다",
322
315
  "text.token expiry time": "토큰 만료 시점",
323
316
  "text.unlock email sent": "등록된 메일 주소로 잠금 해제 메일을 보냈습니다. 메일의 링크에서 새 비밀번호를 정하면 다시 로그인할 수 있습니다.",
@@ -332,6 +325,7 @@
332
325
  "text.without a role they see nothing": "역할이 부여되지 않으면 로그인해도 접근할 수 있는 화면이 없습니다.",
333
326
  "text.x is required": "{x}을(를) 입력해 주십시오.",
334
327
  "text.x modules y privileges": "모듈 {x} · 권한 {y}",
328
+ "text.x tasks y privileges": "업무 {x} · 권한 {y}",
335
329
  "text.x not here": "{x}개가 이 설치에 없음",
336
330
  "text.x of y on": "{y}개 중 {x}개 부여됨",
337
331
  "text.x on": "{x}개 부여됨",
@@ -531,5 +525,18 @@
531
525
  "text.no passkey to confirm with": "등록한 패스키가 없습니다. 비밀번호로 확인하세요.",
532
526
  "text.identity confirmation expired": "본인 확인 후 10분이 지나 내용을 가렸습니다.",
533
527
  "text.identity confirmation needed": "본인 확인 뒤에 보여 드립니다.",
534
- "button.confirm it is you": "본인 확인"
528
+ "button.confirm it is you": "본인 확인",
529
+ "field.role users": "사용자",
530
+ "text.n people": "{n}명",
531
+ "text.pick the roles to delete": "지울 역할을 목록에서 고르세요.",
532
+ "text.roles held by users are not deleted": "사용자에게 부여된 역할은 지울 수 없습니다 — {names}. 사용자 관리에서 먼저 떼어 주세요.",
533
+ "text.role and its users": "{name}({n}명)",
534
+ "text.delete these roles": "{names} 역할을 지웁니다. 되돌릴 수 없습니다.",
535
+ "field.role templates": "시작할 템플릿",
536
+ "field.role template": "선택한 템플릿",
537
+ "field.new role name": "새 역할 이름",
538
+ "label.no template": "템플릿 없이",
539
+ "text.an empty role with no privileges": "권한이 없는 빈 역할",
540
+ "text.add starts the role as the template is": "「{add}」를 누르면 선택한 템플릿과 같은 업무 · 권한으로 새 역할이 시작됩니다. 고치는 것은 목록의 「{edit}」에서 합니다.",
541
+ "text.add starts an empty role": "「{add}」를 누르면 권한이 없는 빈 역할이 시작됩니다. 권한은 목록의 「{edit}」에서 줍니다."
535
542
  }
@@ -5,7 +5,7 @@
5
5
  "button.confirm": "sahkan",
6
6
  "button.copy": "salin",
7
7
  "button.create": "cipta",
8
- "button.create role": "create role",
8
+ "button.add role": "Tambah peranan",
9
9
  "button.deactivate": "deaktifkan",
10
10
  "button.delete": "padam",
11
11
  "button.delete role": "padam peranan",
@@ -19,7 +19,6 @@
19
19
  "button.hide": "sembunyi",
20
20
  "button.later": "Kemudian",
21
21
  "button.logout": "logout",
22
- "button.name it yourself": "name it yourself",
23
22
  "button.register": "daftar",
24
23
  "button.register on this device": "Daftar pada peranti ini",
25
24
  "button.renew access token": "perbaharui token akses",
@@ -78,7 +77,6 @@
78
77
  "field.required privilege": "keperluan keistimewaan",
79
78
  "field.required role": "peranan diperlukan",
80
79
  "field.scope": "skop",
81
- "field.seat": "seat",
82
80
  "field.serial-no": "nombor siri",
83
81
  "field.sign in": "log masuk",
84
82
  "field.sign out": "log keluar",
@@ -144,7 +142,6 @@
144
142
  "label.whitelist": "senarai putih",
145
143
  "label.x description": "{x} penerangan",
146
144
  "label.x name": "{x} nama",
147
- "text.a blank seat opens nothing until you give it privileges": "A blank seat opens nothing until you give it privileges.",
148
145
  "text.a role of this name exists and will be added to": "A role of this name already exists. It will be used as it stands and these privileges added to it.",
149
146
  "text.a role of this name is already visible": "peranan dengan nama ini sudah kelihatan",
150
147
  "text.add template privileges": "menambah {count} keizinan yang diberi oleh templat {template} tetapi tiada pada peranan ini: {list}",
@@ -240,7 +237,6 @@
240
237
  "text.signed out": "telah log keluar",
241
238
  "text.please_fill_all_required_fields": "sila isi semua medan yang diperlukan",
242
239
  "text.stand this domain own role of the same name": "{name} ditakrifkan dalam {domain} dan sudah kelihatan di sini. Bina milik domain ini dengan nama yang sama hanya jika anda berniat menggantikan yang diwarisi — namanya kekal sama.",
243
- "text.start from a blank seat": "start from a blank seat",
244
240
  "text.struck through are not installed here": "Struck through are privileges this installation does not have.",
245
241
  "text.subdomain_change_critical_warning": "amaran: menukar subdomain akan mengubah URL capaian penuh (/{type}/{subdomain}/...) dan mungkin membatalkan pautan luaran, penanda buku dan sesi pengguna aktif sedia ada. sila teruskan dengan berhati-hati.",
246
242
  "text.synchronize": "menyamakan",
@@ -251,9 +247,7 @@
251
247
  "text.the current secret stops working immediately": "rahsia semasa berhenti berfungsi serta-merta, dan apa-apa yang menggunakannya perlu diberi yang baharu.",
252
248
  "text.the list could not be loaded": "senarai tidak dapat dimuatkan",
253
249
  "text.this credential has been revoked": "kelayakan ini telah dibatalkan. peranti ini tidak boleh mencapai sistem sehingga token akses baharu dijana.",
254
- "text.this domain is top level and inherits from nowhere": "domain teratas — tiada yang diwarisi",
255
250
  "text.this field is required": "medan ini diperlukan",
256
- "text.this plant may call the seat what it likes": "Call the seat whatever this plant calls it.",
257
251
  "text.this role no longer exists": "peranan ini tidak wujud lagi",
258
252
  "text.token expiry time": "masa tamat token",
259
253
  "text.unlock email sent": "e-mel buka kunci telah dihantar ke alamat akaun ini. tetapkan kata laluan baharu melalui pautannya untuk log masuk semula.",
@@ -264,6 +258,7 @@
264
258
  "text.where an integration asks for an authorization code": "tempat integrasi meminta kod kebenaran",
265
259
  "text.where that code is exchanged for an access token": "tempat kod itu ditukar dengan token akses",
266
260
  "text.x modules y privileges": "{x} modules · {y} privileges",
261
+ "text.x tasks y privileges": "{x} tasks · {y} privileges",
267
262
  "text.x not here": "{x} not installed here",
268
263
  "text.x_cannot_delete": "{x} tidak boleh dipadam",
269
264
  "text.x_created_successfully": "{x} berjaya dibina",
@@ -337,7 +332,7 @@
337
332
  "text.failed": "gagal",
338
333
  "text.failed to fetch": "senarai tidak dapat dibaca",
339
334
  "text.filter by module name": "tapis mengikut nama modul",
340
- "text.inherited roles are edited in their own domain": "peranan ini ditakrifkan dalam $t(term.domain) induk dan hanya boleh diubah di sana.",
335
+ "text.inherited roles are not deleted here": "Peranan yang diwarisi daripada $t(term.domain) induk tidak boleh dipadam di sini — {names}. Keluarkannya daripada pilihan.",
341
336
  "text.no account and no default password": "tiada akaun dengan e-mel ini dan sistem ini tiada kata laluan lalai. mereka perlu mendaftar dahulu.",
342
337
  "text.no description for this privilege": "belum ada keterangan untuk keistimewaan ini.",
343
338
  "text.no description for this role": "belum ada keterangan — tulis dalam senarai peranan.",
@@ -360,7 +355,6 @@
360
355
  "text.remove the role from x people first": "untuk memadam peranan ini, tanggalkannya dahulu daripada {x} orang yang memegangnya.",
361
356
  "text.removed passkey cannot sign in": "Selepas {{name}} dipadam, ia tidak boleh lagi digunakan untuk log masuk.",
362
357
  "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.",
363
- "text.roles in use are kept": "peranan yang masih dipegang dikekalkan. hanya yang tidak digunakan dipadam.",
364
358
  "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.",
365
359
  "text.unlocks in x minutes": "dibuka dalam {x} minit",
366
360
  "text.view only": "peranan diwarisi — lihat sahaja",
@@ -531,5 +525,18 @@
531
525
  "text.no passkey to confirm with": "Tiada kunci laluan berdaftar. Sahkan dengan kata laluan.",
532
526
  "text.identity confirmation expired": "Disembunyikan sepuluh minit selepas anda mengesahkan ini anda.",
533
527
  "text.identity confirmation needed": "Dipaparkan selepas anda mengesahkan ini anda.",
534
- "button.confirm it is you": "sahkan ini anda"
528
+ "button.confirm it is you": "sahkan ini anda",
529
+ "field.role users": "Pengguna",
530
+ "text.n people": "{n}",
531
+ "text.pick the roles to delete": "Pilih peranan yang hendak dipadam dalam senarai.",
532
+ "text.roles held by users are not deleted": "Peranan yang dipegang pengguna tidak boleh dipadam — {names}. Tanggalkan daripada pengguna dahulu.",
533
+ "text.role and its users": "{name} ({n})",
534
+ "text.delete these roles": "Padam {names}? Tindakan ini tidak boleh dibuat asal.",
535
+ "field.role templates": "mula daripada templat",
536
+ "field.role template": "templat dipilih",
537
+ "field.new role name": "nama peranan baharu",
538
+ "label.no template": "tanpa templat",
539
+ "text.an empty role with no privileges": "peranan kosong tanpa keistimewaan",
540
+ "text.add starts the role as the template is": "Tekan {add} untuk memulakan peranan baharu dengan tugas dan keistimewaan templat yang dipilih. Ubahnya kemudian dengan {edit} dalam senarai.",
541
+ "text.add starts an empty role": "Tekan {add} untuk memulakan peranan kosong tanpa keistimewaan. Berikan keistimewaan dengan {edit} dalam senarai."
535
542
  }