masks-server 0.7.0 → 0.8.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.
- checksums.yaml +4 -4
- data/app/controllers/masks/server/enrollments_controller.rb +66 -0
- data/app/controllers/masks/server/introspections_controller.rb +2 -2
- data/app/controllers/masks/server/registrations_controller.rb +31 -1
- data/app/graphql/masks/server/manage/types/client_type.rb +8 -0
- data/app/graphql/masks/server/manage/types/query_type.rb +6 -1
- data/app/helpers/masks/server/application_helper.rb +0 -1
- data/app/helpers/masks/server/scopes_helper.rb +28 -0
- data/app/jobs/masks/server/cleanup_job.rb +1 -0
- data/app/models/masks/server/client.rb +81 -1
- data/app/models/masks/server/client_keys.rb +6 -1
- data/app/models/masks/server/enrollment_token.rb +54 -0
- data/app/models/masks/server/event.rb +3 -0
- data/app/models/masks/server/issuer.rb +1 -0
- data/app/models/masks/server/namespace.rb +6 -3
- data/app/models/masks/server/replay.rb +22 -4
- data/app/models/masks/server/token.rb +1 -0
- data/app/views/layouts/masks/server/manage.html.erb +2 -2
- data/app/views/masks/server/application/_person.html.erb +1 -1
- data/app/views/masks/server/handshakes/show.html.erb +129 -59
- data/config/locales/de/account.yml +1 -1
- data/config/locales/de/events.yml +5 -2
- data/config/locales/de/flashes.yml +2 -2
- data/config/locales/de/handshakes.yml +33 -14
- data/config/locales/de/mailers.yml +1 -1
- data/config/locales/de/manage/activity.yml +2 -2
- data/config/locales/de/manage/actor.yml +41 -23
- data/config/locales/de/manage/actors.yml +16 -15
- data/config/locales/de/manage/api.yml +1 -1
- data/config/locales/de/manage/app.yml +6 -6
- data/config/locales/de/manage/client.yml +45 -45
- data/config/locales/de/manage/clients.yml +28 -32
- data/config/locales/de/manage/connections.yml +2 -2
- data/config/locales/de/manage/consents.yml +2 -2
- data/config/locales/de/manage/device.yml +7 -7
- data/config/locales/de/manage/devices.yml +18 -18
- data/config/locales/de/manage/directory.yml +1 -1
- data/config/locales/de/manage/domains.yml +6 -6
- data/config/locales/de/manage/emails.yml +4 -4
- data/config/locales/de/manage/events.yml +3 -0
- data/config/locales/de/manage/groups.yml +6 -6
- data/config/locales/de/manage/ldap.yml +8 -8
- data/config/locales/de/manage/namespaces.yml +1 -1
- data/config/locales/de/manage/organization.yml +15 -8
- data/config/locales/de/manage/organizations.yml +3 -3
- data/config/locales/de/manage/policies.yml +6 -6
- data/config/locales/de/manage/policy_rules.yml +1 -1
- data/config/locales/de/manage/presence.yml +6 -6
- data/config/locales/de/manage/providers.yml +70 -48
- data/config/locales/de/manage/provisioning.yml +4 -4
- data/config/locales/de/manage/senders.yml +1 -1
- data/config/locales/de/manage/settings.yml +37 -26
- data/config/locales/de/manage/settings_shell.yml +2 -2
- data/config/locales/de/refusals.yml +5 -5
- data/config/locales/en/account.yml +3 -3
- data/config/locales/en/events.yml +4 -1
- data/config/locales/en/flashes.yml +3 -3
- data/config/locales/en/handshakes.yml +33 -14
- data/config/locales/en/logins.yml +2 -2
- data/config/locales/en/manage/actor.yml +32 -14
- data/config/locales/en/manage/actors.yml +16 -15
- data/config/locales/en/manage/app.yml +5 -5
- data/config/locales/en/manage/client.yml +9 -9
- data/config/locales/en/manage/clients.yml +8 -12
- data/config/locales/en/manage/connections.yml +1 -1
- data/config/locales/en/manage/consents.yml +1 -1
- data/config/locales/en/manage/device.yml +1 -1
- data/config/locales/en/manage/devices.yml +1 -1
- data/config/locales/en/manage/directory.yml +1 -1
- data/config/locales/en/manage/domains.yml +6 -6
- data/config/locales/en/manage/emails.yml +4 -4
- data/config/locales/en/manage/events.yml +3 -0
- data/config/locales/en/manage/groups.yml +6 -6
- data/config/locales/en/manage/ldap.yml +8 -8
- data/config/locales/en/manage/messages.yml +1 -1
- data/config/locales/en/manage/namespaces.yml +1 -1
- data/config/locales/en/manage/organization.yml +16 -9
- data/config/locales/en/manage/organizations.yml +3 -3
- data/config/locales/en/manage/policies.yml +6 -6
- data/config/locales/en/manage/policy_rules.yml +2 -2
- data/config/locales/en/manage/presence.yml +1 -1
- data/config/locales/en/manage/providers.yml +70 -48
- data/config/locales/en/manage/provisioning.yml +4 -4
- data/config/locales/en/manage/senders.yml +2 -2
- data/config/locales/en/manage/settings.yml +34 -23
- data/config/locales/es/account.yml +1 -1
- data/config/locales/es/application.yml +1 -1
- data/config/locales/es/events.yml +4 -1
- data/config/locales/es/flashes.yml +4 -4
- data/config/locales/es/handshakes.yml +33 -14
- data/config/locales/es/logins.yml +12 -12
- data/config/locales/es/mailers.yml +7 -7
- data/config/locales/es/manage/activity.yml +2 -2
- data/config/locales/es/manage/actor.yml +33 -15
- data/config/locales/es/manage/actors.yml +17 -16
- data/config/locales/es/manage/api.yml +1 -1
- data/config/locales/es/manage/app.yml +6 -6
- data/config/locales/es/manage/client.yml +30 -30
- data/config/locales/es/manage/clients.yml +22 -26
- data/config/locales/es/manage/connections.yml +1 -1
- data/config/locales/es/manage/consents.yml +1 -1
- data/config/locales/es/manage/device.yml +1 -1
- data/config/locales/es/manage/directory.yml +1 -1
- data/config/locales/es/manage/domains.yml +5 -5
- data/config/locales/es/manage/emails.yml +7 -7
- data/config/locales/es/manage/events.yml +3 -0
- data/config/locales/es/manage/groups.yml +6 -6
- data/config/locales/es/manage/ldap.yml +8 -8
- data/config/locales/es/manage/namespaces.yml +1 -1
- data/config/locales/es/manage/organization.yml +16 -9
- data/config/locales/es/manage/organizations.yml +3 -3
- data/config/locales/es/manage/policies.yml +8 -8
- data/config/locales/es/manage/policy_rules.yml +2 -2
- data/config/locales/es/manage/providers.yml +70 -48
- data/config/locales/es/manage/provisioning.yml +4 -4
- data/config/locales/es/manage/senders.yml +1 -1
- data/config/locales/es/manage/settings.yml +38 -27
- data/config/locales/es/manage/settings_shell.yml +2 -2
- data/config/locales/es/refusals.yml +3 -3
- data/config/locales/fr/events.yml +3 -0
- data/config/locales/fr/flashes.yml +1 -1
- data/config/locales/fr/handshakes.yml +33 -14
- data/config/locales/fr/manage/activity.yml +4 -4
- data/config/locales/fr/manage/actor.yml +43 -25
- data/config/locales/fr/manage/actors.yml +22 -21
- data/config/locales/fr/manage/api.yml +1 -1
- data/config/locales/fr/manage/app.yml +7 -7
- data/config/locales/fr/manage/client.yml +50 -50
- data/config/locales/fr/manage/clients.yml +28 -32
- data/config/locales/fr/manage/connections.yml +2 -2
- data/config/locales/fr/manage/consents.yml +1 -1
- data/config/locales/fr/manage/device.yml +1 -1
- data/config/locales/fr/manage/directory.yml +1 -1
- data/config/locales/fr/manage/domains.yml +6 -6
- data/config/locales/fr/manage/emails.yml +5 -5
- data/config/locales/fr/manage/events.yml +3 -0
- data/config/locales/fr/manage/groups.yml +6 -6
- data/config/locales/fr/manage/ldap.yml +8 -8
- data/config/locales/fr/manage/namespaces.yml +1 -1
- data/config/locales/fr/manage/organization.yml +15 -8
- data/config/locales/fr/manage/organizations.yml +3 -3
- data/config/locales/fr/manage/policies.yml +6 -6
- data/config/locales/fr/manage/policy_rules.yml +1 -1
- data/config/locales/fr/manage/providers.yml +70 -48
- data/config/locales/fr/manage/provisioning.yml +4 -4
- data/config/locales/fr/manage/senders.yml +1 -1
- data/config/locales/fr/manage/settings.yml +38 -27
- data/config/locales/fr/manage/settings_shell.yml +2 -2
- data/config/routes.rb +2 -0
- data/config/vite.json +1 -0
- data/db/migrate/20261011190000_add_enrolled_by_to_clients.rb +5 -0
- data/db/migrate/20261012100000_create_replays.rb +23 -0
- data/public/masks-assets/.vite/manifest-assets.json +1 -0
- data/public/masks-assets/.vite/manifest.json +62 -0
- data/public/masks-assets/assets/app-DoQZrM_J.css +2 -0
- data/public/masks-assets/assets/console-DoyNbIw3.css +1 -0
- data/public/masks-assets/assets/handshake-DIFZPSAK.js +2 -0
- data/public/masks-assets/assets/handshake-DIFZPSAK.js.map +1 -0
- data/public/masks-assets/assets/manage-isLCrWiU.js +567 -0
- data/public/masks-assets/assets/manage-isLCrWiU.js.map +1 -0
- data/version.txt +1 -1
- metadata +14 -7
- data/public/masks-assets/assets/app-olx-5PkA.css +0 -2
- data/public/masks-assets/assets/console-CiuQ3qj0.css +0 -1
- data/public/masks-assets/assets/handshake-BYhhQ_X3.js +0 -2
- data/public/masks-assets/assets/handshake-BYhhQ_X3.js.map +0 -1
- data/public/masks-assets/assets/manage-Z3GmPDNQ.js +0 -560
- data/public/masks-assets/assets/manage-Z3GmPDNQ.js.map +0 -1
|
@@ -1,84 +1,117 @@
|
|
|
1
|
-
<%
|
|
1
|
+
<% tenant = Masks::Server::Current.tenant&.name.to_s %>
|
|
2
|
+
<% name = @handshake.name %>
|
|
3
|
+
<% content_for :title, t(@existing ? ".page_title_again" : ".page_title", name: name) %>
|
|
2
4
|
<% content_for :surface, "grant" %>
|
|
3
5
|
|
|
4
6
|
<% content_for :scripts do %>
|
|
5
7
|
<%= vite_javascript_tag "handshake" %>
|
|
6
8
|
<% end %>
|
|
7
9
|
|
|
8
|
-
<%
|
|
9
|
-
<%
|
|
10
|
+
<% areas = Masks::Server::Namespace.prefixes(@handshake.scopes) %>
|
|
11
|
+
<% plain = plain_scopes(@scopes, areas: areas) %>
|
|
12
|
+
<% hot, rest = @scopes.to_a.partition { |scope, _| heeded_scope?(scope) } %>
|
|
13
|
+
<% after_sign_out = @handshake.try(:post_logout_redirect_uri) %>
|
|
10
14
|
|
|
11
15
|
<div class="auth-pair">
|
|
12
|
-
<span class="auth-mark auth-mark-client" aria-hidden="true"><%=
|
|
16
|
+
<span class="auth-mark auth-mark-client" aria-hidden="true"><%= name.to_s.first&.upcase %></span>
|
|
13
17
|
<span class="auth-wire"></span>
|
|
14
18
|
<%= tenant_mark(Masks::Server::Current.tenant) %>
|
|
15
19
|
</div>
|
|
16
20
|
|
|
17
21
|
<div class="prompt-head">
|
|
18
|
-
<h1 class="prompt-title"><%= t(@existing ? ".title_again" : ".title") %></h1>
|
|
22
|
+
<h1 class="prompt-title"><%= t(@existing ? ".title_again" : ".title", name: name, tenant: tenant) %></h1>
|
|
23
|
+
|
|
24
|
+
<p class="handshake-origin">
|
|
25
|
+
<span class="handshake-origin-label"><%= t(".runs_at") %></span>
|
|
26
|
+
<span class="handshake-origin-value"><%= @handshake.origin %></span>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
19
29
|
<p class="prompt-lede">
|
|
20
|
-
<%= t(@existing ? ".lede_again_html" : ".lede_html", name:
|
|
30
|
+
<%= t(@existing ? ".lede_again_html" : ".lede_html", name: name, tenant: tenant) %>
|
|
21
31
|
</p>
|
|
22
32
|
</div>
|
|
23
33
|
|
|
24
|
-
|
|
34
|
+
<% if @existing %>
|
|
35
|
+
<% by_you = @existing.approved_by_id == current_actor.id %>
|
|
36
|
+
<% who = by_you ? nil : @existing.approved_by&.identifier || t(".someone") %>
|
|
37
|
+
<% date = l(@existing.approved_at.to_date, format: :long) %>
|
|
38
|
+
<div class="note note-warn handshake-replacing">
|
|
39
|
+
<strong><%= t(".stops_working", name: @existing.name) %></strong>
|
|
40
|
+
<span><%= by_you ? t(".connected_by_you", name: @existing.name, date: date) : t(".connected_by", name: @existing.name, who: who, date: date) %></span>
|
|
41
|
+
</div>
|
|
42
|
+
<% end %>
|
|
43
|
+
|
|
44
|
+
<div class="handshake-as">
|
|
45
|
+
<span class="handshake-caption"><%= t(".signed_in_as") %></span>
|
|
46
|
+
<%= render "masks/server/application/person", actor: current_actor, sign_out: true, unconfirmed: t(".unconfirmed") %>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<div class="slab handshake-plain">
|
|
50
|
+
<% if plain[:heeds].any? %>
|
|
51
|
+
<div class="ledger-row">
|
|
52
|
+
<span class="ledger-label"><%= t(".check") %></span>
|
|
53
|
+
<ul class="handshake-heeds">
|
|
54
|
+
<% plain[:heeds].each do |scope, description| %>
|
|
55
|
+
<% why = if scope == Masks::Server::Scopes::OFFLINE then t(".heed.offline_access", name: name)
|
|
56
|
+
elsif scope == Masks::Server::Scopes::DELEGATE then t(".heed.delegates", name: name)
|
|
57
|
+
elsif scope.start_with?(Masks::Server::Scopes::DELEGATE) then t(".heed.delegate", name: name)
|
|
58
|
+
elsif scope == Masks::Server::Scopes::MANAGE then t(".heed.manage", name: name)
|
|
59
|
+
end %>
|
|
60
|
+
<li class="handshake-heed<%= " handshake-heed-alarm" if scope == Masks::Server::Scopes::MANAGE %>"<%= ' role="alert"'.html_safe if scope == Masks::Server::Scopes::MANAGE %>>
|
|
61
|
+
<span class="handshake-heed-what"><%= scope == Masks::Server::Scopes::DELEGATE ? t(".heed.delegates_title") : description %></span>
|
|
62
|
+
<% if why %>
|
|
63
|
+
<span class="handshake-heed-why"><%= why %></span>
|
|
64
|
+
<% end %>
|
|
65
|
+
</li>
|
|
66
|
+
<% end %>
|
|
67
|
+
</ul>
|
|
25
68
|
|
|
26
|
-
<div class="slab">
|
|
27
|
-
<% if @existing %>
|
|
28
|
-
<% who = @existing.approved_by_id == current_actor.id ? t(".you") : @existing.approved_by&.identifier || t(".someone") %>
|
|
29
|
-
<div class="ledger-row ledger-row-tight">
|
|
30
|
-
<span class="ledger-label"><%= t(".replaces") %></span>
|
|
31
|
-
<span class="ledger-value handshake-warn">
|
|
32
|
-
<%= t(".replaced", name: @existing.name, who: who, date: l(@existing.approved_at.to_date, format: :long)) %>
|
|
33
|
-
</span>
|
|
34
69
|
</div>
|
|
35
70
|
<% end %>
|
|
36
71
|
|
|
37
|
-
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
<
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
<% if hot.any? && rest.any? %>
|
|
48
|
-
<li class="grant-scope-split"></li>
|
|
49
|
-
<% end %>
|
|
72
|
+
<% if plain[:sees].any? %>
|
|
73
|
+
<div class="ledger-row">
|
|
74
|
+
<span class="ledger-label"><%= t(".sees", name: name) %></span>
|
|
75
|
+
<ul class="handshake-sees">
|
|
76
|
+
<% plain[:sees].each do |_, description| %>
|
|
77
|
+
<li><%= description %></li>
|
|
78
|
+
<% end %>
|
|
79
|
+
</ul>
|
|
80
|
+
</div>
|
|
81
|
+
<% end %>
|
|
50
82
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
83
|
+
<% if areas.any? %>
|
|
84
|
+
<div class="ledger-row">
|
|
85
|
+
<span class="ledger-label"><%= t(".area", name: name) %></span>
|
|
86
|
+
<p class="handshake-say">
|
|
87
|
+
<%= t(".area_says_html", name: name, namespaces: safe_join(areas.map { |area| content_tag(:code, area, class: "chip-key") }, ", ")) %>
|
|
88
|
+
<% if @granting.present? %><%= t(".area_yours") %><% end %>
|
|
89
|
+
</p>
|
|
90
|
+
|
|
91
|
+
<% if @beneath.present? %>
|
|
92
|
+
<details class="disclosure">
|
|
93
|
+
<summary class="textlink"><%= t(".beneath", count: @beneath.size) %></summary>
|
|
94
|
+
<ul class="grant-scopes">
|
|
95
|
+
<% @beneath.each do |scope, description| %>
|
|
96
|
+
<li class="grant-scope<%= " grant-scope-hot" if consequential_scope?(scope) %>">
|
|
97
|
+
<span><%= description %></span>
|
|
98
|
+
<span class="chip-key"><%= scope %></span>
|
|
99
|
+
</li>
|
|
100
|
+
<% end %>
|
|
101
|
+
</ul>
|
|
102
|
+
</details>
|
|
56
103
|
<% end %>
|
|
57
|
-
</
|
|
58
|
-
|
|
59
|
-
<% if @handshake.scopes.include?(Masks::Server::Scopes::MANAGE) %>
|
|
60
|
-
<div class="note note-warn" role="alert"><%= t(".manage_warning", name: @handshake.name) %></div>
|
|
61
|
-
<% end %>
|
|
62
|
-
|
|
63
|
-
<% if @beneath.present? %>
|
|
64
|
-
<details class="disclosure">
|
|
65
|
-
<summary class="textlink"><%= t(".beneath", count: @beneath.size) %></summary>
|
|
66
|
-
<ul class="grant-scopes">
|
|
67
|
-
<% @beneath.each do |scope, description| %>
|
|
68
|
-
<li class="grant-scope">
|
|
69
|
-
<span><%= description %></span>
|
|
70
|
-
<span class="chip-key"><%= scope %></span>
|
|
71
|
-
</li>
|
|
72
|
-
<% end %>
|
|
73
|
-
</ul>
|
|
74
|
-
</details>
|
|
75
|
-
<% end %>
|
|
76
|
-
</div>
|
|
104
|
+
</div>
|
|
105
|
+
<% end %>
|
|
77
106
|
|
|
78
|
-
<% if
|
|
79
|
-
<div class="ledger-row
|
|
80
|
-
<span class="ledger-label"><%= t(".
|
|
81
|
-
<
|
|
107
|
+
<% if plain[:also].any? %>
|
|
108
|
+
<div class="ledger-row">
|
|
109
|
+
<span class="ledger-label"><%= t(".also", name: name) %></span>
|
|
110
|
+
<ul class="handshake-sees">
|
|
111
|
+
<% plain[:also].each do |_, description| %>
|
|
112
|
+
<li><%= description %></li>
|
|
113
|
+
<% end %>
|
|
114
|
+
</ul>
|
|
82
115
|
</div>
|
|
83
116
|
<% end %>
|
|
84
117
|
</div>
|
|
@@ -87,6 +120,36 @@
|
|
|
87
120
|
<summary class="textlink"><%= t(".details") %></summary>
|
|
88
121
|
|
|
89
122
|
<div class="slab">
|
|
123
|
+
<div class="ledger-row ledger-row-tight">
|
|
124
|
+
<span class="ledger-label"><%= t(".scopes") %></span>
|
|
125
|
+
<ul class="grant-scopes">
|
|
126
|
+
<% (hot + rest).each do |scope, description| %>
|
|
127
|
+
<li class="grant-scope<%= " grant-scope-hot" if heeded_scope?(scope) %>">
|
|
128
|
+
<span><%= description %></span>
|
|
129
|
+
<span class="chip-key"><%= scope %></span>
|
|
130
|
+
</li>
|
|
131
|
+
<% end %>
|
|
132
|
+
</ul>
|
|
133
|
+
|
|
134
|
+
<% if @handshake.scopes.include?(Masks::Server::Scopes::MANAGE) %>
|
|
135
|
+
<div class="note note-warn"><%= t(".manage_warning", name: name) %></div>
|
|
136
|
+
<% end %>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
<% if @granting.present? %>
|
|
140
|
+
<div class="ledger-row ledger-row-tight">
|
|
141
|
+
<span class="ledger-label"><%= t(".claims") %></span>
|
|
142
|
+
<span class="ledger-value"><%= t(".claimed", namespaces: @granting.to_sentence, name: name) %></span>
|
|
143
|
+
</div>
|
|
144
|
+
<% end %>
|
|
145
|
+
|
|
146
|
+
<% if @existing %>
|
|
147
|
+
<div class="ledger-row ledger-row-tight">
|
|
148
|
+
<span class="ledger-label"><%= t(".replaces") %></span>
|
|
149
|
+
<span class="ledger-value"><%= t(".replaced", name: @existing.name, who: who || t(".you"), date: date) %></span>
|
|
150
|
+
</div>
|
|
151
|
+
<% end %>
|
|
152
|
+
|
|
90
153
|
<div class="ledger-row ledger-row-tight">
|
|
91
154
|
<span class="ledger-label"><%= t(".client") %></span>
|
|
92
155
|
<span class="ledger-value"><%= t(".credentials.#{@handshake.credentials}") %></span>
|
|
@@ -125,17 +188,24 @@
|
|
|
125
188
|
<span class="ledger-value aside-mono"><%= @handshake.backchannel_logout_uri %></span>
|
|
126
189
|
</div>
|
|
127
190
|
<% end %>
|
|
191
|
+
|
|
192
|
+
<% if after_sign_out %>
|
|
193
|
+
<div class="ledger-row ledger-row-tight">
|
|
194
|
+
<span class="ledger-label"><%= t(".after_sign_out") %></span>
|
|
195
|
+
<span class="ledger-value aside-mono"><%= after_sign_out %></span>
|
|
196
|
+
</div>
|
|
197
|
+
<% end %>
|
|
128
198
|
</div>
|
|
129
199
|
</details>
|
|
130
200
|
|
|
131
201
|
<%= form_with url: handshake_path, method: :post do |form| %>
|
|
132
202
|
<%= hidden_field_tag :hid, @hid %>
|
|
133
203
|
<%= hidden_field_tag :shown, @shown %>
|
|
134
|
-
<% approve = @existing ? "
|
|
204
|
+
<% approve = @existing ? "reconnect" : "connect" %>
|
|
135
205
|
<div class="action-row">
|
|
136
206
|
<button type="submit" name="approve" value="yes" class="action action-grow action-countdown"
|
|
137
207
|
data-countdown="<%= Masks::Server::HandshakesController::WAIT.to_i %>"
|
|
138
|
-
data-waiting="<%= t(".#{approve}_in", seconds: "%{seconds}") %>"><%= t(".#{approve}") %></button>
|
|
208
|
+
data-waiting="<%= t(".#{approve}_in", name: name, seconds: "%{seconds}") %>"><%= t(".#{approve}", name: name) %></button>
|
|
139
209
|
<button type="submit" name="deny" value="yes" class="action action-quiet action-fit"><%= t(".cancel") %></button>
|
|
140
210
|
</div>
|
|
141
211
|
<% end %>
|
|
@@ -141,7 +141,7 @@ de:
|
|
|
141
141
|
here: "Dieses Gerät"
|
|
142
142
|
signed_in: "Angemeldet"
|
|
143
143
|
signed_out: "Abgemeldet"
|
|
144
|
-
blocked: "
|
|
144
|
+
blocked: "Blockiert"
|
|
145
145
|
seen: "Zuletzt gesehen vor %{age}."
|
|
146
146
|
from: "Zuletzt verwendet von %{address}."
|
|
147
147
|
skips_code: "Dieses Gerät muss keinen Code eingeben."
|
|
@@ -71,8 +71,8 @@ de:
|
|
|
71
71
|
trusted: "Gerät als vertrauenswürdig markiert"
|
|
72
72
|
named: "Gerät umbenannt"
|
|
73
73
|
forgotten: "Gerät abgemeldet"
|
|
74
|
-
blocked: "Gerät
|
|
75
|
-
unblocked: "Gerät
|
|
74
|
+
blocked: "Gerät blockiert"
|
|
75
|
+
unblocked: "Gerät freigegeben"
|
|
76
76
|
avatar:
|
|
77
77
|
uploaded: "Foto hochgeladen"
|
|
78
78
|
removed: "Foto entfernt"
|
|
@@ -112,6 +112,9 @@ de:
|
|
|
112
112
|
restored: "App wiederhergestellt"
|
|
113
113
|
secret_rotated: "App-Secret rotiert"
|
|
114
114
|
logo_refused: "App-Logo konnte nicht verwendet werden"
|
|
115
|
+
enrollment_issued: "Anmeldung einer Maschine angefordert"
|
|
116
|
+
enrolled: "Maschine angemeldet"
|
|
117
|
+
unenrolled: "Maschine abgemeldet"
|
|
115
118
|
token:
|
|
116
119
|
revoked: "Token widerrufen"
|
|
117
120
|
saml:
|
|
@@ -2,7 +2,7 @@ de:
|
|
|
2
2
|
devices:
|
|
3
3
|
unknown: "Dieses Gerät gibt es in diesem Konto nicht."
|
|
4
4
|
refused_agent: "Mit diesem Browser ist hier keine Anmeldung möglich."
|
|
5
|
-
blocked: "Dieses Gerät ist
|
|
5
|
+
blocked: "Dieses Gerät ist blockiert."
|
|
6
6
|
renamed: "Gerät umbenannt."
|
|
7
7
|
shared: "Auf diesem Gerät hat sich auch jemand anderes angemeldet, daher kann es hier nicht umbenannt werden."
|
|
8
8
|
signed_out: "Dieses Gerät wurde abgemeldet."
|
|
@@ -138,7 +138,7 @@ de:
|
|
|
138
138
|
sent: "Ein Bestätigungslink ist unterwegs an %{email}."
|
|
139
139
|
|
|
140
140
|
avatars:
|
|
141
|
-
updated: "Ihr Foto wurde
|
|
141
|
+
updated: "Ihr Foto wurde geändert."
|
|
142
142
|
removed: "Ihr Foto wurde entfernt."
|
|
143
143
|
|
|
144
144
|
handshakes:
|
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
de:
|
|
2
2
|
handshakes:
|
|
3
3
|
show:
|
|
4
|
-
page_title: "
|
|
5
|
-
page_title_again: "
|
|
6
|
-
title: "
|
|
7
|
-
title_again: "
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
page_title: "%{name} verbinden"
|
|
5
|
+
page_title_again: "%{name} neu verbinden"
|
|
6
|
+
title: "%{name} mit %{tenant} verbinden?"
|
|
7
|
+
title_again: "%{name} neu verbinden?"
|
|
8
|
+
runs_at: "Läuft unter"
|
|
9
|
+
lede_html: "Alle können sich dann mit ihrem %{tenant}-Konto bei <strong>%{name}</strong> anmelden. Vorerst haben nur Sie Zugang, und Sie legen später fest, wer noch hinein darf."
|
|
10
|
+
lede_again_html: "<strong>%{name}</strong> ist bereits mit %{tenant} verbunden. Beim neuen Verbinden wird die App neu eingerichtet. Vorerst haben nur Sie Zugang, und Sie legen später fest, wer noch hinein darf."
|
|
11
|
+
stops_working: "Die bisherige Verbindung zu %{name} funktioniert dann nicht mehr."
|
|
12
|
+
connected_by_you: "Sie haben %{name} am %{date} verbunden."
|
|
13
|
+
connected_by: "%{who} hat %{name} am %{date} verbunden."
|
|
14
|
+
signed_in_as: "Sie stimmen zu als"
|
|
15
|
+
unconfirmed: "(E-Mail noch nicht bestätigt)"
|
|
16
|
+
check: "Sehen Sie sich das zuerst an"
|
|
17
|
+
heed:
|
|
18
|
+
offline_access: "%{name} kann Personen angemeldet halten, ohne erneut zu fragen, bis sie sich abmelden."
|
|
19
|
+
delegates_title: "Personen bitten, ihre anderen Konten zu verbinden"
|
|
20
|
+
delegates: "Jede Person entscheidet selbst. %{name} kann diese Konten dann nutzen, während sie nicht da sind."
|
|
21
|
+
delegate: "%{name} kann dieses Konto nutzen, während Sie nicht da sind, bis Sie es beenden."
|
|
22
|
+
manage: "Alle, die sich über %{name} anmelden, können jede Einstellung auf diesem Server ändern."
|
|
23
|
+
sees: "%{name} sieht"
|
|
24
|
+
area: "Eigene Berechtigungen von %{name}"
|
|
25
|
+
area_says_html: "%{name} erhält eigene Berechtigungen mit dem Namen %{namespaces}. Sie entscheiden, wer sie bekommt."
|
|
26
|
+
area_yours: " Sie erhalten sie jetzt alle."
|
|
27
|
+
also: "%{name} kann außerdem"
|
|
28
|
+
details: "Technische Details"
|
|
29
|
+
scopes: "Scopes"
|
|
10
30
|
client: "Zugangsdaten"
|
|
11
31
|
credentials:
|
|
12
32
|
public: "Öffentlich. Sie hat kein Geheimnis."
|
|
@@ -16,24 +36,23 @@ de:
|
|
|
16
36
|
replaced: "Die App %{name}, die %{who} am %{date} genehmigt hat. Ihre aktuellen Zugangsdaten funktionieren dann nicht mehr."
|
|
17
37
|
you: "Sie"
|
|
18
38
|
someone: "jemand"
|
|
19
|
-
may_ask: "Darf anfordern"
|
|
20
39
|
manage_warning: "masks:manage erlaubt allen, die sich über %{name} anmelden, jede Einstellung auf diesem Server zu ändern."
|
|
21
40
|
beneath:
|
|
22
|
-
one: "Was
|
|
23
|
-
other: "Was
|
|
41
|
+
one: "Was sie heute umfassen (1)"
|
|
42
|
+
other: "Was sie heute umfassen (%{count})"
|
|
24
43
|
signs_in_at: "Meldet sich an bei"
|
|
25
44
|
claims: "Beansprucht"
|
|
26
45
|
claimed: "%{namespaces} gehört dann zu %{name}, und Ihnen wird es jetzt gewährt."
|
|
27
|
-
details: "Weitere Details"
|
|
28
46
|
origin: "Von"
|
|
29
47
|
redirect_uris: "Redirect-URIs"
|
|
30
48
|
returns: "Kehrt zurück zu"
|
|
31
49
|
auth_method: "Authentifiziert sich mit"
|
|
32
50
|
backchannel: "Backchannel-Logout"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
51
|
+
after_sign_out: "Nach dem Abmelden zurück zu"
|
|
52
|
+
connect: "%{name} verbinden"
|
|
53
|
+
connect_in: "%{name} verbinden in %{seconds}"
|
|
54
|
+
reconnect: "%{name} neu verbinden"
|
|
55
|
+
reconnect_in: "%{name} neu verbinden in %{seconds}"
|
|
37
56
|
cancel: "Abbrechen"
|
|
38
57
|
|
|
39
58
|
refused:
|
|
@@ -73,7 +73,7 @@ de:
|
|
|
73
73
|
sign_in:
|
|
74
74
|
risky: "Eine Anmeldung bei Ihrem Konto bei %{tenant} wirkte ungewöhnlich, daher wurde mehr verlangt oder sie wurde abgelehnt. Wenn Sie das nicht waren, ändern Sie Ihr Passwort."
|
|
75
75
|
device:
|
|
76
|
-
blocked: "Ein Gerät wurde für Ihr Konto bei %{tenant}
|
|
76
|
+
blocked: "Ein Gerät wurde für Ihr Konto bei %{tenant} blockiert. Es kann sich nicht anmelden, bis jemand es freigibt."
|
|
77
77
|
consent:
|
|
78
78
|
granted: "%{client} wurde Zugriff auf Ihr Konto bei %{tenant} erlaubt und kann jetzt lesen, was Sie zu teilen zugestimmt haben."
|
|
79
79
|
connection:
|
|
@@ -7,7 +7,7 @@ de:
|
|
|
7
7
|
title: "Aktivität"
|
|
8
8
|
nouns:
|
|
9
9
|
actor: "Akteur"
|
|
10
|
-
client: "
|
|
10
|
+
client: "Client"
|
|
11
11
|
downloading:
|
|
12
12
|
one: "%{count} Ereignis wird heruntergeladen."
|
|
13
13
|
other: "%{count} Ereignisse werden heruntergeladen."
|
|
@@ -15,7 +15,7 @@ de:
|
|
|
15
15
|
involves_end: "."
|
|
16
16
|
gone:
|
|
17
17
|
actor: "Nur, was einen Akteur betrifft, der nicht mehr existiert."
|
|
18
|
-
client: "Nur, was
|
|
18
|
+
client: "Nur, was einen Client betrifft, der nicht mehr existiert."
|
|
19
19
|
everything: "Alles anzeigen"
|
|
20
20
|
show: "Anzeigen"
|
|
21
21
|
all: "alles"
|
|
@@ -18,7 +18,7 @@ de:
|
|
|
18
18
|
left_group: "Nicht mehr in %{group}."
|
|
19
19
|
joined_group: "In %{group}."
|
|
20
20
|
profile_saved: "Profil gespeichert."
|
|
21
|
-
scopes_updated: "Scopes
|
|
21
|
+
scopes_updated: "Scopes geändert."
|
|
22
22
|
codes_generated: "Backup-Codes erstellt. Sie werden einmal angezeigt und nie wieder."
|
|
23
23
|
emailed: "Per E-Mail gesendet. Der Link wird hier nicht angezeigt, damit seine Verwendung die Adresse bestätigt."
|
|
24
24
|
no_mailer: "Es ist kein E-Mail-Versand konfiguriert. Geben Sie diesen Link also selbst weiter. Er funktioniert einmal."
|
|
@@ -27,11 +27,11 @@ de:
|
|
|
27
27
|
confirm_question: "Einen Bestätigungslink für diese Adresse senden? Jeder frühere funktioniert dann nicht mehr."
|
|
28
28
|
remove_passkey_question: "Den Passkey „%{label}“ entfernen?"
|
|
29
29
|
passkey_removed: "Passkey entfernt."
|
|
30
|
-
photo_updated: "Foto
|
|
30
|
+
photo_updated: "Foto geändert."
|
|
31
31
|
remove_photo_question: "Das Foto dieses Akteurs entfernen?"
|
|
32
32
|
photo_removed: "Foto entfernt."
|
|
33
33
|
disable_question: "Die Authenticator-App und alle Backup-Codes dieses Akteurs entfernen?"
|
|
34
|
-
authenticator_removed: "Authenticator entfernt."
|
|
34
|
+
authenticator_removed: "Authenticator-App entfernt."
|
|
35
35
|
factors:
|
|
36
36
|
email:
|
|
37
37
|
name: "Codes per E-Mail"
|
|
@@ -41,14 +41,14 @@ de:
|
|
|
41
41
|
lower: "Codes per SMS"
|
|
42
42
|
turn_off_question: "%{name} für diesen Akteur deaktivieren?"
|
|
43
43
|
turned_off: "%{name} deaktiviert."
|
|
44
|
-
suspend_question: "%{identifier} sperren?
|
|
44
|
+
suspend_question: "%{identifier} sperren? Der Akteur wird überall abgemeldet, alle seine Tokens funktionieren nicht mehr, und er kann sich erst wieder anmelden, wenn er wiederhergestellt ist."
|
|
45
45
|
suspended: "Gesperrt."
|
|
46
|
-
restored: "Wiederhergestellt.
|
|
47
|
-
delete_question: "%{identifier} löschen? Sitzungen, Tokens, Passkeys, Zustimmungen und
|
|
46
|
+
restored: "Wiederhergestellt. Der Akteur kann sich wieder anmelden."
|
|
47
|
+
delete_question: "%{identifier} löschen? Sitzungen, Tokens, Passkeys, Zustimmungen und Foto werden mit gelöscht. Das lässt sich nicht rückgängig machen, und nichts wird aufbewahrt."
|
|
48
48
|
missing: "Diesen Akteur gibt es nicht."
|
|
49
49
|
back: "Akteure"
|
|
50
|
-
signed_in_lede: "
|
|
51
|
-
invited_lede: "
|
|
50
|
+
signed_in_lede: "angemeldet %{when}"
|
|
51
|
+
invited_lede: "eingeladen, noch nicht angemeldet"
|
|
52
52
|
never: "nie"
|
|
53
53
|
link_once: "Dieser Link funktioniert einmal."
|
|
54
54
|
write_down: "Notieren Sie diese. Sie lassen sich nicht wiederherstellen."
|
|
@@ -69,12 +69,11 @@ de:
|
|
|
69
69
|
remove_photo: "Foto entfernen"
|
|
70
70
|
uploading: "Wird hochgeladen..."
|
|
71
71
|
scopes: "Scopes"
|
|
72
|
-
|
|
73
|
-
suspended_on: "Gesperrt am %{day}. Die Person kann sich nicht anmelden."
|
|
72
|
+
suspended_on: "Gesperrt am %{day}. Der Akteur kann sich nicht anmelden."
|
|
74
73
|
restore: "Wiederherstellen"
|
|
75
74
|
provisioned_as: "Provisioniert als"
|
|
76
|
-
provider_may_change: "
|
|
77
|
-
directory_provisioned: "Das Verzeichnis von %{organization} hat
|
|
75
|
+
provider_may_change: "Das Verzeichnis, das diesen Akteur angelegt hat, kann ihn ebenfalls ändern oder sperren."
|
|
76
|
+
directory_provisioned: "Das Verzeichnis von %{organization} hat den Akteur provisioniert als"
|
|
78
77
|
directory_may_change: "und kann sie ebenfalls ändern."
|
|
79
78
|
reset_password: "Passwort zurücksetzen"
|
|
80
79
|
invited_on: "Eingeladen am %{day}, nicht angenommen."
|
|
@@ -91,35 +90,54 @@ de:
|
|
|
91
90
|
last_used: "Zuletzt verwendet %{when}"
|
|
92
91
|
approval:
|
|
93
92
|
title: "Wartet auf Genehmigung"
|
|
94
|
-
lede: "
|
|
95
|
-
approved: "Genehmigt.
|
|
93
|
+
lede: "Der Akteur kann sich erst anmelden, wenn ein Verwalter ihn genehmigt."
|
|
94
|
+
approved: "Genehmigt. Der Akteur kann sich jetzt anmelden und wurde benachrichtigt."
|
|
96
95
|
approve: "Genehmigen"
|
|
97
96
|
recovery:
|
|
98
97
|
title: "Bittet um Hilfe"
|
|
99
|
-
lede: "
|
|
100
|
-
explain: "Das Zurücksetzen entfernt
|
|
98
|
+
lede: "Der Akteur hat %{when} seinen ersten Faktor bestanden und kann die Anmeldung nicht mit einem zweiten abschließen. Stellen Sie per Anruf oder persönlich sicher, dass er es wirklich ist, bevor Sie zurücksetzen."
|
|
99
|
+
explain: "Das Zurücksetzen entfernt seine Authenticator-App, Backup-Codes, Passkeys und Anmeldecodes und meldet ihn überall ab. Bei der nächsten Anmeldung wird er gebeten, einen neuen zweiten Faktor einzurichten."
|
|
101
100
|
question: "Alle zweiten Faktoren von %{identifier} zurücksetzen?"
|
|
102
|
-
done: "Zweite Faktoren zurückgesetzt.
|
|
101
|
+
done: "Zweite Faktoren zurückgesetzt. Der Akteur wurde benachrichtigt und kann bei der nächsten Anmeldung einen neuen einrichten."
|
|
103
102
|
reset: "Zweite Faktoren zurücksetzen"
|
|
104
103
|
dismissed: "Verworfen."
|
|
105
104
|
dismiss: "Verwerfen"
|
|
106
105
|
groups: "Gruppen"
|
|
107
106
|
no_groups: "Noch keine Gruppen."
|
|
108
107
|
add_group: "Eine hinzufügen"
|
|
109
|
-
group_labels: "
|
|
108
|
+
group_labels: "Clients, die Gruppen anfordern, sehen %{labels}."
|
|
110
109
|
second_factor: "Zweiter Faktor"
|
|
111
|
-
authenticator_enabled:
|
|
112
|
-
one: "Authenticator aktiviert. %{count} Backup-Code übrig."
|
|
113
|
-
other: "Authenticator aktiviert. %{count} Backup-Codes übrig."
|
|
114
110
|
generate: "Backup-Codes erstellen"
|
|
115
111
|
remove_authenticator: "Authenticator-App entfernen"
|
|
116
|
-
password_only: "Nur Passwort
|
|
112
|
+
password_only: "Nur Passwort. Sonst ist nichts eingerichtet."
|
|
117
113
|
factor_on: "%{name} aktiv."
|
|
118
114
|
turn_off: "%{name} deaktivieren"
|
|
119
115
|
activity: "Aktivität"
|
|
120
116
|
all_activity: "Alle Aktivitäten"
|
|
121
117
|
no_activity: "Noch nichts."
|
|
122
118
|
danger: "Sperren oder löschen"
|
|
123
|
-
yourself: "Das sind Sie
|
|
119
|
+
yourself: "Das sind Sie. Ein anderer Verwalter muss das tun."
|
|
124
120
|
suspend: "%{identifier} sperren"
|
|
125
121
|
delete: "%{identifier} löschen"
|
|
122
|
+
parts:
|
|
123
|
+
label: "Akteur"
|
|
124
|
+
profile: "Profil"
|
|
125
|
+
access: "Zugriff"
|
|
126
|
+
sign_in: "Anmeldung"
|
|
127
|
+
activity: "Aktivität"
|
|
128
|
+
scopes_lede: "Das Höchste, was ein Token dieses Akteurs halten kann. Der Verlust von masks:manage wirkt sofort."
|
|
129
|
+
groups_lede: "Ein Client, der den Scope groups anfragt, erhält diese im Claim groups."
|
|
130
|
+
provisioned: "Bereitgestellt"
|
|
131
|
+
consents_lede: "Clients, die dieser Akteur zugelassen hat, mit den Scopes, die jeder erhalten hat."
|
|
132
|
+
connections_lede: "Konten anderswo, mit denen sich dieser Akteur über einen Anbieter anmeldet."
|
|
133
|
+
password: "Passwort"
|
|
134
|
+
password_lede: "Ein Zurücksetzen sendet einen Link. Jede Sitzung und jedes Refresh-Token endet, wenn er benutzt wird."
|
|
135
|
+
password_invited: "Die Einladung ist noch nicht angenommen."
|
|
136
|
+
authenticator: "Authenticator-App"
|
|
137
|
+
backup_codes:
|
|
138
|
+
one: "%{count} Backup-Code übrig"
|
|
139
|
+
other: "%{count} Backup-Codes übrig"
|
|
140
|
+
tokens_lede: "Access- und Refresh-Tokens, die Clients für diesen Akteur ausgestellt wurden."
|
|
141
|
+
photo_lede: "Identicons und Initialen werden gezeichnet. Ein hochgeladenes Foto tritt an ihre Stelle."
|
|
142
|
+
change_photo: "Foto ändern"
|
|
143
|
+
danger_lede: "Sperren meldet überall ab und behält alles für eine Wiederherstellung. Löschen entfernt den Akteur endgültig."
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
de:
|
|
2
2
|
manage:
|
|
3
3
|
actors:
|
|
4
|
+
marks:
|
|
5
|
+
manager: "Hat einen Verwaltungs-Scope"
|
|
6
|
+
second_factor:
|
|
7
|
+
one: "Nutzt eine Authenticator-App, %{count} Backup-Code übrig"
|
|
8
|
+
other: "Nutzt eine Authenticator-App, %{count} Backup-Codes übrig"
|
|
9
|
+
invited: "Eingeladen, noch nicht angemeldet"
|
|
10
|
+
unconfirmed: "E-Mail-Adresse nicht bestätigt"
|
|
11
|
+
waiting: "Wartet auf Freigabe"
|
|
12
|
+
help: "Hat um Hilfe bei der Anmeldung gebeten"
|
|
13
|
+
suspended: "Gesperrt"
|
|
14
|
+
blocked: "Ein Gerät ist blockiert"
|
|
4
15
|
invite_many: "Mehrere einladen"
|
|
5
16
|
invites:
|
|
6
|
-
title: "Mehrere
|
|
17
|
+
title: "Mehrere Akteure einladen"
|
|
7
18
|
lede: "Fügen Sie Adressen ein, getrennt durch Zeilen, Leerzeichen oder Kommas. Jede neue Adresse erhält eine Einladung."
|
|
8
19
|
addresses: "E-Mail-Adressen"
|
|
9
20
|
groups: "Hinzufügen zu"
|
|
@@ -13,7 +24,7 @@ de:
|
|
|
13
24
|
other: "%{count} eingeladen"
|
|
14
25
|
outcomes:
|
|
15
26
|
invited: "eingeladen"
|
|
16
|
-
exists: "
|
|
27
|
+
exists: "ist bereits ein Akteur"
|
|
17
28
|
invalid: "ist keine Adresse, die masks einladen kann"
|
|
18
29
|
title: "Akteure"
|
|
19
30
|
lenses:
|
|
@@ -25,8 +36,6 @@ de:
|
|
|
25
36
|
suspended: "Gesperrt"
|
|
26
37
|
columns:
|
|
27
38
|
actor: "Akteur"
|
|
28
|
-
scopes: "Scopes"
|
|
29
|
-
second_factor: "Zweiter Faktor"
|
|
30
39
|
signed_in_on: "Angemeldet auf"
|
|
31
40
|
last_seen: "Zuletzt gesehen"
|
|
32
41
|
sessions:
|
|
@@ -47,15 +56,15 @@ de:
|
|
|
47
56
|
minimum: "Mindestens %{count} Zeichen, und Sie werden es kennen."
|
|
48
57
|
scopes: "Scopes"
|
|
49
58
|
adding: "Wird hinzugefügt..."
|
|
50
|
-
create: "
|
|
59
|
+
create: "Akteur hinzufügen"
|
|
51
60
|
invite: "Einladung senden"
|
|
52
61
|
cancel: "Abbrechen"
|
|
53
62
|
created:
|
|
54
|
-
account: "
|
|
63
|
+
account: "Akteur hinzugefügt"
|
|
55
64
|
invitation: "Einladung gesendet"
|
|
56
65
|
can_sign_in: "%{identifier} kann sich jetzt anmelden."
|
|
57
66
|
confirm_link: "Dieser Link bestätigt die Adresse:"
|
|
58
|
-
emailed: "Per E-Mail gesendet
|
|
67
|
+
emailed: "Per E-Mail gesendet. Die Annahme bestätigt die Adresse."
|
|
59
68
|
pass_along: "Geben Sie diesen Link selbst weiter. Er funktioniert einmal."
|
|
60
69
|
empty:
|
|
61
70
|
search: "Kein Akteur passt zu \"%{search}\"."
|
|
@@ -66,13 +75,5 @@ de:
|
|
|
66
75
|
suspended: "Niemand ist gesperrt."
|
|
67
76
|
everyone: "Noch kann sich niemand anmelden. Fügen Sie den ersten Akteur hinzu."
|
|
68
77
|
no_email: "keine E-Mail-Adresse"
|
|
69
|
-
unconfirmed: "unbestätigt"
|
|
70
|
-
invited: "eingeladen"
|
|
71
78
|
last_seen: "Zuletzt gesehen %{when}"
|
|
72
79
|
never: "nie"
|
|
73
|
-
authenticator: "Authenticator"
|
|
74
|
-
blocked: "gesperrt"
|
|
75
|
-
backup_codes:
|
|
76
|
-
one: "%{count} Backup-Code"
|
|
77
|
-
other: "%{count} Backup-Codes"
|
|
78
|
-
password: "Passwort"
|
|
@@ -2,8 +2,8 @@ de:
|
|
|
2
2
|
manage:
|
|
3
3
|
app:
|
|
4
4
|
waiting:
|
|
5
|
-
one: "%{count}
|
|
6
|
-
other: "%{count}
|
|
5
|
+
one: "%{count} Akteur wartet auf Sie"
|
|
6
|
+
other: "%{count} Akteure warten auf Sie"
|
|
7
7
|
missing: "Unter dieser Adresse gibt es keine Seite."
|
|
8
8
|
account: "Konto"
|
|
9
9
|
starting: "Wird gestartet"
|
|
@@ -16,9 +16,9 @@ de:
|
|
|
16
16
|
overview: "Übersicht"
|
|
17
17
|
actors: "Akteure"
|
|
18
18
|
organizations: "Organisationen"
|
|
19
|
-
clients: "
|
|
19
|
+
clients: "Clients"
|
|
20
20
|
limited:
|
|
21
21
|
read: "Sie können hier alles lesen und nichts ändern."
|
|
22
|
-
support: "Sie können
|
|
23
|
-
security: "Sie können Schlüssel,
|
|
24
|
-
both: "Sie können Einstellungen ändern und
|
|
22
|
+
support: "Sie können Akteuren helfen. Einstellungen, Schlüssel und andere Verwalter erfordern einen Eigentümer."
|
|
23
|
+
security: "Sie können Schlüssel, Clients, Anbieter und Richtlinien ändern. Akteure erfordern Support oder einen Eigentümer."
|
|
24
|
+
both: "Sie können Einstellungen ändern und Akteuren helfen. Andere Verwalter und Mandanteneinstellungen erfordern einen Eigentümer."
|