ソースを参照

Translations update from Weblate (#6548)

* [Web] Updated lang.fr-fr.json

[Web] Updated lang.fr-fr.json

Co-authored-by: Samuel F. <20537389+samuelfranzini@users.noreply.github.com>
Co-authored-by: milkmaker <milkmaker@mailcow.de>

* [Web] Updated lang.ru-ru.json

[Web] Updated lang.ru-ru.json

[Web] Updated lang.ru-ru.json

Co-authored-by: Habetdin <15926758+Habetdin@users.noreply.github.com>
Co-authored-by: Peter <magic@kthx.at>
Co-authored-by: milkmaker <milkmaker@mailcow.de>

* [Web] Updated lang.zh-cn.json

Co-authored-by: Easton Man <me@eastonman.com>
Co-authored-by: milkmaker <milkmaker@mailcow.de>

* [Web] Updated lang.en-gb.json

Co-authored-by: Habetdin <15926758+Habetdin@users.noreply.github.com>
Co-authored-by: milkmaker <milkmaker@mailcow.de>

---------

Co-authored-by: Samuel F. <20537389+samuelfranzini@users.noreply.github.com>
Co-authored-by: Habetdin <15926758+Habetdin@users.noreply.github.com>
Co-authored-by: Peter <magic@kthx.at>
Co-authored-by: Easton Man <me@eastonman.com>
milkmaker 3 ヶ月 前
コミット
3bd01190bf

+ 1 - 1
data/web/lang/lang.en-gb.json

@@ -205,7 +205,7 @@
         "f2b_whitelist": "Whitelisted networks/hosts",
         "f2b_whitelist": "Whitelisted networks/hosts",
         "filter": "Filter",
         "filter": "Filter",
         "filter_table": "Filter table",
         "filter_table": "Filter table",
-        "force_sso_text": "If an external OIDC provider is configured, this option hides the default mailcow login froms and only shows the Singe Sign-On button",
+        "force_sso_text": "If an external OIDC provider is configured, this option hides the default mailcow login forms and only shows the Singe Sign-On button",
         "force_sso": "Disable mailcow Login and show only Singe Sign-On",
         "force_sso": "Disable mailcow Login and show only Singe Sign-On",
         "forwarding_hosts": "Forwarding Hosts",
         "forwarding_hosts": "Forwarding Hosts",
         "forwarding_hosts_add_hint": "You can either specify IPv4/IPv6 addresses, networks in CIDR notation, host names (which will be resolved to IP addresses), or domain names (which will be resolved to IP addresses by querying SPF records or, in their absence, MX records).",
         "forwarding_hosts_add_hint": "You can either specify IPv4/IPv6 addresses, networks in CIDR notation, host names (which will be resolved to IP addresses), or domain names (which will be resolved to IP addresses by querying SPF records or, in their absence, MX records).",

+ 72 - 12
data/web/lang/lang.fr-fr.json

@@ -359,7 +359,54 @@
         "service": "Service",
         "service": "Service",
         "success": "Succès",
         "success": "Succès",
         "cors_settings": "Paramètres CORS",
         "cors_settings": "Paramètres CORS",
-        "login_time": "Horodatage de connexion"
+        "login_time": "Horodatage de connexion",
+        "domainadmin_quicklink": "Masquer le lien rapide vers la page de connexion de l'administrateur du domaine",
+        "force_sso_text": "Si un fournisseur OIDC externe est configuré, cette option masque les formulaires de connexion par défaut de mailcow et n'affiche que le bouton Singe Sign-On",
+        "app_hide": "Masquer pour la connexion",
+        "admin_quicklink": "Masquer le lien rapide vers la page de connexion de l'administrateur",
+        "login_page": "Page de connexion",
+        "force_sso": "Désactiver la connexion mailcow et n'afficher que Singe Sign-On",
+        "iam_attribute_field": "Champ d'attribut",
+        "iam_authorize_url": "Endpoint d'autorisation",
+        "iam_auth_flow": "Flow d'authentification",
+        "iam_auth_flow_info": "Outre le flux de code d'autorisation (flux standard dans Keycloak), qui est utilisé pour la connexion unique, mailcow prend également en charge le flux d'authentification avec des informations d'identification directes. Le flux Mailpassword tente de valider les informations d'identification de l'utilisateur en utilisant l'API REST de Keycloak Admin. mailcow récupère le mot de passe haché dans l'attribut <code>mailcow_password</code>, qui est mappé dans Keycloak.",
+        "iam_basedn": "Base DN",
+        "iam_client_id": "ID Client",
+        "iam_client_secret": "Secret Client",
+        "iam_use_ssl": "Utiliser SSL",
+        "iam_redirect_url": "Url de redirection",
+        "iam_use_ssl_info": "Si le protocole SSL est activé et que le port est défini sur 389, il sera automatiquement remplacé par 636.",
+        "iam_use_tls_info": "Si vous activez TLS, vous devez utiliser le port par défaut de votre serveur LDAP (389). Les ports SSL ne peuvent pas être utilisés.",
+        "iam_version": "Version",
+        "ignore_ssl_error": "Ignorer les erreurs SSL",
+        "iam_login_provisioning": "Créer automatiquement l'utilisateur à la connexion",
+        "iam_mapping": "Mapping des attributs",
+        "iam_bindpass": "Lier le mot de passe",
+        "iam_periodic_full_sync": "Synchronisation complète périodique",
+        "iam_port": "Port",
+        "iam_realm": "Realm",
+        "iam_rest_flow": "Flow Mailpassword",
+        "iam_server_url": "URL du serveur",
+        "iam_sso": "Single Sign-On",
+        "iam_sync_interval": "Interval de Sync / Import (min)",
+        "iam_test_connection": "Test de connexion",
+        "iam_token_url": "Endpoint Token",
+        "iam_userinfo_url": "Endpoint User info",
+        "iam_username_field": "Champ du nom d'utilisateur",
+        "iam_binddn": "Bind DN",
+        "iam_use_tls": "Utiliser StartTLS",
+        "quicklink_text": "Afficher ou masquer les liens rapides vers d'autres pages de connexion sous le formulaire de connexion",
+        "task": "Tâche",
+        "user_link": "Lien utilisateur",
+        "user_quicklink": "Masquer le lien rapide vers la page de connexion de l'utilisateur",
+        "iam_client_scopes": "Scopes Client",
+        "iam_default_template": "Template par défaut",
+        "iam_default_template_description": "Si aucun modèle n'est attribué à un utilisateur, le modèle par défaut sera utilisé pour créer la boîte aux lettres, mais pas pour la mettre à jour.",
+        "iam_description": "Configurer un fournisseur externe pour l'authentification<br>Les boîtes aux lettres des utilisateurs seront automatiquement créées lors de leur première connexion, à condition qu'un mappage d'attributs ait été défini.",
+        "iam_extra_permission": "Pour que les paramètres suivants fonctionnent, le client mailcow dans Keycloak a besoin d'un <code>Compte de service</code> et de l'autorisation de <code>voir les utilisateurs</code>.",
+        "iam_host": "Hôte",
+        "iam_host_info": "Saisissez un ou plusieurs hôtes LDAP, séparés par des virgules.",
+        "iam_import_users": "Importer des utilisateurs"
     },
     },
     "danger": {
     "danger": {
         "access_denied": "Accès refusé ou données de formulaire non valides",
         "access_denied": "Accès refusé ou données de formulaire non valides",
@@ -496,7 +543,11 @@
         "password_reset_invalid_user": "Boîte mail introuvable ou aucune adresse de récupération n'a été définie",
         "password_reset_invalid_user": "Boîte mail introuvable ou aucune adresse de récupération n'a été définie",
         "password_reset_na": "La réinitialisation des mots de passe est actuellement indisponible. Veuillez contacter votre administrateur.",
         "password_reset_na": "La réinitialisation des mots de passe est actuellement indisponible. Veuillez contacter votre administrateur.",
         "reset_token_limit_exceeded": "Le nombre limite de jetons de réinitialisation a été dépassé. Veuillez réessayer plus tard.",
         "reset_token_limit_exceeded": "Le nombre limite de jetons de réinitialisation a été dépassé. Veuillez réessayer plus tard.",
-        "to_invalid": "Le destinataire ne doit pas être vide"
+        "to_invalid": "Le destinataire ne doit pas être vide",
+        "generic_server_error": "Une erreur de serveur inattendue s'est produite. Veuillez contacter votre administrateur.",
+        "authsource_in_use": "Le fournisseur d'identité ne peut pas être modifié ou supprimé car il est actuellement utilisé par un ou plusieurs utilisateurs.",
+        "iam_test_connection": "Échec de la connexion",
+        "required_data_missing": "La donnée requise %s est manquante"
     },
     },
     "debug": {
     "debug": {
         "chart_this_server": "Graphique (ce serveur)",
         "chart_this_server": "Graphique (ce serveur)",
@@ -553,7 +604,7 @@
         "alias": "Éditer les alias",
         "alias": "Éditer les alias",
         "allow_from_smtp": "Restreindre l'utilisation de <b>SMTP</b> à ces adresses IP",
         "allow_from_smtp": "Restreindre l'utilisation de <b>SMTP</b> à ces adresses IP",
         "allow_from_smtp_info": "Laissez vide pour autoriser tous les expéditeurs.<br>Adresses IPv4/IPv6 et réseaux.",
         "allow_from_smtp_info": "Laissez vide pour autoriser tous les expéditeurs.<br>Adresses IPv4/IPv6 et réseaux.",
-        "allowed_protocols": "Protocoles autorisés",
+        "allowed_protocols": "Protocoles autorisés pour l'accès direct de l'utilisateur (n'affecte pas les protocoles de mot de passe de l'application)",
         "app_name": "Nom de l'application",
         "app_name": "Nom de l'application",
         "app_passwd": "Mot de passe de l'application",
         "app_passwd": "Mot de passe de l'application",
         "automap": "Tenter de cibler automatiquement les dossiers (« Sent items », « Sent » => « Sent » etc.)",
         "automap": "Tenter de cibler automatiquement les dossiers (« Sent items », « Sent » => « Sent » etc.)",
@@ -672,7 +723,7 @@
         "none_inherit": "Aucun / Héritage",
         "none_inherit": "Aucun / Héritage",
         "quota_warning_bcc": "Avertissement sur les quotas BCC",
         "quota_warning_bcc": "Avertissement sur les quotas BCC",
         "quota_warning_bcc_info": "Les avertissements seront envoyés en copies séparées aux destinataires suivants. Le sujet sera précédé du nom d'utilisateur correspondant entre parenthèses, par exemple : <code>Avertissement sur les quotas (user@example.com)</code>.",
         "quota_warning_bcc_info": "Les avertissements seront envoyés en copies séparées aux destinataires suivants. Le sujet sera précédé du nom d'utilisateur correspondant entre parenthèses, par exemple : <code>Avertissement sur les quotas (user@example.com)</code>.",
-        "sogo_access_info": "L'authentification unique à partir de l'interface de messagerie reste opérationnelle. Ce paramètre n'affecte pas l'accès à tous les autres services et ne supprime ni, ne modifie le profil SOGo existant d'un utilisateur.",
+        "sogo_access_info": "Après s'être connecté, l'utilisateur est automatiquement redirigé vers SOGo.",
         "admin": "Modifier l'administrateur",
         "admin": "Modifier l'administrateur",
         "password_recovery_email": "Adresse email de récupération",
         "password_recovery_email": "Adresse email de récupération",
         "mailbox_rename_title": "Nouveau nom de la partie locale de la boîte de réception",
         "mailbox_rename_title": "Nouveau nom de la partie locale de la boîte de réception",
@@ -680,7 +731,7 @@
         "mailbox_rename_agree": "J'ai fait une sauvegarde.",
         "mailbox_rename_agree": "J'ai fait une sauvegarde.",
         "mailbox_rename_warning": "IMPORTANT ! Faites une sauvegarde avant de renommer la boîte de réception.",
         "mailbox_rename_warning": "IMPORTANT ! Faites une sauvegarde avant de renommer la boîte de réception.",
         "mailbox_rename_alias": "Créer un alias automatiquement",
         "mailbox_rename_alias": "Créer un alias automatiquement",
-        "sogo_access": "Autoriser la connexion directe à SOGo",
+        "sogo_access": "Redirection directe vers SOGo",
         "pushover": "Pushover",
         "pushover": "Pushover",
         "pushover_sound": "Son"
         "pushover_sound": "Son"
     },
     },
