masks-server 0.11.0 → 0.12.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/account_controller.rb +3 -0
- data/app/controllers/masks/server/app_passwords_controller.rb +41 -0
- data/app/controllers/masks/server/authorize_controller.rb +33 -2
- data/app/controllers/masks/server/forward_auth_controller.rb +104 -12
- data/app/controllers/masks/server/logins_controller.rb +4 -3
- data/app/controllers/masks/server/organization_access_controller.rb +39 -0
- data/app/graphql/masks/server/manage/mutations/base_mutation.rb +7 -0
- data/app/graphql/masks/server/manage/mutations/create_group.rb +6 -4
- data/app/graphql/masks/server/manage/mutations/decline_access.rb +27 -0
- data/app/graphql/masks/server/manage/mutations/grant_access.rb +29 -0
- data/app/graphql/masks/server/manage/mutations/group_source.rb +34 -0
- data/app/graphql/masks/server/manage/mutations/issue_ldap_credential.rb +5 -2
- data/app/graphql/masks/server/manage/mutations/refresh_group.rb +21 -0
- data/app/graphql/masks/server/manage/mutations/remove_group_member.rb +2 -0
- data/app/graphql/masks/server/manage/mutations/run_health_checks.rb +19 -0
- data/app/graphql/masks/server/manage/mutations/update_client.rb +6 -0
- data/app/graphql/masks/server/manage/mutations/update_group.rb +7 -4
- data/app/graphql/masks/server/manage/mutations/update_tenant.rb +14 -1
- data/app/graphql/masks/server/manage/types/access_request_type.rb +21 -0
- data/app/graphql/masks/server/manage/types/actor_type.rb +6 -0
- data/app/graphql/masks/server/manage/types/client_type.rb +12 -0
- data/app/graphql/masks/server/manage/types/group_condition_input.rb +16 -0
- data/app/graphql/masks/server/manage/types/group_condition_type.rb +29 -0
- data/app/graphql/masks/server/manage/types/group_member_type.rb +16 -0
- data/app/graphql/masks/server/manage/types/group_type.rb +17 -1
- data/app/graphql/masks/server/manage/types/health_check_type.rb +18 -0
- data/app/graphql/masks/server/manage/types/ldap_credential_type.rb +1 -0
- data/app/graphql/masks/server/manage/types/mutation_type.rb +4 -0
- data/app/graphql/masks/server/manage/types/query_type.rb +24 -0
- data/app/graphql/masks/server/manage/types/release_type.rb +16 -0
- data/app/graphql/masks/server/manage/types/tenant_type.rb +6 -1
- data/app/helpers/masks/server/account_helper.rb +4 -0
- data/app/jobs/masks/server/cleanup_job.rb +1 -0
- data/app/jobs/masks/server/health_check_job.rb +21 -0
- data/app/jobs/masks/server/refresh_groups_job.rb +18 -0
- data/app/jobs/masks/server/release_check_job.rb +21 -0
- data/app/ldap/masks/server/ldap/connection.rb +3 -2
- data/app/ldap/masks/server/ldap/gate.rb +31 -4
- data/app/logins/masks/server/login_states/second_factor.rb +1 -1
- data/app/mailers/masks/server/actor_mailer.rb +31 -0
- data/app/models/masks/server/access_request.rb +103 -0
- data/app/models/masks/server/actor.rb +6 -0
- data/app/models/masks/server/app_password.rb +91 -0
- data/app/models/masks/server/app_passwords.rb +82 -0
- data/app/models/masks/server/client.rb +15 -0
- data/app/models/masks/server/connection.rb +7 -0
- data/app/models/masks/server/declared.rb +10 -2
- data/app/models/masks/server/email_verification.rb +2 -2
- data/app/models/masks/server/event.rb +11 -1
- data/app/models/masks/server/federation/protocol.rb +1 -1
- data/app/models/masks/server/federation/saml.rb +1 -1
- data/app/models/masks/server/forward_auth_rules.rb +162 -0
- data/app/models/masks/server/group.rb +207 -4
- data/app/models/masks/server/group_member.rb +7 -0
- data/app/models/masks/server/group_rule.rb +63 -0
- data/app/models/masks/server/health.rb +243 -0
- data/app/models/masks/server/health_check.rb +27 -0
- data/app/models/masks/server/invitation.rb +2 -2
- data/app/models/masks/server/ldap_credential.rb +2 -2
- data/app/models/masks/server/login.rb +28 -2
- data/app/models/masks/server/mail_previews.rb +5 -0
- data/app/models/masks/server/mail_template.rb +2 -0
- data/app/models/masks/server/membership.rb +10 -3
- data/app/models/masks/server/notifications.rb +3 -1
- data/app/models/masks/server/password_reset.rb +2 -2
- data/app/models/masks/server/provider.rb +1 -0
- data/app/models/masks/server/queue.rb +60 -0
- data/app/models/masks/server/release.rb +74 -0
- data/app/models/masks/server/session.rb +8 -0
- data/app/models/masks/server/tenant.rb +39 -2
- data/app/models/masks/server/token.rb +2 -1
- data/app/views/masks/server/account/_app_passwords.html.erb +83 -0
- data/app/views/masks/server/account/_organizations.html.erb +33 -0
- data/app/views/masks/server/account/index.html.erb +5 -0
- data/app/views/masks/server/actor_mailer/access_declined.html.erb +5 -0
- data/app/views/masks/server/actor_mailer/access_declined.text.erb +5 -0
- data/app/views/masks/server/actor_mailer/access_granted.html.erb +7 -0
- data/app/views/masks/server/actor_mailer/access_granted.text.erb +7 -0
- data/app/views/masks/server/authorize/error.html.erb +25 -0
- data/config/locales/de/access_requests.yml +43 -0
- data/config/locales/de/account/app_passwords.yml +42 -0
- data/config/locales/de/events.yml +5 -0
- data/config/locales/de/flashes.yml +1 -0
- data/config/locales/de/group_sources.yml +5 -0
- data/config/locales/de/manage/access_requests.yml +12 -0
- data/config/locales/de/manage/app_passwords.yml +16 -0
- data/config/locales/de/manage/forward_auth_rules.yml +29 -0
- data/config/locales/de/manage/group_sources.yml +44 -0
- data/config/locales/de/manage/health.yml +78 -0
- data/config/locales/de/manage/links.yml +20 -0
- data/config/locales/en/access_requests.yml +43 -0
- data/config/locales/en/account/app_passwords.yml +42 -0
- data/config/locales/en/events.yml +5 -0
- data/config/locales/en/flashes.yml +1 -0
- data/config/locales/en/group_sources.yml +5 -0
- data/config/locales/en/manage/access_requests.yml +12 -0
- data/config/locales/en/manage/app_passwords.yml +16 -0
- data/config/locales/en/manage/forward_auth_rules.yml +29 -0
- data/config/locales/en/manage/group_sources.yml +44 -0
- data/config/locales/en/manage/health.yml +78 -0
- data/config/locales/en/manage/links.yml +20 -0
- data/config/locales/es/access_requests.yml +43 -0
- data/config/locales/es/account/app_passwords.yml +42 -0
- data/config/locales/es/events.yml +5 -0
- data/config/locales/es/flashes.yml +1 -0
- data/config/locales/es/group_sources.yml +5 -0
- data/config/locales/es/manage/access_requests.yml +12 -0
- data/config/locales/es/manage/app_passwords.yml +16 -0
- data/config/locales/es/manage/forward_auth_rules.yml +29 -0
- data/config/locales/es/manage/group_sources.yml +44 -0
- data/config/locales/es/manage/health.yml +78 -0
- data/config/locales/es/manage/links.yml +20 -0
- data/config/locales/fr/access_requests.yml +43 -0
- data/config/locales/fr/account/app_passwords.yml +42 -0
- data/config/locales/fr/events.yml +5 -0
- data/config/locales/fr/flashes.yml +1 -0
- data/config/locales/fr/group_sources.yml +5 -0
- data/config/locales/fr/manage/access_requests.yml +12 -0
- data/config/locales/fr/manage/app_passwords.yml +16 -0
- data/config/locales/fr/manage/forward_auth_rules.yml +29 -0
- data/config/locales/fr/manage/group_sources.yml +44 -0
- data/config/locales/fr/manage/health.yml +78 -0
- data/config/locales/fr/manage/links.yml +20 -0
- data/config/routes.rb +5 -0
- data/db/migrate/20261020100000_create_access_requests.rb +28 -0
- data/db/migrate/20261020110000_add_app_passwords_to_clients.rb +5 -0
- data/db/migrate/20261020120000_add_forward_auth_rules_to_clients.rb +6 -0
- data/db/migrate/20261020130000_add_sources_to_groups.rb +15 -0
- data/db/migrate/20261020140000_create_health_checks.rb +25 -0
- data/db/migrate/20261020150000_add_link_lifetimes_to_tenants.rb +8 -0
- data/db/migrate/20261021100000_add_pinned_origin_to_tenants.rb +5 -0
- data/lib/generators/masks/server/install/install_generator.rb +3 -2
- data/lib/masks/server/configuration.rb +2 -11
- data/lib/masks/server/schema_reference.rb +12 -0
- data/lib/masks/server/tenancy/middleware.rb +17 -6
- data/public/masks-assets/.vite/manifest.json +13 -13
- data/public/masks-assets/assets/{account-D46qDQCo.js → account-h7I6VUPR.js} +2 -2
- data/public/masks-assets/assets/{account-D46qDQCo.js.map → account-h7I6VUPR.js.map} +1 -1
- data/public/masks-assets/assets/{app-D7W0gAyT.css → app-BXOScMjL.css} +1 -1
- data/public/masks-assets/assets/{handshake-DIFZPSAK.js → handshake-YQpRNMIs.js} +2 -2
- data/public/masks-assets/assets/{handshake-DIFZPSAK.js.map → handshake-YQpRNMIs.js.map} +1 -1
- data/public/masks-assets/assets/initial-Cn-UuAsy.js +3 -0
- data/public/masks-assets/assets/{initial-C1GpCiEh.js.map → initial-Cn-UuAsy.js.map} +1 -1
- data/public/masks-assets/assets/{login-C_6igRZ3.js → login-C21_jb6L.js} +3 -3
- data/public/masks-assets/assets/{login-C_6igRZ3.js.map → login-C21_jb6L.js.map} +1 -1
- data/public/masks-assets/assets/{manage-D4MzaDvM.js → manage-DpVxe5sv.js} +80 -51
- data/public/masks-assets/assets/manage-DpVxe5sv.js.map +1 -0
- data/public/masks-assets/assets/passkey-5UYPVD3c.js +2 -0
- data/public/masks-assets/assets/{passkey-DIj_5LCY.js.map → passkey-5UYPVD3c.js.map} +1 -1
- data/version.txt +1 -1
- metadata +87 -14
- data/public/masks-assets/assets/initial-C1GpCiEh.js +0 -3
- data/public/masks-assets/assets/manage-D4MzaDvM.js.map +0 -1
- data/public/masks-assets/assets/passkey-DIj_5LCY.js +0 -2
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
de:
|
|
2
|
+
manage:
|
|
3
|
+
forward_auth_rules:
|
|
4
|
+
title: "Regeln"
|
|
5
|
+
lede: "Die erste Regel, die eine Anfrage abdeckt, entscheidet sie. Eine Anfrage ohne passende Regel braucht eine angemeldete Person, die sich anmelden darf."
|
|
6
|
+
empty: "Es gibt keine Regeln. Jede Anfrage braucht eine angemeldete Person, die sich anmelden darf."
|
|
7
|
+
paths: "Pfade"
|
|
8
|
+
paths_hint: "Einer pro Zeile. * deckt ein Segment ab und ** jede Tiefe, also deckt /admin/** /admin und alles darunter ab. Leer deckt jeden Pfad ab."
|
|
9
|
+
methods: "Methoden"
|
|
10
|
+
methods_hint: "GET, POST und so weiter. Leer deckt jede Methode ab."
|
|
11
|
+
networks: "Netzwerke"
|
|
12
|
+
networks_hint: "Adressen oder Bereiche wie 192.168.0.0/16. Leer deckt jede Adresse ab."
|
|
13
|
+
groups: "Gruppen"
|
|
14
|
+
groups_hint: "Gruppenschlüssel oder Rollen als schlüssel:rolle. Leer deckt alle ab."
|
|
15
|
+
outcome: "Ergebnis"
|
|
16
|
+
outcomes:
|
|
17
|
+
open: "Offen für alle, ohne Anmeldung"
|
|
18
|
+
one_factor: "Eine angemeldete Person, ohne zweiten Faktor"
|
|
19
|
+
two_factor: "Eine angemeldete Person, mit ihrem zweiten Faktor"
|
|
20
|
+
token: "Eine angemeldete Person oder ein Skript mit einem Zugriffstoken"
|
|
21
|
+
deny: "Für alle gesperrt"
|
|
22
|
+
rule: "Regel %{number}"
|
|
23
|
+
add: "Regel hinzufügen"
|
|
24
|
+
remove: "Entfernen"
|
|
25
|
+
up: "Nach oben"
|
|
26
|
+
down: "Nach unten"
|
|
27
|
+
save: "Regeln speichern"
|
|
28
|
+
saved: "Regeln gespeichert."
|
|
29
|
+
trust: "Eine Netzwerkregel vertraut der Adresse, die der Proxy sendet. Stellen Sie sicher, dass der Proxy X-Forwarded-For selbst setzt."
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
de:
|
|
2
|
+
manage:
|
|
3
|
+
group_sources:
|
|
4
|
+
source: "Füllt sich aus"
|
|
5
|
+
sources:
|
|
6
|
+
manual: "Von Hand hinzugefügte Personen"
|
|
7
|
+
rule: "Einer Regel"
|
|
8
|
+
provider: "Einem Anbieter"
|
|
9
|
+
group: "Anderen Gruppen"
|
|
10
|
+
ledes:
|
|
11
|
+
manual: "Ein Verwalter fügt Personen auf deren eigenen Seiten hinzu und entfernt sie dort."
|
|
12
|
+
rule: "Alle, die jede Bedingung erfüllen. Eine E-Mail-Adresse zählt, sobald sie bestätigt ist. Ein Profilfeld zählt nur, wenn ein Verzeichnis es setzt, denn solche Felder können Personen nicht ändern. Geprüft bei jeder Profiländerung und jede Stunde."
|
|
13
|
+
provider: "Alle, deren letzte Anmeldung über den Anbieter die Gruppe aufgeführt hat."
|
|
14
|
+
group: "Alle in einer der übergeordneten Gruppen oder Organisationsrollen."
|
|
15
|
+
change: "Ändern, wie sich %{name} füllt"
|
|
16
|
+
kinds:
|
|
17
|
+
email_domain: "E-Mail-Adresse endet auf"
|
|
18
|
+
profile: "Profilfeld ist gleich"
|
|
19
|
+
field: "Feld"
|
|
20
|
+
value: "Wert"
|
|
21
|
+
add_condition: "Bedingung hinzufügen"
|
|
22
|
+
remove_condition: "Bedingung entfernen"
|
|
23
|
+
provider: "Anbieter"
|
|
24
|
+
choose_provider: "Anbieter wählen"
|
|
25
|
+
no_providers: "Fügen Sie zuerst einen Anbieter hinzu."
|
|
26
|
+
upstream_group: "Gruppenname beim Anbieter"
|
|
27
|
+
parent_labels: "Übergeordnete Gruppen"
|
|
28
|
+
parent_labels_hint: "Gruppenschlüssel oder Organisationsrollen als schlüssel:rolle, durch Kommas getrennt."
|
|
29
|
+
save: "Speichern"
|
|
30
|
+
cancel: "Abbrechen"
|
|
31
|
+
saved: "%{name} füllt sich jetzt aus %{source}."
|
|
32
|
+
refresh: "Jetzt auffrischen"
|
|
33
|
+
refreshed: "%{name} ist aufgefrischt."
|
|
34
|
+
refreshed_at: "Aufgefrischt %{when}."
|
|
35
|
+
never_refreshed: "Noch nicht aufgefrischt."
|
|
36
|
+
summary:
|
|
37
|
+
rule: "Füllt sich per Regel"
|
|
38
|
+
provider: "Füllt sich aus %{provider}"
|
|
39
|
+
group: "Füllt sich aus %{parents}"
|
|
40
|
+
by_hand: "Von Hand hinzugefügt, daher entfernt nur ein Verwalter die Person."
|
|
41
|
+
from:
|
|
42
|
+
rule: "Durch die Regel in der Gruppe, daher entscheidet die Regel."
|
|
43
|
+
provider: "Durch eine Anmeldung beim Anbieter in der Gruppe, daher entscheidet der Anbieter."
|
|
44
|
+
group: "Über eine übergeordnete Gruppe in der Gruppe, daher entscheidet diese."
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
de:
|
|
2
|
+
manage:
|
|
3
|
+
health:
|
|
4
|
+
title: "Zustand"
|
|
5
|
+
lede: "Die Prüfungen laufen alle 10 Minuten. Jede sagt, was sie gefunden hat und was zu tun ist."
|
|
6
|
+
check_now: "Jetzt prüfen"
|
|
7
|
+
checking: "Prüft"
|
|
8
|
+
checked: "Geprüft %{when}"
|
|
9
|
+
never: "Die Prüfungen sind noch nicht gelaufen. Sie laufen alle 10 Minuten, sobald ein Worker läuft."
|
|
10
|
+
failed: "Die Prüfungen konnten nicht laufen: %{failure}"
|
|
11
|
+
statuses:
|
|
12
|
+
ok: "In Ordnung"
|
|
13
|
+
warning: "Braucht einen Blick"
|
|
14
|
+
failing: "Fehlgeschlagen"
|
|
15
|
+
checks:
|
|
16
|
+
jobs:
|
|
17
|
+
title: "Hintergrundjobs"
|
|
18
|
+
elsewhere: "Jobs laufen auf einem anderen Server."
|
|
19
|
+
none: "Am letzten Tag ist kein Job fehlgeschlagen."
|
|
20
|
+
failed:
|
|
21
|
+
one: "Eine Art Job ist am letzten Tag fehlgeschlagen: %{jobs}."
|
|
22
|
+
other: "%{count} Arten von Jobs sind am letzten Tag fehlgeschlagen: %{jobs}."
|
|
23
|
+
advice: "Lesen Sie den Fehler im Serverprotokoll. Jeder Job läuft nach seinem Zeitplan erneut."
|
|
24
|
+
worker:
|
|
25
|
+
title: "Worker"
|
|
26
|
+
elsewhere: "Jobs laufen auf einem anderen Server."
|
|
27
|
+
unchecked: "Die Worker-Prüfung ist aus."
|
|
28
|
+
reporting: "Ein Worker läuft."
|
|
29
|
+
silent: "In den letzten %{minutes} Minuten hat sich kein Worker gemeldet."
|
|
30
|
+
advice: "Starten Sie den Jobs-Prozess, oder setzen Sie MASKS_JOBS_IN_WEB_SERVER auf true, damit der Webserver die Jobs ausführt."
|
|
31
|
+
queue:
|
|
32
|
+
title: "Warteschlange"
|
|
33
|
+
elsewhere: "Jobs laufen auf einem anderen Server."
|
|
34
|
+
unchecked: "Die Warteschlangen-Prüfung ist aus."
|
|
35
|
+
moving: "Jobs starten pünktlich."
|
|
36
|
+
stuck: "Ein Job wartet seit %{since} auf seinen Start, länger als %{minutes} Minuten."
|
|
37
|
+
advice: "Fügen Sie einen Worker hinzu, oder erhöhen Sie JOB_CONCURRENCY, damit mehr Jobs gleichzeitig laufen."
|
|
38
|
+
ldap:
|
|
39
|
+
title: "LDAP"
|
|
40
|
+
tls: "LDAP antwortet mit TLS."
|
|
41
|
+
local: "LDAP antwortet nur auf der eigenen Maschine des Servers."
|
|
42
|
+
plain: "LDAP antwortet auf Port %{port} ohne TLS, also gehen Passwörter im Klartext durchs Netz."
|
|
43
|
+
advice: "Setzen Sie MASKS_LDAP_CERT und MASKS_LDAP_KEY, oder entfernen Sie MASKS_LDAP_PLAINTEXT."
|
|
44
|
+
metrics:
|
|
45
|
+
title: "Metriken"
|
|
46
|
+
"off": "Die Metrikseite ist aus."
|
|
47
|
+
"on": "Die Metrikseite beantwortet Anfragen, die ihr Token tragen."
|
|
48
|
+
short: "Das Metrik-Token ist %{length} Zeichen lang und lässt sich erraten."
|
|
49
|
+
advice: "Setzen Sie MASKS_METRICS_TOKEN auf mindestens %{needed} zufällige Zeichen."
|
|
50
|
+
mail:
|
|
51
|
+
title: "E-Mail"
|
|
52
|
+
none: "Kein E-Mail-Dienst ist eingerichtet."
|
|
53
|
+
answers: "Der Mailserver antwortet."
|
|
54
|
+
silent: "Der Mailserver hat nicht geantwortet: %{error}."
|
|
55
|
+
advice: "Prüfen Sie Server, Port und TLS-Einstellung auf der Seite Nachrichten, und ob der Server Verbindungen von hier zulässt."
|
|
56
|
+
origin:
|
|
57
|
+
title: "Öffentliche Adresse"
|
|
58
|
+
unset: "Keine öffentliche Adresse ist gesetzt, also folgt masks dem Host-Header jeder Anfrage."
|
|
59
|
+
matches: "Anfragen kommen an der öffentlichen Adresse dieses Mandanten an."
|
|
60
|
+
mismatch: "Anfragen kommen als %{seen} an, aber die Adresse dieses Mandanten ist %{origin}."
|
|
61
|
+
advice: "Lassen Sie den Proxy X-Forwarded-Proto und X-Forwarded-Host senden, und tragen Sie ihn in MASKS_TRUSTED_PROXIES ein."
|
|
62
|
+
domains:
|
|
63
|
+
title: "Domains"
|
|
64
|
+
none: "Keine Domain ist beansprucht."
|
|
65
|
+
proven: "Jede beanspruchte Domain hat noch ihren TXT-Eintrag."
|
|
66
|
+
missing: "Der TXT-Eintrag fehlt für %{domains}. Ein Anspruch wird eine Woche nach dem Verschwinden seines Eintrags freigegeben."
|
|
67
|
+
advice: "Legen Sie den TXT-Eintrag wieder unter dem Namen an, der auf der Seite Domains steht."
|
|
68
|
+
keys:
|
|
69
|
+
title: "Signaturschlüssel"
|
|
70
|
+
missing: "Dieser Mandant hat keinen aktiven Signaturschlüssel, also kann nichts signiert werden."
|
|
71
|
+
manual: "Schlüssel werden von Hand rotiert. Der aktive Schlüssel ist %{days} Tage alt."
|
|
72
|
+
fresh: "Der aktive Schlüssel ist %{days} Tage alt und rotiert alle %{period} Tage."
|
|
73
|
+
stale: "Der aktive Schlüssel ist %{days} Tage alt, älter als seine Rotation von %{period} Tagen."
|
|
74
|
+
advice: "Rotieren Sie den Schlüssel auf der Seite Einstellungen, oder lesen Sie den Job signing_keys im Serverprotokoll."
|
|
75
|
+
release:
|
|
76
|
+
available: "Version %{version} ist verfügbar."
|
|
77
|
+
operator: "Diese Version braucht einen Schritt von einem Betreiber. Lesen Sie ihre Hinweise vor dem Upgrade."
|
|
78
|
+
notes: "Versionshinweise"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
de:
|
|
2
|
+
manage:
|
|
3
|
+
links:
|
|
4
|
+
title: "Links"
|
|
5
|
+
help: "Wie lange jeder Link gültig ist, den masks per E-Mail sendet. Ein bereits gesendeter Link behält die Gültigkeit, mit der er gesendet wurde. Eine Einladung in eine Organisation zählt ab dem letzten Senden."
|
|
6
|
+
invitation: "Einladung zu einem Konto"
|
|
7
|
+
organization_invitation: "Einladung in eine Organisation"
|
|
8
|
+
password_reset: "Passwort zurücksetzen"
|
|
9
|
+
email_verification: "E-Mail-Bestätigung"
|
|
10
|
+
default: "%{length} (Standard)"
|
|
11
|
+
updated: "Gültigkeit des Links gespeichert."
|
|
12
|
+
minutes:
|
|
13
|
+
one: "%{count} Minute"
|
|
14
|
+
other: "%{count} Minuten"
|
|
15
|
+
hours:
|
|
16
|
+
one: "%{count} Stunde"
|
|
17
|
+
other: "%{count} Stunden"
|
|
18
|
+
days:
|
|
19
|
+
one: "%{count} Tag"
|
|
20
|
+
other: "%{count} Tage"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
en:
|
|
2
|
+
authorize:
|
|
3
|
+
error:
|
|
4
|
+
asking: "Your account is not in a group that may use %{app}. You can ask for access. The people who run %{app} decide, and you get an email either way."
|
|
5
|
+
ask: "Ask for access"
|
|
6
|
+
asked: "Your request was sent. You get an email once it is decided."
|
|
7
|
+
waiting: "Your request to use %{app} is waiting. You get an email once it is decided."
|
|
8
|
+
slow_down: "You asked for access to this app less than an hour ago. Wait for the answer."
|
|
9
|
+
back: "Back to %{app}"
|
|
10
|
+
the_app: "the app"
|
|
11
|
+
|
|
12
|
+
account:
|
|
13
|
+
index:
|
|
14
|
+
access:
|
|
15
|
+
heading: "Asked for access"
|
|
16
|
+
lede: "These people were turned away from an app that admits members of %{organization}. Approving makes them a member with the role you pick."
|
|
17
|
+
asked: "Asked to use %{app} %{age} ago"
|
|
18
|
+
role_of: "Role for %{name}"
|
|
19
|
+
grant: "Approve"
|
|
20
|
+
decline: "Decline"
|
|
21
|
+
confirm_decline: "Decline %{identifier}'s request to use %{app}? They get an email, and they can ask again in an hour."
|
|
22
|
+
|
|
23
|
+
organization_access:
|
|
24
|
+
granted: "%{identifier} is %{role} of %{organization} now and can use %{app}."
|
|
25
|
+
declined: "%{identifier}'s request to use %{app} is declined."
|
|
26
|
+
unknown: "That request is not waiting on %{organization}."
|
|
27
|
+
|
|
28
|
+
actor_mailer:
|
|
29
|
+
access_granted:
|
|
30
|
+
subject: "You can use %{app} now"
|
|
31
|
+
lede: "Your request to use %{app} at %{tenant} was approved. Sign in to %{app} again and you are let in."
|
|
32
|
+
action: "Open %{app}"
|
|
33
|
+
access_declined:
|
|
34
|
+
subject: "Your request to use %{app} was declined"
|
|
35
|
+
lede: "Somebody who runs %{app} at %{tenant} declined your request for access."
|
|
36
|
+
again: "If you think this is a mistake, ask them directly. You can ask again in an hour."
|
|
37
|
+
|
|
38
|
+
events:
|
|
39
|
+
actions:
|
|
40
|
+
access:
|
|
41
|
+
requested: "Asked for access to an app"
|
|
42
|
+
granted: "Access to an app granted"
|
|
43
|
+
declined: "Access to an app declined"
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
en:
|
|
2
|
+
account:
|
|
3
|
+
index:
|
|
4
|
+
app_passwords:
|
|
5
|
+
heading: "App passwords"
|
|
6
|
+
entry: "App passwords"
|
|
7
|
+
state:
|
|
8
|
+
none: "None"
|
|
9
|
+
lede: "An app password lets one app, such as a media server or a NAS, sign in as you without your second factor. It works for the app it was made for and nothing else."
|
|
10
|
+
shown_once: "This is the app password for %{name}. It is shown once. Enter it in %{app} now."
|
|
11
|
+
made_ago: "made %{age} ago"
|
|
12
|
+
used_ago: "last used %{age} ago"
|
|
13
|
+
never_used: "never used"
|
|
14
|
+
revoke: "Revoke"
|
|
15
|
+
confirm_revoke: "Revoke %{name}? The app stops signing in with it right away."
|
|
16
|
+
name: "Name"
|
|
17
|
+
name_placeholder: "Jellyfin on the TV"
|
|
18
|
+
app: "App"
|
|
19
|
+
make: "Make app password"
|
|
20
|
+
make_again: "Sign in again to make one"
|
|
21
|
+
hint: "Your own password and passkeys stay as they are. Revoking an app password changes nothing else."
|
|
22
|
+
none_offered: "No app accepts app passwords yet."
|
|
23
|
+
app_passwords:
|
|
24
|
+
again: "Sign in again to make an app password. It has been a while since you did."
|
|
25
|
+
unknown: "There is no such app password on this account."
|
|
26
|
+
revoked: "%{name} is revoked."
|
|
27
|
+
refused:
|
|
28
|
+
name: "Give the app password a name of up to 64 characters."
|
|
29
|
+
app: "That app does not accept app passwords."
|
|
30
|
+
too_many: "You already have %{most} app passwords. Revoke one first."
|
|
31
|
+
events:
|
|
32
|
+
actions:
|
|
33
|
+
app_password:
|
|
34
|
+
created: "App password made"
|
|
35
|
+
used: "Signed in with an app password"
|
|
36
|
+
revoked: "App password revoked"
|
|
37
|
+
actor_mailer:
|
|
38
|
+
notification:
|
|
39
|
+
said:
|
|
40
|
+
app_password:
|
|
41
|
+
created: "An app password was made on your %{tenant} account. It signs in to one app without your second factor."
|
|
42
|
+
revoked: "An app password on your %{tenant} account was revoked."
|
|
@@ -159,6 +159,11 @@ en:
|
|
|
159
159
|
updated: "Email template changed"
|
|
160
160
|
job:
|
|
161
161
|
failed: "Background job failed for this tenant"
|
|
162
|
+
health:
|
|
163
|
+
failing: "Health check failing"
|
|
164
|
+
recovered: "Health check recovered"
|
|
165
|
+
release:
|
|
166
|
+
available: "New release available"
|
|
162
167
|
stream:
|
|
163
168
|
created: "Event stream added"
|
|
164
169
|
updated: "Event stream changed"
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
en:
|
|
2
|
+
manage:
|
|
3
|
+
access_requests:
|
|
4
|
+
title: "Access requests"
|
|
5
|
+
lede: "Actors who were turned away from this client and asked for access. Approving puts them in one of the groups it allows, and they get an email either way."
|
|
6
|
+
empty: "Nobody is waiting for access."
|
|
7
|
+
asked: "Asked %{day}"
|
|
8
|
+
as: "Group to put them in"
|
|
9
|
+
grant: "Approve"
|
|
10
|
+
decline: "Decline"
|
|
11
|
+
granted: "%{identifier} is in %{label} now and can sign in."
|
|
12
|
+
declined: "%{identifier}'s request is declined."
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
en:
|
|
2
|
+
manage:
|
|
3
|
+
client:
|
|
4
|
+
sign_in:
|
|
5
|
+
app_passwords: "Accept app passwords"
|
|
6
|
+
app_passwords_help: "People make an app password for this client on their account page. It signs them in over LDAP and forward auth without a second factor, for this client alone."
|
|
7
|
+
notices:
|
|
8
|
+
app_passwords_on: "People can make an app password for it now."
|
|
9
|
+
app_passwords_off: "Its app passwords are refused from now on."
|
|
10
|
+
ldap:
|
|
11
|
+
connect:
|
|
12
|
+
app: "App"
|
|
13
|
+
no_app: "No app"
|
|
14
|
+
app_help: "Choose the client the service is registered as. People's app passwords for that client then bind on a connection that bound with this credential first."
|
|
15
|
+
credentials:
|
|
16
|
+
app: "Accepts app passwords for %{name}"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
en:
|
|
2
|
+
manage:
|
|
3
|
+
forward_auth_rules:
|
|
4
|
+
title: "Rules"
|
|
5
|
+
lede: "The first rule that covers a request decides it. A request no rule covers needs a signed-in person who may sign in."
|
|
6
|
+
empty: "There are no rules. Every request needs a signed-in person who may sign in."
|
|
7
|
+
paths: "Paths"
|
|
8
|
+
paths_hint: "One per line. * covers one segment and ** covers any depth, so /admin/** covers /admin and everything under it. Empty covers every path."
|
|
9
|
+
methods: "Methods"
|
|
10
|
+
methods_hint: "GET, POST, and so on. Empty covers every method."
|
|
11
|
+
networks: "Networks"
|
|
12
|
+
networks_hint: "Addresses or ranges, such as 192.168.0.0/16. Empty covers every address."
|
|
13
|
+
groups: "Groups"
|
|
14
|
+
groups_hint: "Group keys, or roles as key:role. Empty covers everyone."
|
|
15
|
+
outcome: "Outcome"
|
|
16
|
+
outcomes:
|
|
17
|
+
open: "Open to everyone, with no sign-in"
|
|
18
|
+
one_factor: "A signed-in person, without a second factor"
|
|
19
|
+
two_factor: "A signed-in person, with their second factor"
|
|
20
|
+
token: "A signed-in person, or a script with an access token"
|
|
21
|
+
deny: "Closed to everyone"
|
|
22
|
+
rule: "Rule %{number}"
|
|
23
|
+
add: "Add rule"
|
|
24
|
+
remove: "Remove"
|
|
25
|
+
up: "Move up"
|
|
26
|
+
down: "Move down"
|
|
27
|
+
save: "Save rules"
|
|
28
|
+
saved: "Rules saved."
|
|
29
|
+
trust: "A network rule trusts the address the proxy sends. Make sure the proxy sets X-Forwarded-For itself."
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
en:
|
|
2
|
+
manage:
|
|
3
|
+
group_sources:
|
|
4
|
+
source: "Fills from"
|
|
5
|
+
sources:
|
|
6
|
+
manual: "People added by hand"
|
|
7
|
+
rule: "A rule"
|
|
8
|
+
provider: "A provider"
|
|
9
|
+
group: "Other groups"
|
|
10
|
+
ledes:
|
|
11
|
+
manual: "A manager adds and removes people on their own pages."
|
|
12
|
+
rule: "Everyone who matches every condition. An email address counts once it is verified. A profile field counts only when a directory sets it, since people cannot change those. Checked when a profile changes and every hour."
|
|
13
|
+
provider: "Everyone whose last sign-in through the provider listed the group."
|
|
14
|
+
group: "Everyone in any of the parent groups or organization roles."
|
|
15
|
+
change: "Change how %{name} fills"
|
|
16
|
+
kinds:
|
|
17
|
+
email_domain: "Email address ends with"
|
|
18
|
+
profile: "Profile field equals"
|
|
19
|
+
field: "Field"
|
|
20
|
+
value: "Value"
|
|
21
|
+
add_condition: "Add condition"
|
|
22
|
+
remove_condition: "Remove condition"
|
|
23
|
+
provider: "Provider"
|
|
24
|
+
choose_provider: "Choose a provider"
|
|
25
|
+
no_providers: "Add a provider first."
|
|
26
|
+
upstream_group: "Group name at the provider"
|
|
27
|
+
parent_labels: "Parent groups"
|
|
28
|
+
parent_labels_hint: "Group keys or organization roles as key:role, separated by commas."
|
|
29
|
+
save: "Save"
|
|
30
|
+
cancel: "Cancel"
|
|
31
|
+
saved: "%{name} now fills from %{source}."
|
|
32
|
+
refresh: "Refresh now"
|
|
33
|
+
refreshed: "%{name} is refreshed."
|
|
34
|
+
refreshed_at: "Refreshed %{when}."
|
|
35
|
+
never_refreshed: "Not refreshed yet."
|
|
36
|
+
summary:
|
|
37
|
+
rule: "Fills by rule"
|
|
38
|
+
provider: "Fills from %{provider}"
|
|
39
|
+
group: "Fills from %{parents}"
|
|
40
|
+
by_hand: "Added by hand, so only a manager removes them."
|
|
41
|
+
from:
|
|
42
|
+
rule: "In the group by its rule, so the rule decides."
|
|
43
|
+
provider: "In the group from a provider sign-in, so the provider decides."
|
|
44
|
+
group: "In the group through a parent group, so the parent decides."
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
en:
|
|
2
|
+
manage:
|
|
3
|
+
health:
|
|
4
|
+
title: "Health"
|
|
5
|
+
lede: "Checks run every 10 minutes. Each one says what it found and what to do."
|
|
6
|
+
check_now: "Check now"
|
|
7
|
+
checking: "Checking"
|
|
8
|
+
checked: "Checked %{when}"
|
|
9
|
+
never: "The checks have not run yet. They run every 10 minutes once a worker is up."
|
|
10
|
+
failed: "The checks could not run: %{failure}"
|
|
11
|
+
statuses:
|
|
12
|
+
ok: "Fine"
|
|
13
|
+
warning: "Needs a look"
|
|
14
|
+
failing: "Failing"
|
|
15
|
+
checks:
|
|
16
|
+
jobs:
|
|
17
|
+
title: "Background jobs"
|
|
18
|
+
elsewhere: "Jobs run on another server."
|
|
19
|
+
none: "No job failed in the last day."
|
|
20
|
+
failed:
|
|
21
|
+
one: "One kind of job failed in the last day: %{jobs}."
|
|
22
|
+
other: "%{count} kinds of job failed in the last day: %{jobs}."
|
|
23
|
+
advice: "Read the error in the server log. Each job runs again on its schedule."
|
|
24
|
+
worker:
|
|
25
|
+
title: "Worker"
|
|
26
|
+
elsewhere: "Jobs run on another server."
|
|
27
|
+
unchecked: "The worker check is off."
|
|
28
|
+
reporting: "A worker is running."
|
|
29
|
+
silent: "No worker has reported in the last %{minutes} minutes."
|
|
30
|
+
advice: "Start the jobs process, or set MASKS_JOBS_IN_WEB_SERVER to true so the web server runs jobs."
|
|
31
|
+
queue:
|
|
32
|
+
title: "Queue"
|
|
33
|
+
elsewhere: "Jobs run on another server."
|
|
34
|
+
unchecked: "The queue check is off."
|
|
35
|
+
moving: "Jobs start on time."
|
|
36
|
+
stuck: "A job has waited to start since %{since}, longer than %{minutes} minutes."
|
|
37
|
+
advice: "Add a worker, or raise JOB_CONCURRENCY so more jobs run at once."
|
|
38
|
+
ldap:
|
|
39
|
+
title: "LDAP"
|
|
40
|
+
tls: "LDAP answers with TLS."
|
|
41
|
+
local: "LDAP answers only on the server's own machine."
|
|
42
|
+
plain: "LDAP answers on port %{port} without TLS, so passwords cross the network in the clear."
|
|
43
|
+
advice: "Set MASKS_LDAP_CERT and MASKS_LDAP_KEY, or unset MASKS_LDAP_PLAINTEXT."
|
|
44
|
+
metrics:
|
|
45
|
+
title: "Metrics"
|
|
46
|
+
"off": "The metrics page is off."
|
|
47
|
+
"on": "The metrics page answers a request that carries its token."
|
|
48
|
+
short: "The metrics token is %{length} characters long, so it can be guessed."
|
|
49
|
+
advice: "Set MASKS_METRICS_TOKEN to at least %{needed} random characters."
|
|
50
|
+
mail:
|
|
51
|
+
title: "Mail"
|
|
52
|
+
none: "No mail service is set up."
|
|
53
|
+
answers: "The mail server answers."
|
|
54
|
+
silent: "The mail server did not answer: %{error}."
|
|
55
|
+
advice: "Check the server, port, and TLS setting on the Messages page, and that the server allows this one to connect."
|
|
56
|
+
origin:
|
|
57
|
+
title: "Public address"
|
|
58
|
+
unset: "No public address is set, so masks follows each request's Host header."
|
|
59
|
+
matches: "Requests arrive at this tenant's public address."
|
|
60
|
+
mismatch: "Requests arrive as %{seen}, but this tenant's address is %{origin}."
|
|
61
|
+
advice: "Have the proxy send X-Forwarded-Proto and X-Forwarded-Host, and list it in MASKS_TRUSTED_PROXIES."
|
|
62
|
+
domains:
|
|
63
|
+
title: "Domains"
|
|
64
|
+
none: "No domain is claimed."
|
|
65
|
+
proven: "Every claimed domain still has its TXT record."
|
|
66
|
+
missing: "The TXT record is gone for %{domains}. A claim is released a week after its record disappears."
|
|
67
|
+
advice: "Put the TXT record back at the name shown on the Domains page."
|
|
68
|
+
keys:
|
|
69
|
+
title: "Signing keys"
|
|
70
|
+
missing: "This tenant has no active signing key, so nothing can be signed."
|
|
71
|
+
manual: "Keys rotate by hand. The active key is %{days} days old."
|
|
72
|
+
fresh: "The active key is %{days} days old and rotates every %{period} days."
|
|
73
|
+
stale: "The active key is %{days} days old, past its %{period} day rotation."
|
|
74
|
+
advice: "Rotate the key on the Settings page, or read the signing_keys job in the server log."
|
|
75
|
+
release:
|
|
76
|
+
available: "Version %{version} is available."
|
|
77
|
+
operator: "This release needs a step from an operator. Read its notes before you upgrade."
|
|
78
|
+
notes: "Release notes"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
en:
|
|
2
|
+
manage:
|
|
3
|
+
links:
|
|
4
|
+
title: "Links"
|
|
5
|
+
help: "How long each link masks emails stays valid. A link already sent keeps the lifetime it was sent with. An invitation to an organization counts from when it was last sent."
|
|
6
|
+
invitation: "Invitation to an account"
|
|
7
|
+
organization_invitation: "Invitation to an organization"
|
|
8
|
+
password_reset: "Password reset"
|
|
9
|
+
email_verification: "Email confirmation"
|
|
10
|
+
default: "%{length} (default)"
|
|
11
|
+
updated: "Link lifetime saved."
|
|
12
|
+
minutes:
|
|
13
|
+
one: "%{count} minute"
|
|
14
|
+
other: "%{count} minutes"
|
|
15
|
+
hours:
|
|
16
|
+
one: "%{count} hour"
|
|
17
|
+
other: "%{count} hours"
|
|
18
|
+
days:
|
|
19
|
+
one: "%{count} day"
|
|
20
|
+
other: "%{count} days"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
es:
|
|
2
|
+
authorize:
|
|
3
|
+
error:
|
|
4
|
+
asking: "Tu cuenta no está en ningún grupo que pueda usar %{app}. Puedes pedir acceso. Quienes gestionan %{app} deciden, y recibirás un correo en cualquier caso."
|
|
5
|
+
ask: "Pedir acceso"
|
|
6
|
+
asked: "Tu solicitud se envió. Recibirás un correo cuando se decida."
|
|
7
|
+
waiting: "Tu solicitud para usar %{app} está pendiente. Recibirás un correo cuando se decida."
|
|
8
|
+
slow_down: "Pediste acceso a esta aplicación hace menos de una hora. Espera la respuesta."
|
|
9
|
+
back: "Volver a %{app}"
|
|
10
|
+
the_app: "la aplicación"
|
|
11
|
+
|
|
12
|
+
account:
|
|
13
|
+
index:
|
|
14
|
+
access:
|
|
15
|
+
heading: "Pidieron acceso"
|
|
16
|
+
lede: "Estas personas fueron rechazadas por una aplicación que admite a los miembros de %{organization}. Al aprobar, pasan a ser miembros con el rol que elijas."
|
|
17
|
+
asked: "Pidió usar %{app} hace %{age}"
|
|
18
|
+
role_of: "Rol para %{name}"
|
|
19
|
+
grant: "Aprobar"
|
|
20
|
+
decline: "Rechazar"
|
|
21
|
+
confirm_decline: "¿Rechazar la solicitud de %{identifier} para usar %{app}? Recibirá un correo y podrá volver a pedirlo en una hora."
|
|
22
|
+
|
|
23
|
+
organization_access:
|
|
24
|
+
granted: "%{identifier} ahora es %{role} de %{organization} y puede usar %{app}."
|
|
25
|
+
declined: "La solicitud de %{identifier} para usar %{app} fue rechazada."
|
|
26
|
+
unknown: "Esa solicitud no está pendiente de %{organization}."
|
|
27
|
+
|
|
28
|
+
actor_mailer:
|
|
29
|
+
access_granted:
|
|
30
|
+
subject: "Ya puedes usar %{app}"
|
|
31
|
+
lede: "Tu solicitud para usar %{app} en %{tenant} fue aprobada. Vuelve a iniciar sesión en %{app} y entrarás."
|
|
32
|
+
action: "Abrir %{app}"
|
|
33
|
+
access_declined:
|
|
34
|
+
subject: "Tu solicitud para usar %{app} fue rechazada"
|
|
35
|
+
lede: "Alguien que gestiona %{app} en %{tenant} rechazó tu solicitud de acceso."
|
|
36
|
+
again: "Si crees que es un error, pregúntale directamente. Puedes volver a pedirlo en una hora."
|
|
37
|
+
|
|
38
|
+
events:
|
|
39
|
+
actions:
|
|
40
|
+
access:
|
|
41
|
+
requested: "Pidió acceso a una aplicación"
|
|
42
|
+
granted: "Acceso a una aplicación concedido"
|
|
43
|
+
declined: "Acceso a una aplicación rechazado"
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
es:
|
|
2
|
+
account:
|
|
3
|
+
index:
|
|
4
|
+
app_passwords:
|
|
5
|
+
heading: "Contraseñas de aplicación"
|
|
6
|
+
entry: "Contraseñas de aplicación"
|
|
7
|
+
state:
|
|
8
|
+
none: "Ninguna"
|
|
9
|
+
lede: "Una contraseña de aplicación permite que una sola aplicación, como un servidor multimedia o un NAS, inicie sesión como tú sin tu segundo factor. Solo sirve para la aplicación para la que se creó."
|
|
10
|
+
shown_once: "Esta es la contraseña de aplicación de %{name}. Se muestra una sola vez. Introdúcela ahora en %{app}."
|
|
11
|
+
made_ago: "creada hace %{age}"
|
|
12
|
+
used_ago: "usada por última vez hace %{age}"
|
|
13
|
+
never_used: "nunca usada"
|
|
14
|
+
revoke: "Revocar"
|
|
15
|
+
confirm_revoke: "¿Revocar %{name}? La aplicación deja de iniciar sesión con ella de inmediato."
|
|
16
|
+
name: "Nombre"
|
|
17
|
+
name_placeholder: "Jellyfin en la tele"
|
|
18
|
+
app: "Aplicación"
|
|
19
|
+
make: "Crear contraseña de aplicación"
|
|
20
|
+
make_again: "Vuelve a iniciar sesión para crear una"
|
|
21
|
+
hint: "Tu propia contraseña y tus llaves de acceso no cambian. Revocar una contraseña de aplicación no cambia nada más."
|
|
22
|
+
none_offered: "Ninguna aplicación acepta contraseñas de aplicación todavía."
|
|
23
|
+
app_passwords:
|
|
24
|
+
again: "Vuelve a iniciar sesión para crear una contraseña de aplicación. Hace tiempo que no lo haces."
|
|
25
|
+
unknown: "No hay tal contraseña de aplicación en esta cuenta."
|
|
26
|
+
revoked: "%{name} está revocada."
|
|
27
|
+
refused:
|
|
28
|
+
name: "Da a la contraseña de aplicación un nombre de hasta 64 caracteres."
|
|
29
|
+
app: "Esa aplicación no acepta contraseñas de aplicación."
|
|
30
|
+
too_many: "Ya tienes %{most} contraseñas de aplicación. Revoca una primero."
|
|
31
|
+
events:
|
|
32
|
+
actions:
|
|
33
|
+
app_password:
|
|
34
|
+
created: "Contraseña de aplicación creada"
|
|
35
|
+
used: "Sesión iniciada con una contraseña de aplicación"
|
|
36
|
+
revoked: "Contraseña de aplicación revocada"
|
|
37
|
+
actor_mailer:
|
|
38
|
+
notification:
|
|
39
|
+
said:
|
|
40
|
+
app_password:
|
|
41
|
+
created: "Se creó una contraseña de aplicación en tu cuenta de %{tenant}. Con ella una aplicación inicia sesión sin tu segundo factor."
|
|
42
|
+
revoked: "Se revocó una contraseña de aplicación de tu cuenta de %{tenant}."
|
|
@@ -159,6 +159,11 @@ es:
|
|
|
159
159
|
updated: "Plantilla de correo cambiada"
|
|
160
160
|
job:
|
|
161
161
|
failed: "Tarea en segundo plano fallida para este inquilino"
|
|
162
|
+
health:
|
|
163
|
+
failing: "Comprobación de estado fallando"
|
|
164
|
+
recovered: "Comprobación de estado recuperada"
|
|
165
|
+
release:
|
|
166
|
+
available: "Nueva versión disponible"
|
|
162
167
|
stream:
|
|
163
168
|
created: "Flujo de eventos añadido"
|
|
164
169
|
updated: "Flujo de eventos cambiado"
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
es:
|
|
2
|
+
manage:
|
|
3
|
+
access_requests:
|
|
4
|
+
title: "Solicitudes de acceso"
|
|
5
|
+
lede: "Actores que fueron rechazados por este cliente y pidieron acceso. Al aprobar, pasan a uno de los grupos que admite, y reciben un correo en cualquier caso."
|
|
6
|
+
empty: "Nadie está esperando acceso."
|
|
7
|
+
asked: "Pedido %{day}"
|
|
8
|
+
as: "Grupo al que pasan"
|
|
9
|
+
grant: "Aprobar"
|
|
10
|
+
decline: "Rechazar"
|
|
11
|
+
granted: "%{identifier} ya está en %{label} y puede iniciar sesión."
|
|
12
|
+
declined: "La solicitud de %{identifier} fue rechazada."
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
es:
|
|
2
|
+
manage:
|
|
3
|
+
client:
|
|
4
|
+
sign_in:
|
|
5
|
+
app_passwords: "Aceptar contraseñas de aplicación"
|
|
6
|
+
app_passwords_help: "Los actores crean una contraseña de aplicación para este cliente en su página de cuenta. Les inicia sesión por LDAP y forward auth sin segundo factor, solo en este cliente."
|
|
7
|
+
notices:
|
|
8
|
+
app_passwords_on: "Los actores ya pueden crear una contraseña de aplicación para él."
|
|
9
|
+
app_passwords_off: "Sus contraseñas de aplicación se rechazan a partir de ahora."
|
|
10
|
+
ldap:
|
|
11
|
+
connect:
|
|
12
|
+
app: "Aplicación"
|
|
13
|
+
no_app: "Sin aplicación"
|
|
14
|
+
app_help: "Elige el cliente con el que está registrado el servicio. Las contraseñas de aplicación de los actores para ese cliente se enlazan entonces en una conexión que se enlazó primero con esta credencial."
|
|
15
|
+
credentials:
|
|
16
|
+
app: "Acepta contraseñas de aplicación de %{name}"
|