@@ -733,7 +784,11 @@
         "request_reset_password": "Demander le changement du mot de passe",
         "request_reset_password": "Demander le changement du mot de passe",
         "login_user": "Connexion Utilisateur",
         "login_user": "Connexion Utilisateur",
         "login_dadmin": "Connexion Administrateur de domaine",
         "login_dadmin": "Connexion Administrateur de domaine",
-        "login_admin": "Connexion Administrateur"
+        "login_admin": "Connexion Administrateur",
+        "login_linkstext": "L'identifiant n'est pas correct ?",
+        "login_usertext": "Se connecter en tant qu'utilisateur",
+        "login_domainadmintext": "Se connecter en tant qu'administrateur du domaine",
+        "login_admintext": "Se connecter en tant qu'administrateur"
     },
     },
     "mailbox": {
     "mailbox": {
         "action": "Action",
         "action": "Action",
@@ -839,7 +894,7 @@
         "recipient_map_new": "Nouveau destinataire",
         "recipient_map_new": "Nouveau destinataire",
         "recipient_map_new_info": "La destination de la carte du destinataire doit être une adresse de courriel valide ou un nom de domaine.",
         "recipient_map_new_info": "La destination de la carte du destinataire doit être une adresse de courriel valide ou un nom de domaine.",
         "recipient_map_old": "Destinataire original",
         "recipient_map_old": "Destinataire original",
-        "recipient_map_old_info": "Une carte de destination originale doit être une adresse de courriel valide ou un nom de domaine.",
+        "recipient_map_old_info": "La destination originale des cartes des destinataires doit être une adresse de courriel valide ou un nom de domaine.",
         "recipient_maps": "Cartes des bénéficiaires",
         "recipient_maps": "Cartes des bénéficiaires",
         "relay_all": "Relayer tous les destinataires",
         "relay_all": "Relayer tous les destinataires",
         "remove": "Supprimer",
         "remove": "Supprimer",
@@ -908,7 +963,8 @@
         "template": "Modèle",
         "template": "Modèle",
         "syncjob_check_log": "Vérifier le journal",
         "syncjob_check_log": "Vérifier le journal",
         "recipient": "Destinataire",
         "recipient": "Destinataire",
-        "open_logs": "Afficher les journaux"
+        "open_logs": "Afficher les journaux",
+        "iam": "Fournisseur d'identité"
     },
     },
     "oauth2": {
     "oauth2": {
         "access_denied": "Veuillez vous connecter en tant que propriétaire de la boîte de réception pour accorder l’accès via Oauth2.",
         "access_denied": "Veuillez vous connecter en tant que propriétaire de la boîte de réception pour accorder l’accès via Oauth2.",
@@ -1079,7 +1135,9 @@
         "recovery_email_sent": "Email de réinitialisation envoyé à %s",
         "recovery_email_sent": "Email de réinitialisation envoyé à %s",
         "mailbox_renamed": "La boîte de réception a été renommée de %s à %s",
         "mailbox_renamed": "La boîte de réception a été renommée de %s à %s",
         "template_modified": "Les modifications au modèle %s ont été enregistrées",
         "template_modified": "Les modifications au modèle %s ont été enregistrées",
-        "password_policy_saved": "La politique de mot de passe a été enregistrée avec succès"
+        "password_policy_saved": "La politique de mot de passe a été enregistrée avec succès",
+        "custom_login_modified": "La personnalisation de la connexion a été sauvegardée avec succès",
+        "iam_test_connection": "Connexion réussie"
     },
     },
     "tfa": {
     "tfa": {
         "api_register": "%s utilise l'API Yubico Cloud. Veuillez obtenir une clé API pour votre clé <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">ici</a>",
         "api_register": "%s utilise l'API Yubico Cloud. Veuillez obtenir une clé API pour votre clé <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">ici</a>",
@@ -1259,8 +1317,8 @@
         "with_app_password": "avec le mot de passe de l'application",
         "with_app_password": "avec le mot de passe de l'application",
         "apple_connection_profile_with_app_password": "Un nouveau mot de passe est généré et ajouté au profil, de sorte qu'aucun mot de passe ne doit être saisi lors de la configuration de votre appareil. Ne partagez pas le fichier car il vous donne un accès complet à votre boîte de réception.",
         "apple_connection_profile_with_app_password": "Un nouveau mot de passe est généré et ajouté au profil, de sorte qu'aucun mot de passe ne doit être saisi lors de la configuration de votre appareil. Ne partagez pas le fichier car il vous donne un accès complet à votre boîte de réception.",
         "attribute": "Attribut",
         "attribute": "Attribut",
-        "direct_protocol_access": "Cet utilisateur de la boîte aux lettres dispose d'un <b>accès externe direct</b> aux protocoles et applications suivants. Votre administrateur contrôle ce paramètre. Il est possible de créer des mots de passe d'application pour accorder l'accès à des protocoles et des applications individuels.<br>Le bouton « Connexion au webmail » permet une connexion unique à SOGo et est toujours disponible.",
-        "open_webmail_sso": "Connexion au webmail",
+        "direct_protocol_access": "Cet utilisateur de la boîte aux lettres dispose d'un <b>accès externe direct</b> aux protocoles et applications suivants. Votre administrateur contrôle ce paramètre. Il est possible de créer des mots de passe d'application pour accorder l'accès à des protocoles et des applications individuels.<br>Le bouton « Connexion au Webmail » permet une connexion unique à SOGo et est toujours disponible.",
+        "open_webmail_sso": "Connexion au Webmail",
         "recent_successful_connections": "Voir les connexions réussies",
         "recent_successful_connections": "Voir les connexions réussies",
         "syncjob_EXIT_TLS_FAILURE": "Problème de connexion chiffrée",
         "syncjob_EXIT_TLS_FAILURE": "Problème de connexion chiffrée",
         "syncjob_EXIT_AUTHENTICATION_FAILURE": "Problème d'authentification",
         "syncjob_EXIT_AUTHENTICATION_FAILURE": "Problème d'authentification",
@@ -1289,7 +1347,9 @@
         "open_logs": "Afficher les journaux",
         "open_logs": "Afficher les journaux",
         "pushover_sound": "Son",
         "pushover_sound": "Son",
         "mailbox_general": "Général",
         "mailbox_general": "Général",
-        "mailbox_settings": "Paramètres"
+        "mailbox_settings": "Paramètres",
+        "tfa_info": "L'authentification à deux facteurs permet de protéger votre compte. Si vous l'activez, vous aurez besoin de mots de passe d'application pour vous connecter à des applications ou des services qui ne prennent pas en charge l'authentification à deux facteurs (par exemple les clients e-mails).",
+        "overview": "Vue d'ensemble"
     },
     },
     "warning": {
     "warning": {
         "cannot_delete_self": "Impossible de supprimer l’utilisateur connecté",
         "cannot_delete_self": "Impossible de supprimer l’utilisateur connecté",

+ 75 - 8
data/web/lang/lang.ru-ru.json

@@ -359,7 +359,56 @@
         "username": "Имя пользователя",
         "username": "Имя пользователя",
         "validate_license_now": "Получить лицензию на основе GUID с сервера лицензий",
         "validate_license_now": "Получить лицензию на основе GUID с сервера лицензий",
         "verify": "Проверить",
         "verify": "Проверить",
-        "yes": "&#10003;"
+        "yes": "&#10003;",
+        "force_sso_text": "Если настроен внешний провайдер OIDC, эта опция скрывает стандартные формы входа mailcow и показывает только кнопку Singe Sign-On",
+        "domainadmin_quicklink": "Скрыть ссылку на вход для администраторов домена",
+        "iam_periodic_full_sync": "Периодическая полная синхронизация",
+        "iam_sync_interval": "Интервал синхронизации/импорта (мин)",
+        "iam_use_tls_info": "При включённом TLS необходимо использовать стандартный порт LDAP-сервера (389). Порты SSL не подходят.",
+        "iam_use_ssl_info": "При включённом SSL, если указан порт 389, то вместо него автоматически будет использоваться порт 636.",
+        "quicklink_text": "Показать или скрыть ссылки для быстрого перехода к другим страницам входа под формой авторизации",
+        "iam_login_provisioning": "Автоматическое создание пользователей при входе в систему",
+        "iam_mapping": "Сопоставление атрибутов",
+        "iam_bindpass": "Bind пароль",
+        "iam_port": "Порт",
+        "iam_realm": "Realm",
+        "iam_redirect_url": "URL переадресации",
+        "iam_rest_flow": "Поток Mailpassword",
+        "iam_server_url": "URL сервера",
+        "iam_sso": "Технология единого входа (SSO)",
+        "iam_token_url": "Token endpoint",
+        "iam_userinfo_url": "User info endpoint",
+        "iam_username_field": "Поле имени пользователя",
+        "iam_binddn": "Bind DN",
+        "iam_use_ssl": "Использовать SSL",
+        "iam_use_tls": "Использовать StartTLS",
+        "iam_version": "Версия",
+        "ignore_ssl_error": "Игнорировать ошибки SSL",
+        "task": "Задача",
+        "user_link": "Пользовательская ссылка",
+        "user_quicklink": "Скрыть ссылку на вход для пользователей",
+        "app_hide": "Скрыть для входа",
+        "iam_test_connection": "Проверка соединения",
+        "login_page": "Страница входа",
+        "filter": "Фильтр",
+        "force_sso": "Отключить mailcow авторизацию и показывать только Singe Sign-On",
+        "iam": "Провайдер идентификации",
+        "iam_attribute_field": "Поле атрибута",
+        "iam_authorize_url": "Конечная точка авторизации",
+        "iam_auth_flow": "Процесс аутентификации",
+        "iam_auth_flow_info": "В дополнение к потоку кода авторизации (стандартный поток в Keycloak), который используется для Single-Sign On входа, mailcow также поддерживает поток аутентификации с непосредственными учетными данными. Поток Mailpassword пытается проверить учетные данные пользователя с помощью REST API администратора Keycloak. mailcow извлекает хешированный пароль из атрибута <code>mailcow_password</code>, который отображается в Keycloak.",
+        "iam_basedn": "Base DN",
+        "iam_client_id": "ID клиента",
+        "iam_client_secret": "Секрет клиента",
+        "iam_client_scopes": "Области действия клиента",
+        "iam_default_template": "Шаблон по умолчанию",
+        "iam_default_template_description": "Если пользователю не назначен шаблон, шаблон по умолчанию будет использоваться при создании почтового ящика, но не при обновлении почтового ящика.",
+        "iam_description": "Настройка внешнего провайдера для аутентификации<br>Почтовые ящики пользователей будут автоматически создаваться при первом входе в систему, если было задано сопоставление атрибутов.",
+        "iam_extra_permission": "Для работы следующих настроек клиенту mailcow в Keycloak необходима <code>служебная учетная запись</code> и разрешение на <code>просмотр пользователей</code>.",
+        "iam_host": "Хост",
+        "iam_host_info": "Укажите один или несколько LDAP-хостов через запятую.",
+        "iam_import_users": "Импорт пользователей",
+        "admin_quicklink": "Скрыть ссылку на вход для администраторов"
     },
     },
     "danger": {
     "danger": {
         "access_denied": "Доступ запрещён, или указаны неверные данные",
         "access_denied": "Доступ запрещён, или указаны неверные данные",
@@ -496,7 +545,11 @@
         "webauthn_publickey_failed": "Для выбранного аутентификатора не был сохранен открытый ключ",
         "webauthn_publickey_failed": "Для выбранного аутентификатора не был сохранен открытый ключ",
         "webauthn_username_failed": "Выбранный аутентификатор принадлежит другой учетной записи",
         "webauthn_username_failed": "Выбранный аутентификатор принадлежит другой учетной записи",
         "webauthn_verification_failed": "Ошибка валидации WebAuthn: %s",
         "webauthn_verification_failed": "Ошибка валидации WebAuthn: %s",
-        "yotp_verification_failed": "Ошибка валидации Yubico OTP: %s"
+        "yotp_verification_failed": "Ошибка валидации Yubico OTP: %s",
+        "generic_server_error": "На сервере произошла непредвиденная ошибка. Пожалуйста, свяжитесь с вашим администратором.",
+        "authsource_in_use": "Поставщик идентификационных данных не может быть изменен или удален, так как в данный момент он используется одним или несколькими пользователями.",
+        "iam_test_connection": "Ошибка соединения",
+        "required_data_missing": "Отсутствуют необходимые данные %s"
     },
     },
     "datatables": {
     "datatables": {
         "collapse_all": "Свернуть все",
         "collapse_all": "Свернуть все",
@@ -581,7 +634,7 @@
         "alias": "Изменить псевдоним",
         "alias": "Изменить псевдоним",
         "allow_from_smtp": "Разрешить использование <b>SMTP</b> только для этих IP",
         "allow_from_smtp": "Разрешить использование <b>SMTP</b> только для этих IP",
         "allow_from_smtp_info": "Укажите IPv4/IPv6 адреса и/или подсети.<br>Оставьте поле пустым, чтобы разрешить отправку с любых адресов.",
         "allow_from_smtp_info": "Укажите IPv4/IPv6 адреса и/или подсети.<br>Оставьте поле пустым, чтобы разрешить отправку с любых адресов.",
-        "allowed_protocols": "Разрешённые протоколы",
+        "allowed_protocols": "Разрешённые протоколы для прямого доступа пользователей (не влияет на протоколы паролей приложений)",
         "app_name": "Название приложения",
         "app_name": "Название приложения",
         "app_passwd": "Пароль приложения",
         "app_passwd": "Пароль приложения",
         "app_passwd_protocols": "Разрешенные протоколы для пароля приложения",
         "app_passwd_protocols": "Разрешенные протоколы для пароля приложения",
@@ -771,7 +824,14 @@
         "password": "Пароль",
         "password": "Пароль",
         "request_reset_password": "Запросить восстановление пароля",
         "request_reset_password": "Запросить восстановление пароля",
         "reset_password": "Восстановление пароля",
         "reset_password": "Восстановление пароля",
-        "username": "Имя пользователя"
+        "username": "Имя пользователя",
+        "login_linkstext": "Неправильный логин?",
+        "login_usertext": "Войти как пользователь",
+        "login_domainadmintext": "Войти как администратор домена",
+        "login_admintext": "Войти как администратор",
+        "login_user": "Вход для пользователей",
+        "login_dadmin": "Вход для администраторов домена",
+        "login_admin": "Вход для администраторов"
     },
     },
     "mailbox": {
     "mailbox": {
         "action": "Действия",
         "action": "Действия",
@@ -946,7 +1006,8 @@
         "username": "Имя пользователя",
         "username": "Имя пользователя",
         "waiting": "В ожидании",
         "waiting": "В ожидании",
         "weekly": "Раз в неделю",
         "weekly": "Раз в неделю",
-        "yes": "&#10003;"
+        "yes": "&#10003;",
+        "iam": "Поставщик идентификационных данных"
     },
     },
     "oauth2": {
     "oauth2": {
         "access_denied": "Пожалуйста, войдите в систему как владелец почтового аккаунта, чтобы получить доступ через OAuth2.",
         "access_denied": "Пожалуйста, войдите в систему как владелец почтового аккаунта, чтобы получить доступ через OAuth2.",
@@ -1124,7 +1185,9 @@
         "verified_fido2_login": "Авторизация FIDO2 пройдена",
         "verified_fido2_login": "Авторизация FIDO2 пройдена",
         "verified_totp_login": "Авторизация TOTP пройдена",
         "verified_totp_login": "Авторизация TOTP пройдена",
         "verified_webauthn_login": "Авторизация WebAuthn пройдена",
         "verified_webauthn_login": "Авторизация WebAuthn пройдена",
-        "verified_yotp_login": "Авторизация Yubico OTP пройдена"
+        "verified_yotp_login": "Авторизация Yubico OTP пройдена",
+        "iam_test_connection": "Успешное соединение",
+        "custom_login_modified": "Настройки входа успешно сохранены"
     },
     },
     "tfa": {
     "tfa": {
         "api_register": "%s использует Yubico Cloud API. Пожалуйста, получите ключ API для вашего ключа <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">здесь</a>",
         "api_register": "%s использует Yubico Cloud API. Пожалуйста, получите ключ API для вашего ключа <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">здесь</a>",
@@ -1191,7 +1254,7 @@
         "delete_ays": "Пожалуйста, подтвердите удаление",
         "delete_ays": "Пожалуйста, подтвердите удаление",
         "direct_aliases": "Личные псевдонимы",
         "direct_aliases": "Личные псевдонимы",
         "direct_aliases_desc": "На личные псевдонимы распространяются фильтры нежелательной почты и параметры политики TLS.",
         "direct_aliases_desc": "На личные псевдонимы распространяются фильтры нежелательной почты и параметры политики TLS.",
-        "direct_protocol_access": "Этот пользователь почтового ящика имеет <b>прямой, внешний доступ</b> к следующим протоколам и приложениям. Эта настройка контролируется вашим администратором. Для предоставления доступа к отдельным протоколам и приложениям могут быть созданы пароли приложений.<br> Кнопка \"Вход в веб-почту\" обеспечивает единый вход в SOGo и всегда доступна.",
+        "direct_protocol_access": "Этот пользователь почтового ящика имеет <b>прямой, внешний доступ</b> к следующим протоколам и приложениям. Эта настройка контролируется вашим администратором. Для предоставления доступа к отдельным протоколам и приложениям могут быть созданы пароли приложений.<br> Кнопка \"Веб-почта\" обеспечивает единый вход в SOGo и всегда доступна.",
         "eas_reset": "Сбросить кеш ActiveSync устройств",
         "eas_reset": "Сбросить кеш ActiveSync устройств",
         "eas_reset_help": "Во многих случаях сброс кеша устройств помогает восстановить повреждённый профиль ActiveSync.<br><b>Внимание:</b> все письма, календари и контакты будут загружены заново на все ваши устройства!",
         "eas_reset_help": "Во многих случаях сброс кеша устройств помогает восстановить повреждённый профиль ActiveSync.<br><b>Внимание:</b> все письма, календари и контакты будут загружены заново на все ваши устройства!",
         "eas_reset_now": "Сбросить кеш сейчас",
         "eas_reset_now": "Сбросить кеш сейчас",
@@ -1319,7 +1382,11 @@
         "weeks": "недели",
         "weeks": "недели",
         "with_app_password": "с паролем приложения",
         "with_app_password": "с паролем приложения",
         "year": "год",
         "year": "год",
-        "years": "лет"
+        "years": "лет",
+        "authentication": "Аутентификация",
+        "tfa_info": "Двухфакторная аутентификация помогает защитить вашу учетную запись. Если вы включите эту функцию, вам понадобятся пароли приложений для входа в приложения или службы, которые не поддерживают двухфакторную аутентификацию (например, почтовые клиенты).",
+        "protocols": "Протоколы",
+        "overview": "Обзор"
     },
     },
     "warning": {
     "warning": {
         "cannot_delete_self": "Вы не можете удалить сами себя",
         "cannot_delete_self": "Вы не можете удалить сами себя",

+ 17 - 3
data/web/lang/lang.zh-cn.json

@@ -395,7 +395,16 @@
         "ignore_ssl_error": "忽略 SSL 错误",
         "ignore_ssl_error": "忽略 SSL 错误",
         "iam_auth_flow_info": "除了在单点登录(SSO)中使用的 Authorization Code 流程(在 Keycloak 中是标准流程)之外,mailcow 还支持使用 Credentials 的身份认证流程。Mailpassword 流程尝试通过 Keycloak 的 Admin REST API 验证用户凭据,mailcow 会从 Keycloak 中的 <code>mailcow_password</code> 属性中获取哈希后的密码。",
         "iam_auth_flow_info": "除了在单点登录(SSO)中使用的 Authorization Code 流程(在 Keycloak 中是标准流程)之外,mailcow 还支持使用 Credentials 的身份认证流程。Mailpassword 流程尝试通过 Keycloak 的 Admin REST API 验证用户凭据,mailcow 会从 Keycloak 中的 <code>mailcow_password</code> 属性中获取哈希后的密码。",
         "filter": "过滤",
         "filter": "过滤",
-        "iam_extra_permission": "要使以下设置生效,Keycloak 中的 mailcow 客户端需要一个 <code>服务账户(Service account)</code> 以及 <code>查看用户(view-users)</code> 的权限。"
+        "iam_extra_permission": "要使以下设置生效,Keycloak 中的 mailcow 客户端需要一个 <code>服务账户(Service account)</code> 以及 <code>查看用户(view-users)</code> 的权限。",
+        "domainadmin_quicklink": "隐藏指向域管理员登陆页面的快捷链接",
+        "force_sso_text": "如果配置了外部的 OIDC 认证,这个选项隐藏默认的 mailcow 登陆界面,只显示单点登录(SSO)的按钮",
+        "iam_login_provisioning": "登录时自动创建用户",
+        "login_page": "登陆页面",
+        "iam_use_ssl_info": "如果使用了 SSL,且端口被设置为 389,该端口将自动被覆盖为 636。",
+        "quicklink_text": "显示或隐藏登陆表单下面指向其他登陆页面的快捷链接",
+        "user_quicklink": "隐藏指向用户登陆页面的快捷链接",
+        "admin_quicklink": "隐藏指向管理员登陆页面的快捷链接",
+        "force_sso": "强制要求单点登录(SSO)"
     },
     },
     "danger": {
     "danger": {
         "access_denied": "访问被拒绝或者表单数据无效",
         "access_denied": "访问被拒绝或者表单数据无效",
@@ -788,7 +797,11 @@
         "invalid_pass_reset_token": "密码重置 token 无效或已过期。<br> 请重新获取新的密码重置链接。",
         "invalid_pass_reset_token": "密码重置 token 无效或已过期。<br> 请重新获取新的密码重置链接。",
         "login_user": "用户登录",
         "login_user": "用户登录",
         "login_dadmin": "域管理员登录",
         "login_dadmin": "域管理员登录",
-        "login_admin": "管理员登录"
+        "login_admin": "管理员登录",
+        "login_linkstext": "不是正确的登陆页面?",
+        "login_usertext": "以用户身份登陆",
+        "login_domainadmintext": "以域管理员身份登陆",
+        "login_admintext": "以管理员身份登陆"
     },
     },
     "mailbox": {
     "mailbox": {
         "action": "操作",
         "action": "操作",
@@ -1143,7 +1156,8 @@
         "template_added": "新增了模板 %s",
         "template_added": "新增了模板 %s",
         "template_modified": "模板 %s 的修改已保存",
         "template_modified": "模板 %s 的修改已保存",
         "template_removed": "模板 ID %s 已删除",
         "template_removed": "模板 ID %s 已删除",
-        "iam_test_connection": "连接成功"
+        "iam_test_connection": "连接成功",
+        "custom_login_modified": "登陆选项保存成功"
     },
     },
     "tfa": {
     "tfa": {
         "api_register": "%s 使用了 Yubico Cloud API,请<a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">在此</a>为你的密钥获取 API 密钥",
         "api_register": "%s 使用了 Yubico Cloud API,请<a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">在此</a>为你的密钥获取 API 密钥",