Pārlūkot izejas kodu

[Web] Various i18n strings updated or added (#4196)

Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
Kristian Feldsam 4 gadi atpakaļ
vecāks
revīzija
f6ca438cf4

+ 7 - 7
data/web/admin.php

@@ -18,7 +18,7 @@ if (!isset($_SESSION['gal']) && $license_cache = $redis->Get('LICENSE_STATUS_CAC
       <ul class="dropdown-menu">
       <ul class="dropdown-menu">
         <li class="active" data-dont-remember="1" role="presentation"><a href="#tab-config-admins" aria-controls="tab-config-admins" role="tab" data-toggle="tab"><?=$lang['admin']['admins'];?></a></li>
         <li class="active" data-dont-remember="1" role="presentation"><a href="#tab-config-admins" aria-controls="tab-config-admins" role="tab" data-toggle="tab"><?=$lang['admin']['admins'];?></a></li>
         <!-- <li role="presentation"><a href="#tab-config-ldap-admins" aria-controls="tab-config-ldap-admins" role="tab" data-toggle="tab"><?=$lang['admin']['admins_ldap'];?></a></li> -->
         <!-- <li role="presentation"><a href="#tab-config-ldap-admins" aria-controls="tab-config-ldap-admins" role="tab" data-toggle="tab"><?=$lang['admin']['admins_ldap'];?></a></li> -->
-        <li role="presentation"><a href="#tab-config-oauth2" aria-controls="tab-config-oauth2" role="tab" data-toggle="tab">OAuth2 Apps</a></li>
+        <li role="presentation"><a href="#tab-config-oauth2" aria-controls="tab-config-oauth2" role="tab" data-toggle="tab"><?=$lang['admin']['oauth2_apps'];?></a></li>
         <li role="presentation"><a href="#tab-config-rspamd" aria-controls="tab-config-rspamd" role="tab" data-toggle="tab">Rspamd UI</a></li>
         <li role="presentation"><a href="#tab-config-rspamd" aria-controls="tab-config-rspamd" role="tab" data-toggle="tab">Rspamd UI</a></li>
       </ul>
       </ul>
     </li>
     </li>
@@ -215,7 +215,7 @@ if (!isset($_SESSION['gal']) && $license_cache = $redis->Get('LICENSE_STATUS_CAC
           <div class="col-lg-6">
           <div class="col-lg-6">
             <div class="panel panel-default">
             <div class="panel panel-default">
               <div class="panel-heading">
               <div class="panel-heading">
-                <h4 class="panel-title"><i class="bi bi-file-earmark-arrow-down"></i> Read-Only Access</h4>
+                <h4 class="panel-title"><i class="bi bi-file-earmark-arrow-down"></i> <?=$lang['admin']['api_read_only'];?></h4>
               </div>
               </div>
                 <div class="panel-body">
                 <div class="panel-body">
                   <form class="form-horizontal" autocapitalize="none" autocorrect="off" role="form" method="post">
                   <form class="form-horizontal" autocapitalize="none" autocorrect="off" role="form" method="post">
@@ -260,7 +260,7 @@ if (!isset($_SESSION['gal']) && $license_cache = $redis->Get('LICENSE_STATUS_CAC
           <div class="col-lg-6">
           <div class="col-lg-6">
             <div class="panel panel-default">
             <div class="panel panel-default">
               <div class="panel-heading">
               <div class="panel-heading">
-                <h4 class="panel-title"><i class="bi bi-file-earmark-diff"></i> Read-Write Access</h4>
+                <h4 class="panel-title"><i class="bi bi-file-earmark-diff"></i> <?=$lang['admin']['api_read_write'];?></h4>
               </div>
               </div>
                 <div class="panel-body">
                 <div class="panel-body">
                   <form class="form-horizontal" autocapitalize="none" autocorrect="off" role="form" method="post">
                   <form class="form-horizontal" autocapitalize="none" autocorrect="off" role="form" method="post">
@@ -343,7 +343,7 @@ if (!isset($_SESSION['gal']) && $license_cache = $redis->Get('LICENSE_STATUS_CAC
 
 
   <div role="tabpanel" class="tab-pane" id="tab-config-oauth2">
   <div role="tabpanel" class="tab-pane" id="tab-config-oauth2">
     <div class="panel panel-default">
     <div class="panel panel-default">
-    <div class="panel-heading">OAuth2 Apps</div>
+    <div class="panel-heading"><?=$lang['admin']['oauth2_apps'];?></div>
         <div class="panel-body">
         <div class="panel-body">
           <p><?=$lang['admin']['oauth2_info'];?></p>
           <p><?=$lang['admin']['oauth2_info'];?></p>
           <div class="table-responsive">
           <div class="table-responsive">
@@ -361,7 +361,7 @@ if (!isset($_SESSION['gal']) && $license_cache = $redis->Get('LICENSE_STATUS_CAC
                 <li><a data-action="edit_selected" data-id="oauth2_clients" data-api-url='edit/oauth2-client' data-api-attr='{"renew_secret":"1"}' href="#"><?=$lang['admin']['oauth2_renew_secret'];?></a></li>
                 <li><a data-action="edit_selected" data-id="oauth2_clients" data-api-url='edit/oauth2-client' data-api-attr='{"renew_secret":"1"}' href="#"><?=$lang['admin']['oauth2_renew_secret'];?></a></li>
               </ul>
               </ul>
               <div class="clearfix visible-xs"></div>
               <div class="clearfix visible-xs"></div>
-              <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-id="add_oauth2_client" data-toggle="modal" data-target="#addOAuth2ClientModal" href="#"><i class="bi bi-plus-lg"></i> Add OAuth2 client</a>
+              <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-id="add_oauth2_client" data-toggle="modal" data-target="#addOAuth2ClientModal" href="#"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['oauth2_add_client'];?></a>
             </div>
             </div>
           </div>
           </div>
         </div>
         </div>
@@ -1003,13 +1003,13 @@ if (!isset($_SESSION['gal']) && $license_cache = $redis->Get('LICENSE_STATUS_CAC
         <div class="row">
         <div class="row">
           <div class="col-sm-6">
           <div class="col-sm-6">
             <div class="form-group">
             <div class="form-group">
-              <label for="quota_notification_sender"><?=$lang['admin']['quarantine_notification_sender'];?>:</label>
+              <label for="quota_notification_sender"><?=$lang['admin']['quota_notification_sender'];?>:</label>
               <input type="email" class="form-control" id="quota_notification_sender" name="sender" value="<?=htmlspecialchars($qw_data['sender']);?>" placeholder="quota-warning@localhost">
               <input type="email" class="form-control" id="quota_notification_sender" name="sender" value="<?=htmlspecialchars($qw_data['sender']);?>" placeholder="quota-warning@localhost">
             </div>
             </div>
           </div>
           </div>
           <div class="col-sm-6">
           <div class="col-sm-6">
             <div class="form-group">
             <div class="form-group">
-              <label for="quota_notification_subject"><?=$lang['admin']['quarantine_notification_subject'];?>:</label>
+              <label for="quota_notification_subject"><?=$lang['admin']['quota_notification_subject'];?>:</label>
               <input type="text" class="form-control" id="quota_notification_subject" name="subject" value="<?=htmlspecialchars($qw_data['subject']);?>" placeholder="Quota warning">
               <input type="text" class="form-control" id="quota_notification_subject" name="subject" value="<?=htmlspecialchars($qw_data['subject']);?>" placeholder="Quota warning">
             </div>
             </div>
           </div>
           </div>

+ 15 - 15
data/web/edit.php

@@ -388,14 +388,14 @@ if (isset($_SESSION['mailcow_cc_role'])) {
               <form data-id="domratelimit" class="form-inline well" method="post">
               <form data-id="domratelimit" class="form-inline well" method="post">
                 <div class="form-group">
                 <div class="form-group">
                   <label class="control-label"><?=$lang['edit']['ratelimit'];?></label>
                   <label class="control-label"><?=$lang['edit']['ratelimit'];?></label>
-                  <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" autocomplete="off" class="form-control" placeholder="disabled">
+                  <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" autocomplete="off" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">
                 </div>
                 </div>
                 <div class="form-group">
                 <div class="form-group">
                   <select name="rl_frame" class="form-control">
                   <select name="rl_frame" class="form-control">
-                    <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>>msgs / second</option>
-                    <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>>msgs / minute</option>
-                    <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>>msgs / hour</option>
-                    <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>>msgs / day</option>
+                    <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>
+                    <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>
+                    <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>
+                    <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>
                   </select>
                   </select>
                 </div>
                 </div>
                 <div class="form-group">
                 <div class="form-group">
@@ -577,14 +577,14 @@ if (isset($_SESSION['mailcow_cc_role'])) {
           <form data-id="domratelimit" class="form-inline well" method="post">
           <form data-id="domratelimit" class="form-inline well" method="post">
             <div class="form-group">
             <div class="form-group">
               <label class="control-label"><?=$lang['acl']['ratelimit'];?></label>
               <label class="control-label"><?=$lang['acl']['ratelimit'];?></label>
-              <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" autocomplete="off" class="form-control" placeholder="disabled">
+              <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" autocomplete="off" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">
             </div>
             </div>
             <div class="form-group">
             <div class="form-group">
               <select name="rl_frame" class="form-control">
               <select name="rl_frame" class="form-control">
-                <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>>msgs / second</option>
-                <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>>msgs / minute</option>
-                <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>>msgs / hour</option>
-                <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>>msgs / day</option>
+                <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>
+                <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>
+                <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>
+                <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>
               </select>
               </select>
             </div>
             </div>
             <div class="form-group">
             <div class="form-group">
@@ -961,14 +961,14 @@ if (isset($_SESSION['mailcow_cc_role'])) {
             </div>
             </div>
             <div class="col-sm-10">
             <div class="col-sm-10">
               <div class="form-group">
               <div class="form-group">
-                <input name="rl_value" type="number" autocomplete="off" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="disabled">
+                <input name="rl_value" type="number" autocomplete="off" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">
               </div>
               </div>
               <div class="form-group">
               <div class="form-group">
                 <select name="rl_frame" class="form-control">
                 <select name="rl_frame" class="form-control">
-                  <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>>msgs / second</option>
-                  <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>>msgs / minute</option>
-                  <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>>msgs / hour</option>
-                  <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>>msgs / day</option>
+                  <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>
+                  <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>
+                  <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>
+                  <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>
                 </select>
                 </select>
               </div>
               </div>
               <div class="form-group">
               <div class="form-group">

+ 1 - 1
data/web/inc/functions.customize.inc.php

@@ -207,7 +207,7 @@ function customize($_action, $_item, $_data = null) {
           try {
           try {
             $data['title_name'] = ($title_name = $redis->get('TITLE_NAME')) ? $title_name : 'mailcow UI';
             $data['title_name'] = ($title_name = $redis->get('TITLE_NAME')) ? $title_name : 'mailcow UI';
             $data['main_name'] = ($main_name = $redis->get('MAIN_NAME')) ? $main_name : 'mailcow UI';
             $data['main_name'] = ($main_name = $redis->get('MAIN_NAME')) ? $main_name : 'mailcow UI';
-            $data['apps_name'] = ($apps_name = $redis->get('APPS_NAME')) ? $apps_name : 'mailcow Apps';
+            $data['apps_name'] = ($apps_name = $redis->get('APPS_NAME')) ? $apps_name : $lang['header']['apps'];
             $data['help_text'] = ($help_text = $redis->get('HELP_TEXT')) ? $help_text : false;
             $data['help_text'] = ($help_text = $redis->get('HELP_TEXT')) ? $help_text : false;
             if (!empty($redis->get('UI_IMPRESS'))) {
             if (!empty($redis->get('UI_IMPRESS'))) {
               $redis->set('UI_FOOTER', $redis->get('UI_IMPRESS'));
               $redis->set('UI_FOOTER', $redis->get('UI_IMPRESS'));

+ 6 - 6
data/web/js/site/mailbox.js

@@ -3,7 +3,7 @@ $(document).ready(function() {
   FooTable.domainFilter = FooTable.Filtering.extend({
   FooTable.domainFilter = FooTable.Filtering.extend({
     construct: function(instance){
     construct: function(instance){
       this._super(instance);
       this._super(instance);
-      this.def = 'All Domains';
+      this.def = lang.all_domains;
       this.$domain = null;
       this.$domain = null;
     },
     },
     $create: function(){
     $create: function(){
@@ -607,9 +607,9 @@ jQuery(function($){
             item.local_dest = escapeHtml(item.local_dest);
             item.local_dest = escapeHtml(item.local_dest);
             item.bcc_dest = escapeHtml(item.bcc_dest);
             item.bcc_dest = escapeHtml(item.bcc_dest);
             if (item.type == 'sender') {
             if (item.type == 'sender') {
-              item.type = '<span id="active-script" class="label label-success">Sender</span>';
+              item.type = '<span id="active-script" class="label label-success">' + lang.bcc_sender_map + '</span>';
             } else {
             } else {
-              item.type = '<span id="inactive-script" class="label label-warning">Recipient</span>';
+              item.type = '<span id="inactive-script" class="label label-warning">' + lang.bcc_rcpt_map + '</span>';
             }
             }
           });
           });
         }
         }
@@ -823,7 +823,7 @@ jQuery(function($){
               item.private_comment = '-';
               item.private_comment = '-';
             }
             }
             if (item.is_catch_all == 1) {
             if (item.is_catch_all == 1) {
-              item.address = '<div class="label label-default">Catch-All</div> ' + escapeHtml(item.address);
+              item.address = '<div class="label label-default">' + lang.catch_all + '</div> ' + escapeHtml(item.address);
             }
             }
             else {
             else {
               item.address = escapeHtml(item.address);
               item.address = escapeHtml(item.address);
@@ -832,10 +832,10 @@ jQuery(function($){
               item.goto = '⤷ <i class="bi bi-trash" style="font-size:12px"></i>';
               item.goto = '⤷ <i class="bi bi-trash" style="font-size:12px"></i>';
             }
             }
             else if (item.goto == "spam@localhost") {
             else if (item.goto == "spam@localhost") {
-              item.goto = '<span class="label label-danger">Learn as spam</span>';
+              item.goto = '<span class="label label-danger">' + lang.goto_spam + '</span>';
             }
             }
             else if (item.goto == "ham@localhost") {
             else if (item.goto == "ham@localhost") {
-              item.goto = '<span class="label label-success">Learn as ham</span>';
+              item.goto = '<span class="label label-success">' + lang.goto_ham + '</span>';
             }
             }
             if (item.in_primary_domain !== "") {
             if (item.in_primary_domain !== "") {
               item.domain = '<i data-domainname="' + item.domain + '" class="bi bi-info-circle-fill alias-domain-info text-info" data-toggle="tooltip" title="' + lang.target_domain + ': ' + item.in_primary_domain + '"></i> ' + item.domain;
               item.domain = '<i data-domainname="' + item.domain + '" class="bi bi-info-circle-fill alias-domain-info text-info" data-toggle="tooltip" title="' + lang.target_domain + ': ' + item.in_primary_domain + '"></i> ' + item.domain;

+ 58 - 40
data/web/lang/lang.cs.json

@@ -44,12 +44,13 @@
         "app_password": "Přidat heslo aplikace",
         "app_password": "Přidat heslo aplikace",
         "automap": "Pokusit se automaticky mapovat složky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "automap": "Pokusit se automaticky mapovat složky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "backup_mx_options": "Možnosti záložního MX",
         "backup_mx_options": "Možnosti záložního MX",
+        "bcc_dest_format": "Cíl kopie musí být jedna platná email adresa. Pokud potřebujete posílat kopie na více adres, vytvořte Alias a použijte jej zde.",
         "comment_info": "Soukromý komentář se nezobrazí uživateli; veřejný komentář se zobrazí jako nápověda při zastavení se kurzorem v přehledu uživatelů",
         "comment_info": "Soukromý komentář se nezobrazí uživateli; veřejný komentář se zobrazí jako nápověda při zastavení se kurzorem v přehledu uživatelů",
         "custom_params": "Vlastní parametry",
         "custom_params": "Vlastní parametry",
         "custom_params_hint": "Správně: --param=xy, špatně: --param xy",
         "custom_params_hint": "Správně: --param=xy, špatně: --param xy",
-        "delete1": "Odstranit ze zdroje po dokončení",
-        "delete2": "Smazat zprávy v cíli, které nejsou ve zdroji",
-        "delete2duplicates": "Odstranit duplicity v cílovém místě",
+        "delete1": "Odstranit ze zdrojové schránky, po dokončení přenosu",
+        "delete2": "Odstranit zprávy v cílové schránce, pokud nejsou ve zdrojové",
+        "delete2duplicates": "Odstranit duplicity v cílové schránce",
         "description": "Popis",
         "description": "Popis",
         "destination": "Cíl",
         "destination": "Cíl",
         "disable_login": "Zakázat přihlášení (ale stále přijímat poštu)",
         "disable_login": "Zakázat přihlášení (ale stále přijímat poštu)",
@@ -94,14 +95,14 @@
         "sieve_desc": "Krátký popis",
         "sieve_desc": "Krátký popis",
         "sieve_type": "Typ filtru",
         "sieve_type": "Typ filtru",
         "skipcrossduplicates": "Přeskočit duplicitní zprávy (\"první přijde, první mele\")",
         "skipcrossduplicates": "Přeskočit duplicitní zprávy (\"první přijde, první mele\")",
-        "subscribeall": "Odebírat všechny složky",
+        "subscribeall": "Synchronizovat všechny složky",
         "syncjob": "Přidat synchronizační úlohu",
         "syncjob": "Přidat synchronizační úlohu",
         "syncjob_hint": "Upozornění: Heslo bude uloženo jako prostý text!",
         "syncjob_hint": "Upozornění: Heslo bude uloženo jako prostý text!",
         "target_address": "Cílové adresy",
         "target_address": "Cílové adresy",
         "target_address_info": "<small>Kompletní email adresa/y (oddělené čárkami).</small>",
         "target_address_info": "<small>Kompletní email adresa/y (oddělené čárkami).</small>",
         "target_domain": "Cílová doména",
         "target_domain": "Cílová doména",
-        "timeout1": "Časový limit pro připojení ke vzdálenému hostiteli",
-        "timeout2": "Časový limit pro připojení k lokálnímu hostiteli",
+        "timeout1": "Časový limit pro připojení ke vzdálenému serveru",
+        "timeout2": "Časový limit pro připojení k lokálnímu serveru",
         "username": "Uživatelské jméno",
         "username": "Uživatelské jméno",
         "validate": "Ověřit",
         "validate": "Ověřit",
         "validation_success": "Úspěšně ověřeno"
         "validation_success": "Úspěšně ověřeno"
@@ -131,12 +132,14 @@
         "admins_ldap": "LDAP Administrátoři",
         "admins_ldap": "LDAP Administrátoři",
         "advanced_settings": "Pokročilá nastavení",
         "advanced_settings": "Pokročilá nastavení",
         "api_allow_from": "Povolit přístup k API z těchto IP adres (oddělte čárkou nebo řádkem)",
         "api_allow_from": "Povolit přístup k API z těchto IP adres (oddělte čárkou nebo řádkem)",
-        "api_info": "API je stále ve vývoji.",
+        "api_info": "Dokumentaci naleznete na <a href=\"/api\">/api</a>",
         "api_key": "API klíč",
         "api_key": "API klíč",
+        "api_read_only": "Přístup pouze pro čtení",
+        "api_read_write": "Přístup i se zápisem",
         "api_skip_ip_check": "Vynechat ověření IP adresy pro API",
         "api_skip_ip_check": "Vynechat ověření IP adresy pro API",
         "app_links": "Odkazy na aplikace",
         "app_links": "Odkazy na aplikace",
         "app_name": "Název aplikace",
         "app_name": "Název aplikace",
-        "apps_name": "Hlavička aplikací (\"mailcow Apps\")",
+        "apps_name": "\"mailcow Apps\" název",
         "arrival_time": "Čas zařazení do fronty (čas na serveru)",
         "arrival_time": "Čas zařazení do fronty (čas na serveru)",
         "authed_user": "Přihlášený uživatel",
         "authed_user": "Přihlášený uživatel",
         "ays": "Opravdu chcete pokračovat?",
         "ays": "Opravdu chcete pokračovat?",
@@ -161,8 +164,8 @@
         "dkim_keys": "ARC/DKIM klíče",
         "dkim_keys": "ARC/DKIM klíče",
         "dkim_overwrite_key": "Přepsat existující DKIM klíč",
         "dkim_overwrite_key": "Přepsat existující DKIM klíč",
         "dkim_private_key": "Soukromý klíč",
         "dkim_private_key": "Soukromý klíč",
-        "dkim_to": "Komu",
-        "dkim_to_title": "Cílová doména/y - bude přepsáno",
+        "dkim_to": "Do",
+        "dkim_to_title": "Cílová doména/y - údaje budou přepsány",
         "domain": "Doména",
         "domain": "Doména",
         "domain_admin": "Administrátor domény",
         "domain_admin": "Administrátor domény",
         "domain_admins": "Správci domén",
         "domain_admins": "Správci domén",
@@ -179,7 +182,7 @@
         "f2b_max_attempts": "Max. pokusů",
         "f2b_max_attempts": "Max. pokusů",
         "f2b_netban_ipv4": "Rozsah IPv4 podsítě k zablokování (8-32)",
         "f2b_netban_ipv4": "Rozsah IPv4 podsítě k zablokování (8-32)",
         "f2b_netban_ipv6": "Rozsah IPv6 podsítě k zablokování (8-128)",
         "f2b_netban_ipv6": "Rozsah IPv6 podsítě k zablokování (8-128)",
-        "f2b_parameters": "Nastavení Fail2ban",
+        "f2b_parameters": "Parametry automatického firewallu",
         "f2b_regex_info": "Záznamy které se berou v úvahu: SOGo, Postfix, Dovecot, PHP-FPM.",
         "f2b_regex_info": "Záznamy které se berou v úvahu: SOGo, Postfix, Dovecot, PHP-FPM.",
         "f2b_retry_window": "Časový horizont pro maximum pokusů (s)",
         "f2b_retry_window": "Časový horizont pro maximum pokusů (s)",
         "f2b_whitelist": "Sítě/hostitelé na whitelistu",
         "f2b_whitelist": "Sítě/hostitelé na whitelistu",
@@ -220,6 +223,8 @@
         "no_active_bans": "Žádná aktivní blokování",
         "no_active_bans": "Žádná aktivní blokování",
         "no_new_rows": "Žádné další řádky nejsou k dispozici",
         "no_new_rows": "Žádné další řádky nejsou k dispozici",
         "no_record": "Žádný záznam",
         "no_record": "Žádný záznam",
+        "oauth2_add_client": "Přidat OAuth2 klienta",
+        "oauth2_apps": "OAuth2 Aplikace",
         "oauth2_client_id": "ID klienta",
         "oauth2_client_id": "ID klienta",
         "oauth2_client_secret": "Tajný klíč klienta",
         "oauth2_client_secret": "Tajný klíč klienta",
         "oauth2_info": "Implementace OAuth2 podporuje přidělení typu \"Authorization Code\" a vydává tokeny k obnovení.<br>\r\nServer vydává tokeny k obnovení automaticky, jakmile byl předchozí token použit.<br><br>\r\n→ Výchozím rozsahem je <i>profil</i>. Ověření přes OAuth2 mohou využít jen uživatelé poštovních schránek. Je-li rozsah vynechán, použije se <i>profil</i>.<br>\r\n→ Klient je povinen uvést parametr <i>state</i> spolu s požadavkem na ověření.<br><br>\r\nCesty API pro požadavky na ověření OAuth2: <br>\r\n<ul>\r\n  <li>Koncový bod pro ověření: <code>/oauth/authorize</code></li>\r\n  <li>Koncový bod pro token: <code>/oauth/token</code></li>\r\n  <li>Stránka zdroje:  <code>/oauth/profile</code></li>\r\n</ul>\r\nDojde-li ke znovuvytvoření tajného klíče klienta, nedojde ke zneplatnění stávajícíh ověřovacích kódů, nebude však už možné obnovit jejich token.<br><br>\r\nOdvoláním klientského tokenů okamžitě ukončíte všechny aktivní relace a klienti se budou muset znovu přihlásit.",
         "oauth2_info": "Implementace OAuth2 podporuje přidělení typu \"Authorization Code\" a vydává tokeny k obnovení.<br>\r\nServer vydává tokeny k obnovení automaticky, jakmile byl předchozí token použit.<br><br>\r\n→ Výchozím rozsahem je <i>profil</i>. Ověření přes OAuth2 mohou využít jen uživatelé poštovních schránek. Je-li rozsah vynechán, použije se <i>profil</i>.<br>\r\n→ Klient je povinen uvést parametr <i>state</i> spolu s požadavkem na ověření.<br><br>\r\nCesty API pro požadavky na ověření OAuth2: <br>\r\n<ul>\r\n  <li>Koncový bod pro ověření: <code>/oauth/authorize</code></li>\r\n  <li>Koncový bod pro token: <code>/oauth/token</code></li>\r\n  <li>Stránka zdroje:  <code>/oauth/profile</code></li>\r\n</ul>\r\nDojde-li ke znovuvytvoření tajného klíče klienta, nedojde ke zneplatnění stávajícíh ověřovacích kódů, nebude však už možné obnovit jejich token.<br><br>\r\nOdvoláním klientského tokenů okamžitě ukončíte všechny aktivní relace a klienti se budou muset znovu přihlásit.",
@@ -349,9 +354,9 @@
         "aliases_in_use": "Max. počet aliasů musí být větší nebo roven %d",
         "aliases_in_use": "Max. počet aliasů musí být větší nebo roven %d",
         "app_name_empty": "Název aplikace nemůže být prázdný",
         "app_name_empty": "Název aplikace nemůže být prázdný",
         "app_passwd_id_invalid": "Neplatné heslo aplikace ID %s",
         "app_passwd_id_invalid": "Neplatné heslo aplikace ID %s",
-        "bcc_empty": "BCC cíl nesmí být prázdný",
-        "bcc_exists": "BCC mapování %s již existuje pro typ %s",
-        "bcc_must_be_email": "BCC mapování %s není správná email adresa",
+        "bcc_empty": "Cíl kopie nesmí být prázdný",
+        "bcc_exists": "Skrytá kopie %s již existuje pro typ %s",
+        "bcc_must_be_email": "Cíl kopie %s není správná email adresa",
         "comment_too_long": "Moc dlouhý komentář, max. 160 znaků",
         "comment_too_long": "Moc dlouhý komentář, max. 160 znaků",
         "defquota_empty": "Výchozí kvóta schránky nesmí být 0.",
         "defquota_empty": "Výchozí kvóta schránky nesmí být 0.",
         "description_invalid": "Popis zdroje %s je neplatný",
         "description_invalid": "Popis zdroje %s je neplatný",
@@ -508,13 +513,13 @@
         "app_passwd": "Heslo aplikace",
         "app_passwd": "Heslo aplikace",
         "automap": "Pokusit se automaticky mapovat složky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "automap": "Pokusit se automaticky mapovat složky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "backup_mx_options": "Možnosti záložního MX",
         "backup_mx_options": "Možnosti záložního MX",
-        "bcc_dest_format": "BCC cíl musí být jedna platná email adresa.",
+        "bcc_dest_format": "Cíl kopie musí být jedna platná email adresa. Pokud potřebujete posílat kopie na více adres, vytvořte Alias a použijte jej zde.",
         "client_id": "ID klienta",
         "client_id": "ID klienta",
         "client_secret": "Tajný klíč klienta",
         "client_secret": "Tajný klíč klienta",
         "comment_info": "Soukromý komentář se nezobrazí uživateli; veřejný komentář se zobrazí jako nápověda při zastavení se kurzorem v přehledu uživatelů",
         "comment_info": "Soukromý komentář se nezobrazí uživateli; veřejný komentář se zobrazí jako nápověda při zastavení se kurzorem v přehledu uživatelů",
-        "delete1": "Odstranit ze zdroje po dokončení",
-        "delete2": "Smazat zprávy v cíli, které nejsou ve zdroji",
-        "delete2duplicates": "Odstranit duplicity v cílovém místě",
+        "delete1": "Odstranit ze zdrojové schránky, po dokončení přenosu",
+        "delete2": "Odstranit zprávy v cílové schránce, pokud nejsou ve zdrojové",
+        "delete2duplicates": "Odstranit duplicity v cílové schránce",
         "delete_ays": "Potvrďte odstranění.",
         "delete_ays": "Potvrďte odstranění.",
         "description": "Popis",
         "description": "Popis",
         "disable_login": "Zakázat přihlášení (ale stále přijímat poštu)",
         "disable_login": "Zakázat přihlášení (ale stále přijímat poštu)",
@@ -598,8 +603,8 @@
         "syncjob": "Upravit synchronizační úlohu",
         "syncjob": "Upravit synchronizační úlohu",
         "target_address": "Cílová adresa/y<br /> <small>(oddělte čárkou)</small>",
         "target_address": "Cílová adresa/y<br /> <small>(oddělte čárkou)</small>",
         "target_domain": "Cílová doména",
         "target_domain": "Cílová doména",
-        "timeout1": "Časový limit pro připojení ke vzdálenému hostiteli",
-        "timeout2": "Časový limit pro připojení k lokálnímu hostiteli",
+        "timeout1": "Časový limit pro připojení ke vzdálenému serveru",
+        "timeout2": "Časový limit pro připojení k lokálnímu serveru",
         "title": "Úprava objektu",
         "title": "Úprava objektu",
         "unchanged_if_empty": "Pokud se nemění, ponechte prázdné",
         "unchanged_if_empty": "Pokud se nemění, ponechte prázdné",
         "username": "Uživatelské jméno",
         "username": "Uživatelské jméno",
@@ -666,7 +671,7 @@
         "add": "Přidat",
         "add": "Přidat",
         "add_alias": "Přidat alias",
         "add_alias": "Přidat alias",
         "add_alias_expand": "Rozšířit alias o alias domény",
         "add_alias_expand": "Rozšířit alias o alias domény",
-        "add_bcc_entry": "Přidat BCC mapu",
+        "add_bcc_entry": "Přidat skrytou kopii",
         "add_domain": "Přidat doménu",
         "add_domain": "Přidat doménu",
         "add_domain_alias": "Přidat doménový alias",
         "add_domain_alias": "Přidat doménový alias",
         "add_domain_record_first": "Prosím nejdříve vytvořte doménu",
         "add_domain_record_first": "Prosím nejdříve vytvořte doménu",
@@ -680,29 +685,31 @@
         "alias_domain_alias_hint": "Aliasy <b>neplatí</b> automaticky pro doménové aliasy. Alias <code>muj-alias@domena</code> <b>neplatí</b> pro <code>muj-alias@domena2</code> (kde \"domena2\" je imaginární doménový alias pro \"domena\").<br>K přesměrování pošty na externí schránku použijte SIEVE filtr (viz záložka \"Filtry\" nebo SOGo -> Forwarder).",
         "alias_domain_alias_hint": "Aliasy <b>neplatí</b> automaticky pro doménové aliasy. Alias <code>muj-alias@domena</code> <b>neplatí</b> pro <code>muj-alias@domena2</code> (kde \"domena2\" je imaginární doménový alias pro \"domena\").<br>K přesměrování pošty na externí schránku použijte SIEVE filtr (viz záložka \"Filtry\" nebo SOGo -> Forwarder).",
         "alias_domain_backupmx": "Doménový alias není aktivní pro předávanou doménu",
         "alias_domain_backupmx": "Doménový alias není aktivní pro předávanou doménu",
         "aliases": "Aliasy",
         "aliases": "Aliasy",
+        "all_domains": "Všechny domény",
         "allow_from_smtp": "Umožnit pouze těmto IP adresám používat <b>SMTP</b>",
         "allow_from_smtp": "Umožnit pouze těmto IP adresám používat <b>SMTP</b>",
         "allow_from_smtp_info": "Nechte prázdné pro povolení všech odesílatelů.<br>IPv4/IPv6 adresy a sítě.",
         "allow_from_smtp_info": "Nechte prázdné pro povolení všech odesílatelů.<br>IPv4/IPv6 adresy a sítě.",
         "allowed_protocols": "Povolené protokoly",
         "allowed_protocols": "Povolené protokoly",
         "backup_mx": "Záložní MX",
         "backup_mx": "Záložní MX",
         "bcc": "BCC",
         "bcc": "BCC",
-        "bcc_destination": "BCC cíl",
-        "bcc_destinations": "BCC cíl",
-        "bcc_info": "Mapa BCC se používá pro tiché předávání kopií všech zpráv na jinou adresu. Mapa příjemců se použije, pokud je místní cíl příjemcem zprávy.<br/>\r\n  Mapa odesílatelů podléhá obdobnému principu. Místní cíl nebude informován o neúspěšném doručení.",
-        "bcc_local_dest": "Místní cíl",
-        "bcc_map": "BCC mapování",
-        "bcc_map_type": "Typ BCC",
-        "bcc_maps": "BCC mapy",
-        "bcc_rcpt_map": "Mapa příjemců",
-        "bcc_sender_map": "Mapa odesílatelů",
-        "bcc_to_rcpt": "Přepnout na mapu příjemců",
-        "bcc_to_sender": "Přepnout na mapu odesílatelů",
-        "bcc_type": "Typ BCC",
+        "bcc_destination": "Cíl kopie",
+        "bcc_destinations": "Cíl kopií",
+        "bcc_info": "Skryté kopie (Mapa BCC) se používá pro tiché předávání kopií všech zpráv na jinou adresu. Při použití skryté kopie typu <i>Přijatý e-mail</i> budou přeposlány všechny maily směřující na dotyčnou adresu nebo doménu.\nU typu <i>Odeslaný e-mail</i> budou přeposlány všechny maily odeslané z dotyčné adresy nebo domény.\nPokud selže přeposlání na cílovou adresu, tak odesílatel o tom nebude informován.",
+        "bcc_local_dest": "Týká se",
+        "bcc_map": "Skrytá kopie",
+        "bcc_map_type": "Typ skryté kopie",
+        "bcc_maps": "Skryté kopie",
+        "bcc_rcpt_map": "Přijatý e-mail",
+        "bcc_sender_map": "Odeslaný e-mail",
+        "bcc_to_rcpt": "Přepnout typ na Přijatý e-mail",
+        "bcc_to_sender": "Přepnout typ na Odeslaný e-mail",
+        "bcc_type": "Typ skryté kopie",
         "booking_0": "Vždy volno",
         "booking_0": "Vždy volno",
         "booking_0_short": "Vždy volno",
         "booking_0_short": "Vždy volno",
         "booking_custom": "Omezeno na pevný počet rezervací",
         "booking_custom": "Omezeno na pevný počet rezervací",
         "booking_custom_short": "Pevný limit",
         "booking_custom_short": "Pevný limit",
         "booking_lt0": "Neomezeno, ale po rezervaci se ukazuje jako obsazené",
         "booking_lt0": "Neomezeno, ale po rezervaci se ukazuje jako obsazené",
         "booking_lt0_short": "Volný limit",
         "booking_lt0_short": "Volný limit",
+        "catch_all": "Doménový koš",
         "daily": "Každý den",
         "daily": "Každý den",
         "deactivate": "Vypnout",
         "deactivate": "Vypnout",
         "description": "Popis",
         "description": "Popis",
@@ -717,9 +724,11 @@
         "empty": "Žádné výsledky",
         "empty": "Žádné výsledky",
         "enable_x": "Zapnout",
         "enable_x": "Zapnout",
         "excludes": "Vyloučené",
         "excludes": "Vyloučené",
-        "filter_table": "Tabulka filtrů",
+        "filter_table": "Filtrovat tabulku",
         "filters": "Filtry",
         "filters": "Filtry",
         "fname": "Celé jméno",
         "fname": "Celé jméno",
+        "goto_ham": "Učit se jako <b>ham</b>",
+        "goto_spam": "Učit se jako <b>spam</b>",
         "hourly": "Každou hodinu",
         "hourly": "Každou hodinu",
         "in_use": "Obsazeno (%)",
         "in_use": "Obsazeno (%)",
         "inactive": "Neaktivní",
         "inactive": "Neaktivní",
@@ -728,7 +737,7 @@
         "last_mail_login": "Poslední přihlášení",
         "last_mail_login": "Poslední přihlášení",
         "last_pw_change": "Naposledy změněno heslo",
         "last_pw_change": "Naposledy změněno heslo",
         "last_run": "Naposledy spuštěno",
         "last_run": "Naposledy spuštěno",
-        "last_run_reset": "Plánovat další",
+        "last_run_reset": "Znovu naplánovat",
         "mailbox": "Poštovní schránka",
         "mailbox": "Poštovní schránka",
         "mailbox_defaults": "Výchozí nastavení",
         "mailbox_defaults": "Výchozí nastavení",
         "mailbox_defaults_info": "Definuje výchozí nastavení pro nové schránky",
         "mailbox_defaults_info": "Definuje výchozí nastavení pro nové schránky",
@@ -752,6 +761,7 @@
         "quarantine_category": "Kategorie oznámení karantény",
         "quarantine_category": "Kategorie oznámení karantény",
         "quarantine_notification": "Upozornění z karantény",
         "quarantine_notification": "Upozornění z karantény",
         "quick_actions": "Akce",
         "quick_actions": "Akce",
+        "recipient": "Přijatý e-mail",
         "recipient_map": "Mapa příjemce",
         "recipient_map": "Mapa příjemce",
         "recipient_map_info": "Mapy příjemců slouží k nahrazení cílové adresy zprávy před doručením.",
         "recipient_map_info": "Mapy příjemců slouží k nahrazení cílové adresy zprávy před doručením.",
         "recipient_map_new": "Nový přijemce",
         "recipient_map_new": "Nový přijemce",
@@ -762,6 +772,7 @@
         "remove": "Smazat",
         "remove": "Smazat",
         "resources": "Zdroje",
         "resources": "Zdroje",
         "running": "Běží",
         "running": "Běží",
+        "sender": "Odeslaný e-mail",
         "set_postfilter": "Označit jako post-filtr)",
         "set_postfilter": "Označit jako post-filtr)",
         "set_prefilter": "Označit jako pre-filtr",
         "set_prefilter": "Označit jako pre-filtr",
         "sieve_info": "Můžete uložit více filtrů pro každého uživatele, ale současně může být aktivní pouze jeden prefilter a jeden postfilter.<br>\r\nKaždý filtr bude proveden v daném pořadí. Ani chyba při vykonávání skriptu nebo snaha o pozdržení nezastaví vykonání dalších skriptů.<br><br>Global sieve prefilter → Prefilter → Uživatelské skripty → Postfilter → Global sieve postfilter",
         "sieve_info": "Můžete uložit více filtrů pro každého uživatele, ale současně může být aktivní pouze jeden prefilter a jeden postfilter.<br>\r\nKaždý filtr bude proveden v daném pořadí. Ani chyba při vykonávání skriptu nebo snaha o pozdržení nezastaví vykonání dalších skriptů.<br><br>Global sieve prefilter → Prefilter → Uživatelské skripty → Postfilter → Global sieve postfilter",
@@ -864,6 +875,13 @@
         "toggle_all": "Označit vše",
         "toggle_all": "Označit vše",
         "type": "Typ"
         "type": "Typ"
     },
     },
+    "ratelimit": {
+	    "disabled": "Vypnuto",
+	    "second": "zpráv za sekundu",
+	    "minute": "zpráv za minutu",
+	    "hour": "zpráv za hodinu",
+	    "day": "zpráv za den"
+    },
     "start": {
     "start": {
         "help": "Zobrazit/skrýt panel nápovědy",
         "help": "Zobrazit/skrýt panel nápovědy",
         "imap_smtp_server_auth_info": "Použijte celou e-mailovou adresu a zvolte způsob ověření PLAIN.<br>\r\nPřihlašovací údaje budou zašifrovány na straně serveru.",
         "imap_smtp_server_auth_info": "Použijte celou e-mailovou adresu a zvolte způsob ověření PLAIN.<br>\r\nPřihlašovací údaje budou zašifrovány na straně serveru.",
@@ -904,7 +922,7 @@
         "domain_removed": "Doména %s odebrána",
         "domain_removed": "Doména %s odebrána",
         "dovecot_restart_success": "Dovecot byl úspěšně restartován",
         "dovecot_restart_success": "Dovecot byl úspěšně restartován",
         "eas_reset": "ActiveSync zařízení uživatele %s vyresetováno",
         "eas_reset": "ActiveSync zařízení uživatele %s vyresetováno",
-        "f2b_modified": "Změny parametrů Fail2ban uloženy",
+        "f2b_modified": "Změny v parametrech automatického firewallu uloženy",
         "forwarding_host_added": "Předávající hostitel %s přidán",
         "forwarding_host_added": "Předávající hostitel %s přidán",
         "forwarding_host_removed": "Předávající hostitel %s odebrán",
         "forwarding_host_removed": "Předávající hostitel %s odebrán",
         "global_filter_written": "Filtr byl úspěšně zapsán",
         "global_filter_written": "Filtr byl úspěšně zapsán",
@@ -965,7 +983,7 @@
         "select": "Prosím vyberte...",
         "select": "Prosím vyberte...",
         "set_tfa": "Nastavení způsobu dvoufaktorového ověření",
         "set_tfa": "Nastavení způsobu dvoufaktorového ověření",
         "start_u2f_validation": "Zahájit inicializaci",
         "start_u2f_validation": "Zahájit inicializaci",
-        "tfa": "Dvoufaktorové ověření",
+        "tfa": "Dvoufaktorové ověření (TFA)",
         "tfa_token_invalid": "Neplatný TFA token",
         "tfa_token_invalid": "Neplatný TFA token",
         "totp": "Časově založené OTP (Google Authenticator, Authy apod.)",
         "totp": "Časově založené OTP (Google Authenticator, Authy apod.)",
         "u2f": "U2F ověření",
         "u2f": "U2F ověření",
@@ -1024,7 +1042,7 @@
         "hours": "hodin",
         "hours": "hodin",
         "in_use": "Obsazeno",
         "in_use": "Obsazeno",
         "interval": "Interval",
         "interval": "Interval",
-        "is_catch_all": "Catch-all pro doménu/y",
+        "is_catch_all": "Doménový koš",
         "last_mail_login": "Poslední přihlášení",
         "last_mail_login": "Poslední přihlášení",
         "last_pw_change": "Naposledy změněno heslo",
         "last_pw_change": "Naposledy změněno heslo",
         "last_run": "Naposledy spuštěno",
         "last_run": "Naposledy spuštěno",
@@ -1083,7 +1101,7 @@
         "spamfilter": "Filtr spamu",
         "spamfilter": "Filtr spamu",
         "spamfilter_behavior": "Hodnocení",
         "spamfilter_behavior": "Hodnocení",
         "spamfilter_bl": "Seznam zakázaných adres (blacklist)",
         "spamfilter_bl": "Seznam zakázaných adres (blacklist)",
-        "spamfilter_bl_desc": "Zakázané emailové adresy <b>budou vždy klasifikovány jako spam a odmítnuty</b>. Lze použít zástupné znaky (*). Filtr se použije pouze na přímé aliasy (s jednou cílovou poštovní schránkou), s výjimkou aliasů typu catch-all a samotné poštovní schránky.",
+        "spamfilter_bl_desc": "Zakázané emailové adresy <b>budou vždy klasifikovány jako spam a odmítnuty</b>. Lze použít zástupné znaky (*). Filtr se použije pouze na přímé aliasy (s jednou cílovou poštovní schránkou), s výjimkou doménových košů a samotné poštovní schránky.",
         "spamfilter_default_score": "Výchozí hodnoty:",
         "spamfilter_default_score": "Výchozí hodnoty:",
         "spamfilter_green": "Zelená: tato zpráva není spam",
         "spamfilter_green": "Zelená: tato zpráva není spam",
         "spamfilter_hint": "První hodnota představuje \"nízké spam skóre\" a druhá \"vysoké spam skóre\".",
         "spamfilter_hint": "První hodnota představuje \"nízké spam skóre\" a druhá \"vysoké spam skóre\".",
@@ -1095,7 +1113,7 @@
         "spamfilter_table_remove": "smazat",
         "spamfilter_table_remove": "smazat",
         "spamfilter_table_rule": "Pravidlo",
         "spamfilter_table_rule": "Pravidlo",
         "spamfilter_wl": "Seznam povolených adres (whitelist)",
         "spamfilter_wl": "Seznam povolených adres (whitelist)",
-        "spamfilter_wl_desc": "Povolené emailové adresy <b>nebudou nikdy klasifikovány jako spam</b>. Lze použít zástupné znaky (*). Filtr se použije pouze na přímé aliasy (s jednou cílovou poštovní schránkou), s výjimkou aliasů typu catch-all a samotné poštovní schránky.",
+        "spamfilter_wl_desc": "Povolené emailové adresy <b>nebudou nikdy klasifikovány jako spam</b>. Lze použít zástupné znaky (*). Filtr se použije pouze na přímé aliasy (s jednou cílovou poštovní schránkou), s výjimkou doménových košů a samotné poštovní schránky.",
         "spamfilter_yellow": "Žlutá: tato zpráva může být spam, bude označena jako spam a přesunuta do složky nevyžádané pošty",
         "spamfilter_yellow": "Žlutá: tato zpráva může být spam, bude označena jako spam a přesunuta do složky nevyžádané pošty",
         "status": "Stav",
         "status": "Stav",
         "sync_jobs": "Synchronizační úlohy",
         "sync_jobs": "Synchronizační úlohy",

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

@@ -48,6 +48,7 @@
         "app_password": "Add app password",
         "app_password": "Add app password",
         "automap": "Try to automap folders (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
         "automap": "Try to automap folders (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
         "backup_mx_options": "Relay options",
         "backup_mx_options": "Relay options",
+        "bcc_dest_format": "BCC destination must be a single valid email address.<br> If you need to send a copy to multiple addresses, create an Alias and use it here.",
         "comment_info": "A private comment is not visible to the user, while a public comment is shown as tooltip when hovering it in a user's overview",
         "comment_info": "A private comment is not visible to the user, while a public comment is shown as tooltip when hovering it in a user's overview",
         "custom_params": "Custom parameters",
         "custom_params": "Custom parameters",
         "custom_params_hint": "Right: --param=xy, wrong: --param xy",
         "custom_params_hint": "Right: --param=xy, wrong: --param xy",
@@ -143,6 +144,8 @@
         "api_allow_from": "Allow API access from these IPs/CIDR network notations",
         "api_allow_from": "Allow API access from these IPs/CIDR network notations",
         "api_info": "The API is a work in progress. The documentation can be found at <a href=\"/api\">/api</a>",
         "api_info": "The API is a work in progress. The documentation can be found at <a href=\"/api\">/api</a>",
         "api_key": "API key",
         "api_key": "API key",
+        "api_read_only": "Read-Only Access",
+        "api_read_write": "Read-Write Access",
         "api_skip_ip_check": "Skip IP check for API",
         "api_skip_ip_check": "Skip IP check for API",
         "app_links": "App links",
         "app_links": "App links",
         "app_name": "App name",
         "app_name": "App name",
@@ -230,6 +233,8 @@
         "no_active_bans": "No active bans",
         "no_active_bans": "No active bans",
         "no_new_rows": "No further rows available",
         "no_new_rows": "No further rows available",
         "no_record": "No record",
         "no_record": "No record",
+        "oauth2_apps": "OAuth2 Apps",
+        "oauth2_add_client": "Add OAuth2 client",
         "oauth2_client_id": "Client ID",
         "oauth2_client_id": "Client ID",
         "oauth2_client_secret": "Client secret",
         "oauth2_client_secret": "Client secret",
         "oauth2_info": "The OAuth2 implementation supports the grant type \"Authorization Code\" and issues refresh tokens.<br>\r\nThe server also automatically issues new refresh tokens, after a refresh token has been used.<br><br>\r\n&#8226; The default scope is <i>profile</i>. Only mailbox users can be authenticated against OAuth2. If the scope parameter is omitted, it falls back to <i>profile</i>.<br>\r\n&#8226; The <i>state</i> parameter is required to be sent by the client as part of the authorize request.<br><br>\r\nPaths for requests to the OAuth2 API: <br>\r\n<ul>\r\n  <li>Authorization endpoint: <code>/oauth/authorize</code></li>\r\n  <li>Token endpoint: <code>/oauth/token</code></li>\r\n  <li>Resource page:  <code>/oauth/profile</code></li>\r\n</ul>\r\nRegenerating the client secret will not expire existing authorization codes, but they will fail to renew their token.<br><br>\r\nRevoking client tokens will cause immediate termination of all active sessions. All clients need to re-authenticate.",
         "oauth2_info": "The OAuth2 implementation supports the grant type \"Authorization Code\" and issues refresh tokens.<br>\r\nThe server also automatically issues new refresh tokens, after a refresh token has been used.<br><br>\r\n&#8226; The default scope is <i>profile</i>. Only mailbox users can be authenticated against OAuth2. If the scope parameter is omitted, it falls back to <i>profile</i>.<br>\r\n&#8226; The <i>state</i> parameter is required to be sent by the client as part of the authorize request.<br><br>\r\nPaths for requests to the OAuth2 API: <br>\r\n<ul>\r\n  <li>Authorization endpoint: <code>/oauth/authorize</code></li>\r\n  <li>Token endpoint: <code>/oauth/token</code></li>\r\n  <li>Resource page:  <code>/oauth/profile</code></li>\r\n</ul>\r\nRegenerating the client secret will not expire existing authorization codes, but they will fail to renew their token.<br><br>\r\nRevoking client tokens will cause immediate termination of all active sessions. All clients need to re-authenticate.",
@@ -523,7 +528,7 @@
         "app_passwd": "App password",
         "app_passwd": "App password",
         "automap": "Try to automap folders (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
         "automap": "Try to automap folders (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
         "backup_mx_options": "Relay options",
         "backup_mx_options": "Relay options",
-        "bcc_dest_format": "BCC destination must be a single valid email address.",
+        "bcc_dest_format": "BCC destination must be a single valid email address.<br> If you need to send a copy to multiple addresses, create an Alias and use it here.",
         "client_id": "Client ID",
         "client_id": "Client ID",
         "client_secret": "Client secret",
         "client_secret": "Client secret",
         "comment_info": "A private comment is not visible to the user, while a public comment is shown as tooltip when hovering it in a user's overview",
         "comment_info": "A private comment is not visible to the user, while a public comment is shown as tooltip when hovering it in a user's overview",
@@ -704,6 +709,7 @@
         "alias_domain_alias_hint": "Aliases are <b>not</b> applied on domain aliases automatically. An alias address <code>my-alias@domain</code> <b>does not</b> cover the address <code>my-alias@alias-domain</code> (where \"alias-domain\" is an imaginary alias domain for \"domain\").<br>Please use a sieve filter to redirect mail to an external mailbox (see tab \"Filters\" or use  SOGo -> Forwarder). Use \"Expand alias over alias domains\" to automatically add missing aliases.",
         "alias_domain_alias_hint": "Aliases are <b>not</b> applied on domain aliases automatically. An alias address <code>my-alias@domain</code> <b>does not</b> cover the address <code>my-alias@alias-domain</code> (where \"alias-domain\" is an imaginary alias domain for \"domain\").<br>Please use a sieve filter to redirect mail to an external mailbox (see tab \"Filters\" or use  SOGo -> Forwarder). Use \"Expand alias over alias domains\" to automatically add missing aliases.",
         "alias_domain_backupmx": "Alias domain inactive for relay domain",
         "alias_domain_backupmx": "Alias domain inactive for relay domain",
         "aliases": "Aliases",
         "aliases": "Aliases",
+        "all_domains": "All Domains",
         "allow_from_smtp": "Only allow these IPs to use <b>SMTP</b>",
         "allow_from_smtp": "Only allow these IPs to use <b>SMTP</b>",
         "allow_from_smtp_info": "Leave empty to allow all senders.<br>IPv4/IPv6 addresses and networks.",
         "allow_from_smtp_info": "Leave empty to allow all senders.<br>IPv4/IPv6 addresses and networks.",
         "allowed_protocols": "Allowed protocols",
         "allowed_protocols": "Allowed protocols",
@@ -727,6 +733,7 @@
         "booking_custom_short": "Hard limit",
         "booking_custom_short": "Hard limit",
         "booking_lt0": "Unlimited, but show as busy when booked",
         "booking_lt0": "Unlimited, but show as busy when booked",
         "booking_lt0_short": "Soft limit",
         "booking_lt0_short": "Soft limit",
+        "catch_all": "Catch-All",
         "daily": "Daily",
         "daily": "Daily",
         "deactivate": "Deactivate",
         "deactivate": "Deactivate",
         "description": "Description",
         "description": "Description",
@@ -744,6 +751,8 @@
         "filter_table": "Filter table",
         "filter_table": "Filter table",
         "filters": "Filters",
         "filters": "Filters",
         "fname": "Full name",
         "fname": "Full name",
+        "goto_ham": "Learn as <b>ham</b>",
+        "goto_spam": "Learn as <b>spam</b>",
         "hourly": "Hourly",
         "hourly": "Hourly",
         "in_use": "In use (%)",
         "in_use": "In use (%)",
         "inactive": "Inactive",
         "inactive": "Inactive",
@@ -776,6 +785,7 @@
         "quarantine_category": "Quarantine notification category",
         "quarantine_category": "Quarantine notification category",
         "quarantine_notification": "Quarantine notifications",
         "quarantine_notification": "Quarantine notifications",
         "quick_actions": "Actions",
         "quick_actions": "Actions",
+        "recipient": "Recipient",
         "recipient_map": "Recipient map",
         "recipient_map": "Recipient map",
         "recipient_map_info": "Recipient maps are used to replace the destination address on a message before it is delivered.",
         "recipient_map_info": "Recipient maps are used to replace the destination address on a message before it is delivered.",
         "recipient_map_new": "New recipient",
         "recipient_map_new": "New recipient",
@@ -786,6 +796,7 @@
         "remove": "Remove",
         "remove": "Remove",
         "resources": "Resources",
         "resources": "Resources",
         "running": "Running",
         "running": "Running",
+        "sender": "Sender",
         "set_postfilter": "Mark as postfilter",
         "set_postfilter": "Mark as postfilter",
         "set_prefilter": "Mark as prefilter",
         "set_prefilter": "Mark as prefilter",
         "sieve_info": "You can store multiple filters per user, but only one prefilter and one postfilter can be active at the same time.<br>\r\nEach filter will be processed in the described order. Neither a failed script nor an issued \"keep;\" will stop processing of further scripts. Changes to global sieve scripts will trigger a restart of Dovecot.<br><br>Global sieve prefilter &#8226; Prefilter &#8226; User scripts &#8226; Postfilter &#8226; Global sieve postfilter",
         "sieve_info": "You can store multiple filters per user, but only one prefilter and one postfilter can be active at the same time.<br>\r\nEach filter will be processed in the described order. Neither a failed script nor an issued \"keep;\" will stop processing of further scripts. Changes to global sieve scripts will trigger a restart of Dovecot.<br><br>Global sieve prefilter &#8226; Prefilter &#8226; User scripts &#8226; Postfilter &#8226; Global sieve postfilter",
@@ -888,6 +899,13 @@
         "toggle_all": "Toggle all",
         "toggle_all": "Toggle all",
         "type": "Type"
         "type": "Type"
     },
     },
+    "ratelimit": {
+	    "disabled": "Disabled",
+	    "second": "msgs / second",
+	    "minute": "msgs / minute",
+	    "hour": "msgs / hour",
+	    "day": "msgs / day"
+    },
     "start": {
     "start": {
         "help": "Show/Hide help panel",
         "help": "Show/Hide help panel",
         "imap_smtp_server_auth_info": "Please use your full email address and the PLAIN authentication mechanism.<br>\r\nYour login data will be encrypted by the server-side mandatory encryption.",
         "imap_smtp_server_auth_info": "Please use your full email address and the PLAIN authentication mechanism.<br>\r\nYour login data will be encrypted by the server-side mandatory encryption.",

+ 88 - 70
data/web/lang/lang.sk.json

@@ -18,7 +18,7 @@
         "quarantine_attachments": "Umiestniť prílohy do karantény",
         "quarantine_attachments": "Umiestniť prílohy do karantény",
         "quarantine_category": "Zmeniť kategóriu karanténnych notifikácií",
         "quarantine_category": "Zmeniť kategóriu karanténnych notifikácií",
         "quarantine_notification": "Zmeniť notifikácie karantény",
         "quarantine_notification": "Zmeniť notifikácie karantény",
-        "ratelimit": "Limit prenosu",
+        "ratelimit": "Obmedzenie prenosu",
         "recipient_maps": "Mapy príjemcu",
         "recipient_maps": "Mapy príjemcu",
         "smtp_ip_access": "Spravovať povolených hostiteľov pre SMTP",
         "smtp_ip_access": "Spravovať povolených hostiteľov pre SMTP",
         "sogo_access": "Povoliť spravovanie prístupu do SOGo",
         "sogo_access": "Povoliť spravovanie prístupu do SOGo",
@@ -48,12 +48,13 @@
         "app_password": "Pridať heslo aplikácie",
         "app_password": "Pridať heslo aplikácie",
         "automap": "Skúsiť automaticky mapovať priečinky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "automap": "Skúsiť automaticky mapovať priečinky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "backup_mx_options": "Možnosti preposielania",
         "backup_mx_options": "Možnosti preposielania",
+        "bcc_dest_format": "Cieľ kópie musí byť jedna platná emailová adresa. Pokiaľ potrebujete posielať kópie na viac adries, vytvorte Alias a použite ho tu.",
         "comment_info": "Súkromný komentár nie je viditeľný používateľovi, na rozdiel od verejného komentára, ktorý je prezentovaný ako popis v prehľade používateľov",
         "comment_info": "Súkromný komentár nie je viditeľný používateľovi, na rozdiel od verejného komentára, ktorý je prezentovaný ako popis v prehľade používateľov",
         "custom_params": "Voliteľné parametre",
         "custom_params": "Voliteľné parametre",
         "custom_params_hint": "Správne: --param=xy, nesprávne: --param xy",
         "custom_params_hint": "Správne: --param=xy, nesprávne: --param xy",
-        "delete1": "Vymazať zo zdroja, po dokončení",
-        "delete2": "Vymazať správy na cieli, ktoré nie sú na zdroji",
-        "delete2duplicates": "Vymazať duplikáty v cieľovom umiestnení",
+        "delete1": "Vymazať zo zdrojovej schránky, po dokončení prenosu",
+        "delete2": "Vymazať správy v cieľovej schránke, ak nie sú v zdrojovej",
+        "delete2duplicates": "Vymazať duplikáty v cieľovej schránke",
         "description": "Popis",
         "description": "Popis",
         "destination": "Cieľ",
         "destination": "Cieľ",
         "disable_login": "Zablokovať prihlásenie (nevzťahuje sa na prichádzajúcu poštu)",
         "disable_login": "Zablokovať prihlásenie (nevzťahuje sa na prichádzajúcu poštu)",
@@ -98,14 +99,14 @@
         "sieve_desc": "Krátky popis",
         "sieve_desc": "Krátky popis",
         "sieve_type": "Typ filtru",
         "sieve_type": "Typ filtru",
         "skipcrossduplicates": "Preskočiť duplikované správy naprieč priečinkami (akceptuje sa prvý nález)",
         "skipcrossduplicates": "Preskočiť duplikované správy naprieč priečinkami (akceptuje sa prvý nález)",
-        "subscribeall": "Odoberať všetky priečinky",
+        "subscribeall": "Synchronizovať všetky priečinky",
         "syncjob": "Pridať novú synchronizačnú úlohu",
         "syncjob": "Pridať novú synchronizačnú úlohu",
         "syncjob_hint": "Upozornenie, heslá budú uložené v obyčajnom texte!",
         "syncjob_hint": "Upozornenie, heslá budú uložené v obyčajnom texte!",
         "target_address": "Cieľové adresy",
         "target_address": "Cieľové adresy",
         "target_address_info": "<small>Celá emailová adresa/y (oddelené čiarkou).</small>",
         "target_address_info": "<small>Celá emailová adresa/y (oddelené čiarkou).</small>",
         "target_domain": "Cieľová doména",
         "target_domain": "Cieľová doména",
-        "timeout1": "Časový limit pre spojenie s diaľkovým hostiteľom",
-        "timeout2": "Časový limit pre spojenie s lokálnym hostiteľom",
+        "timeout1": "Časový limit pre spojenie so vzdialeným serverom",
+        "timeout2": "Časový limit pre spojenie s lokálnym serverom",
         "username": "Používateľské meno",
         "username": "Používateľské meno",
         "validate": "Overiť",
         "validate": "Overiť",
         "validation_success": "Úspešne overené",
         "validation_success": "Úspešne overené",
@@ -126,13 +127,13 @@
         "add": "Pridať",
         "add": "Pridať",
         "add_admin": "Pridať administrátora",
         "add_admin": "Pridať administrátora",
         "add_domain_admin": "Pridať administrátora domény",
         "add_domain_admin": "Pridať administrátora domény",
-        "add_forwarding_host": "Pridať doručovacieho hostiteľa",
-        "add_relayhost": "Pridať transportný záznam",
-        "add_relayhost_hint": "Prosím berte do úvahy, že autentifikačné dáta, ak existujú, budú uložené ako jednoduchý text.",
+        "add_forwarding_host": "Pridať preposielací server",
+        "add_relayhost": "Pridať transport",
+        "add_relayhost_hint": "Prosím berte do úvahy, že údaje overenia budú uložené ako nešifrovaný reťazec.",
         "add_row": "Pridať riadok",
         "add_row": "Pridať riadok",
         "add_settings_rule": "Pridať pravidlo nastavenia",
         "add_settings_rule": "Pridať pravidlo nastavenia",
         "add_transport": "Pridať transport",
         "add_transport": "Pridať transport",
-        "add_transports_hint": "Prosím berte do úvahy, že overovacie dáta, ak existujú, budú uložené ako jednoduchý text.",
+        "add_transports_hint": "Prosím berte do úvahy, že údaje overenia budú uložené ako nešifrovaný reťazec.",
         "additional_rows": " boli pridané ďalšie riadky",
         "additional_rows": " boli pridané ďalšie riadky",
         "admin": "Administrátor",
         "admin": "Administrátor",
         "admin_details": "Upraviť detaily administrátora",
         "admin_details": "Upraviť detaily administrátora",
@@ -141,12 +142,14 @@
         "admins_ldap": "LDAP Administrátori",
         "admins_ldap": "LDAP Administrátori",
         "advanced_settings": "Pokročilé nastavenia",
         "advanced_settings": "Pokročilé nastavenia",
         "api_allow_from": "Povoliť API prístup z týchto adries alebo rozsahov - IP/CIDR",
         "api_allow_from": "Povoliť API prístup z týchto adries alebo rozsahov - IP/CIDR",
-        "api_info": "API momentálne pracuje. Dokumentáciu nájdete na <a href=\"/api\">/api</a>",
+        "api_info": "Dokumentáciu nájdete na <a href=\"/api\">/api</a>",
         "api_key": "API kľúč",
         "api_key": "API kľúč",
-        "api_skip_ip_check": "Preskočiť kontrolu IP pre API",
+        "api_read_only": "Prístup iba na čítanie",
+        "api_read_write": "Prístup aj so zápisom",
+        "api_skip_ip_check": "Vypnúť kontrolu IP",
         "app_links": "Odkazy na aplikácie",
         "app_links": "Odkazy na aplikácie",
         "app_name": "Meno aplikácie",
         "app_name": "Meno aplikácie",
-        "apps_name": "\"mailcow Apps\" meno",
+        "apps_name": "\"mailcow Apps\" názov",
         "arrival_time": "Čas príchodu (čas servera)",
         "arrival_time": "Čas príchodu (čas servera)",
         "authed_user": "Overený používateľ",
         "authed_user": "Overený používateľ",
         "ays": "Naozaj chcete pokračovať?",
         "ays": "Naozaj chcete pokračovať?",
@@ -163,16 +166,16 @@
         "dkim_domains_selector": "Selektor",
         "dkim_domains_selector": "Selektor",
         "dkim_domains_wo_keys": "Vybrať domény s chýbajúcimi kľúčmi",
         "dkim_domains_wo_keys": "Vybrať domény s chýbajúcimi kľúčmi",
         "dkim_from": "Od",
         "dkim_from": "Od",
-        "dkim_from_title": "Zdrojová doména kopíruje dáta od",
+        "dkim_from_title": "Zdrojová doména, z ktorej sa majú kopírovať údaje",
         "dkim_key_length": "Dĺžka DKIM kľúča (bity)",
         "dkim_key_length": "Dĺžka DKIM kľúča (bity)",
         "dkim_key_missing": "Chýbajúci kľúč",
         "dkim_key_missing": "Chýbajúci kľúč",
-        "dkim_key_unused": "Kľúč je nepoužívaný",
-        "dkim_key_valid": "Kľúč je platný",
+        "dkim_key_unused": "Nepoužívaný kľúč",
+        "dkim_key_valid": "Platný kľúč",
         "dkim_keys": "ARC/DKIM kľúče",
         "dkim_keys": "ARC/DKIM kľúče",
         "dkim_overwrite_key": "Prepísať existujúci DKIM kľúč",
         "dkim_overwrite_key": "Prepísať existujúci DKIM kľúč",
         "dkim_private_key": "Súkromný kľúč",
         "dkim_private_key": "Súkromný kľúč",
-        "dkim_to": "Komu",
-        "dkim_to_title": "Cieľová doména/y – bude prepísaná",
+        "dkim_to": "Do",
+        "dkim_to_title": "Cieľová doména/y – údaje budú prepísané",
         "domain": "Doména",
         "domain": "Doména",
         "domain_admin": "Administrátor domény",
         "domain_admin": "Administrátor domény",
         "domain_admins": "Administrátori domény",
         "domain_admins": "Administrátori domény",
@@ -189,7 +192,7 @@
         "f2b_max_attempts": "Max. počet pokusov",
         "f2b_max_attempts": "Max. počet pokusov",
         "f2b_netban_ipv4": "Veľkosť IPv4 subnetu na ktorý sa aplikuje zákaz (8-32)",
         "f2b_netban_ipv4": "Veľkosť IPv4 subnetu na ktorý sa aplikuje zákaz (8-32)",
         "f2b_netban_ipv6": "Veľkosť IPv6 subnetu na ktorý sa aplikuje zákaz (8-128)",
         "f2b_netban_ipv6": "Veľkosť IPv6 subnetu na ktorý sa aplikuje zákaz (8-128)",
-        "f2b_parameters": "Fail2ban parametre",
+        "f2b_parameters": "Parametre automatického firewallu",
         "f2b_regex_info": "Záznamy ktoré sa berú do úvahy: SOGo, Postfix, Dovecot, PHP-FPM.",
         "f2b_regex_info": "Záznamy ktoré sa berú do úvahy: SOGo, Postfix, Dovecot, PHP-FPM.",
         "f2b_retry_window": "Čas v ktorom je treba uplatniť max. počet pokusov (s)",
         "f2b_retry_window": "Čas v ktorom je treba uplatniť max. počet pokusov (s)",
         "f2b_whitelist": "Whitelist sietí/hostiteľov",
         "f2b_whitelist": "Whitelist sietí/hostiteľov",
@@ -202,8 +205,8 @@
         "generate": "generovať",
         "generate": "generovať",
         "guid": "GUID – unikátne ID",
         "guid": "GUID – unikátne ID",
         "guid_and_license": "GUID & Licencia",
         "guid_and_license": "GUID & Licencia",
-        "hash_remove_info": "Odstránením hashu pre limit prenosu (ak stále existuje), sa kompletne resetuje počítadlo.<br>\r\n Každý hash je označený individuálnou farbou.",
-        "help_text": "Pomocný text pod prihlasovacou maskou (HTML povolené)",
+        "hash_remove_info": "Odstránením hashu pre obmedzenie prenosu (ak stále existuje), sa kompletne resetuje počítadlo.<br>\r\n Každý hash je označený individuálnou farbou.",
+        "help_text": "Prepísať text nápovede pod prihlasovacou obrazovkou (HTML povolené)",
         "host": "Hostiteľ",
         "host": "Hostiteľ",
         "html": "HTML",
         "html": "HTML",
         "import": "Importovať",
         "import": "Importovať",
@@ -211,7 +214,7 @@
         "in_use_by": "Používané",
         "in_use_by": "Používané",
         "inactive": "Neaktívny",
         "inactive": "Neaktívny",
         "include_exclude": "Zahrnúť/Vylúčiť",
         "include_exclude": "Zahrnúť/Vylúčiť",
-        "include_exclude_info": "Podľa predvolených nastavení – so žiadnym výberom- <b>všetky schránky</b> sú adresované",
+        "include_exclude_info": "Ak nič nevyberiete tak bude adresované <b>všetkým schránkam</b>",
         "includes": "Zahrnúť týchto príjemcov",
         "includes": "Zahrnúť týchto príjemcov",
         "is_mx_based": "Na základe MX",
         "is_mx_based": "Na základe MX",
         "last_applied": "Naposledy aplikované",
         "last_applied": "Naposledy aplikované",
@@ -221,7 +224,7 @@
         "login_time": "Čas prihlásenia",
         "login_time": "Čas prihlásenia",
         "logo_info": "Váš obrázok bude upravený na výšku 40px pre vrchný navigačný riadok a na maximálnu šírku 250px pre úvodnú stránku. Odporúča sa škálovateľná grafika.",
         "logo_info": "Váš obrázok bude upravený na výšku 40px pre vrchný navigačný riadok a na maximálnu šírku 250px pre úvodnú stránku. Odporúča sa škálovateľná grafika.",
         "lookup_mx": "Cieľ je regulárny výraz ktorý sa zhoduje s MX záznamom (<code>.*google\\.com</code> smeruje všetku poštu na MX ktoré sú cieľom pre google.com cez tento skok)",
         "lookup_mx": "Cieľ je regulárny výraz ktorý sa zhoduje s MX záznamom (<code>.*google\\.com</code> smeruje všetku poštu na MX ktoré sú cieľom pre google.com cez tento skok)",
-        "main_name": "\"mailcow UI\" meno",
+        "main_name": "\"mailcow UI\" názov",
         "merged_vars_hint": "Sivé riadky boli načítané z <code>vars.(local.)inc.php</code> a nemôžu byť modifikované cez UI.",
         "merged_vars_hint": "Sivé riadky boli načítané z <code>vars.(local.)inc.php</code> a nemôžu byť modifikované cez UI.",
         "message": "Správa",
         "message": "Správa",
         "message_size": "Veľkosť správy",
         "message_size": "Veľkosť správy",
@@ -230,6 +233,8 @@
         "no_active_bans": "Žiadne aktívne zákazy",
         "no_active_bans": "Žiadne aktívne zákazy",
         "no_new_rows": "Žiadne ďalšie riadky nie sú k dispozícii",
         "no_new_rows": "Žiadne ďalšie riadky nie sú k dispozícii",
         "no_record": "Žiaden záznam",
         "no_record": "Žiaden záznam",
+        "oauth2_apps": "OAuth2 Aplikácie",
+        "oauth2_add_client": "Pridať OAuth2 klienta",
         "oauth2_client_id": "ID klienta",
         "oauth2_client_id": "ID klienta",
         "oauth2_client_secret": "Tajný kľuč",
         "oauth2_client_secret": "Tajný kľuč",
         "oauth2_info": "OAuth2 implementácia podporuje typ prideľovania \"Authorization Code\" a vydáva tokeny k obnoveniu.<br>\r\nServer automaticky vydáva nové tokeny k obnoveniu, akonáhle bol predchádzajúci token použitý.<br><br>\r\n&#8226; Predvolený rozsah je <i>profile</i>. Iba používatelia poštovej schránky môžu byť autentifikovaný cez OAuth2. Ak je rozsahový pramater vynechaný, spadá naspäť do <i>profile</i>.<br>\r\n&#8226; <i>Stavový</i> parameter je potrebný poslať klientom ako súčasť autorizačnej požiadavky.<br><br>\r\nCesty pre požiadavky ku OAuth2 API: <br>\r\n<ul>\r\n <li>Koncový bod autorizácie: <code>/oauth/authorize</code></li>\r\n <li>Koncový bod tokenu: <code>/oauth/token</code></li>\r\n <li>Zdrojová stránka: <code>/oauth/profile</code></li>\r\n</ul>\r\nAk príde k obnoveniu <i>tajného kľúča</i>, nezruší sa platnosť existujúcich autorizačných kódov, ale nebude možné obnoviť ich token.<br><br>\r\nOdobratím <i>tajného kľúča</i> bude mať za následok zrušenie všetkých aktívnych relácií. Všetci klienti musia podstúpiť re-autentifikačný proces.",
         "oauth2_info": "OAuth2 implementácia podporuje typ prideľovania \"Authorization Code\" a vydáva tokeny k obnoveniu.<br>\r\nServer automaticky vydáva nové tokeny k obnoveniu, akonáhle bol predchádzajúci token použitý.<br><br>\r\n&#8226; Predvolený rozsah je <i>profile</i>. Iba používatelia poštovej schránky môžu byť autentifikovaný cez OAuth2. Ak je rozsahový pramater vynechaný, spadá naspäť do <i>profile</i>.<br>\r\n&#8226; <i>Stavový</i> parameter je potrebný poslať klientom ako súčasť autorizačnej požiadavky.<br><br>\r\nCesty pre požiadavky ku OAuth2 API: <br>\r\n<ul>\r\n <li>Koncový bod autorizácie: <code>/oauth/authorize</code></li>\r\n <li>Koncový bod tokenu: <code>/oauth/token</code></li>\r\n <li>Zdrojová stránka: <code>/oauth/profile</code></li>\r\n</ul>\r\nAk príde k obnoveniu <i>tajného kľúča</i>, nezruší sa platnosť existujúcich autorizačných kódov, ale nebude možné obnoviť ich token.<br><br>\r\nOdobratím <i>tajného kľúča</i> bude mať za následok zrušenie všetkých aktívnych relácií. Všetci klienti musia podstúpiť re-autentifikačný proces.",
@@ -249,17 +254,17 @@
         "priority": "Priorita",
         "priority": "Priorita",
         "private_key": "Súkromný kľúč",
         "private_key": "Súkromný kľúč",
         "quarantine": "Karanténa",
         "quarantine": "Karanténa",
-        "quarantine_bcc": "Poslať kópiu všetkých upozornení (BCC) tomuto príjemcovi:<br><small>Nechať prázdne pre vypnutie. <b>Nepodpísaná, neskontrolovaná pošta, by mala byť doručená interne.</b></small>",
-        "quarantine_exclude_domains": "Vymedziť domény a doménové aliasy",
-        "quarantine_max_age": "Maximálne obdobie v dňoch<br><small>Hodnota sa musí rovnať alebo byť väčšia ako 1 deň.</small>",
+        "quarantine_bcc": "Poslať kópiu všetkých upozornení (BCC) tomuto príjemcovi:<br><small>Pre deaktiváciu nechajte nevyplnené. <b>Nepodpísaná, neskontrolovaná pošta, mala by byť doručovaná iba interne.</b></small>",
+        "quarantine_exclude_domains": "Vylúčiť domény a doménové aliasy",
+        "quarantine_max_age": "Maximálne obdobie v dňoch<br><small>Hodnota musí byť 1 alebo viac dní.</small>",
         "quarantine_max_score": "Neposielať notifikácie ak je spam skóre väčšie ako hodnota:<br><small>Predvolená je 9999.0</small>",
         "quarantine_max_score": "Neposielať notifikácie ak je spam skóre väčšie ako hodnota:<br><small>Predvolená je 9999.0</small>",
-        "quarantine_max_size": "Maximálna veľkosť v MiB (väčšie prvky sú vyradené):<br><small>0 neznamená <b>neobmedzené</b>.</small>",
-        "quarantine_notification_html": "Predloha notifikácie:<br><small>Nechať prázdne pre obnovenie originálnej predlohy.</small>",
+        "quarantine_max_size": "Maximálna veľkosť v MiB (väčšie správy sú vyradené):<br><small>0 <b>neznamená</b> neobmedzené.</small>",
+        "quarantine_notification_html": "Šablóna notifikácie:<br><small>Nechajte prázdne pre použitie originálnej šablóny.</small>",
         "quarantine_notification_sender": "Odosielateľ notifikácie",
         "quarantine_notification_sender": "Odosielateľ notifikácie",
         "quarantine_notification_subject": "Predmet notifikácie",
         "quarantine_notification_subject": "Predmet notifikácie",
-        "quarantine_redirect": "<b>Presmerovať notifikácie</b> na túto adresu:<br><small>Pre vypnutie nechajte nevyplnené. <b>Nepodpísaná, neskontrolovaná pošta, by mala byť doručená interne.</b></small>",
-        "quarantine_release_format": "Uvoľniť položky z karantény ako",
-        "quarantine_release_format_att": "Ako príloha",
+        "quarantine_redirect": "<b>Presmerovať všetky notifikácie</b> na túto adresu:<br><small>Pre deaktiváciu nechajte nevyplnené. <b>Nepodpísaná, neskontrolovaná pošta, mala by byť doručovaná iba interne.</b></small>",
+        "quarantine_release_format": "Uvoľňovať položky z karantény ako",
+        "quarantine_release_format_att": "Prílohu",
         "quarantine_release_format_raw": "Nemodifikovaný originál",
         "quarantine_release_format_raw": "Nemodifikovaný originál",
         "quarantine_retention_size": "Počet zadržaných správ pre jednotlivé poštové schránky<br><small>0 znamená <b>neaktívne</b>.</small>",
         "quarantine_retention_size": "Počet zadržaných správ pre jednotlivé poštové schránky<br><small>0 znamená <b>neaktívne</b>.</small>",
         "queue_ays": "Prosím potvrďte vymazanie všetkých položiek z aktuálnej fronty.",
         "queue_ays": "Prosím potvrďte vymazanie všetkých položiek z aktuálnej fronty.",
@@ -270,10 +275,10 @@
         "queue_unban": "Odblokovať",
         "queue_unban": "Odblokovať",
         "queue_unhold_mail": "Uvoľniť",
         "queue_unhold_mail": "Uvoľniť",
         "quota_notification_html": "Notifikácia email predloha:<br><small>Nechať prázdne pre obnovenie originálnej predlohy.</small>",
         "quota_notification_html": "Notifikácia email predloha:<br><small>Nechať prázdne pre obnovenie originálnej predlohy.</small>",
-        "quota_notification_sender": "Notifikácia email odosielateľ",
-        "quota_notification_subject": "Notifikácia email predmet",
+        "quota_notification_sender": "Odosielateľ notifikácií",
+        "quota_notification_subject": "Predmet notifikácií",
         "quota_notifications": "Notifikácie o kvótach",
         "quota_notifications": "Notifikácie o kvótach",
-        "quota_notifications_info": "Upozornenie na kvótu sú odoslané používateľom, keď prekročia 80% a 95% objemu schránky.",
+        "quota_notifications_info": "Notifikácie o kvóte sú odosielané používateľom, keď prekročia 80% a 95% objemu schránky.",
         "quota_notifications_vars": "{{percent}} sa rovná aktuálnej kvóte používateľa <br>{{užívateľské meno}} je poštová schránka",
         "quota_notifications_vars": "{{percent}} sa rovná aktuálnej kvóte používateľa <br>{{užívateľské meno}} je poštová schránka",
         "r_active": "Aktívne obmedzenia",
         "r_active": "Aktívne obmedzenia",
         "r_inactive": "Neaktívne obmedzenia",
         "r_inactive": "Neaktívne obmedzenia",
@@ -299,11 +304,11 @@
         "rsetting_no_selection": "Prosím vyberte pravidlo",
         "rsetting_no_selection": "Prosím vyberte pravidlo",
         "rsetting_none": "Žiadne dostupné pravidlá",
         "rsetting_none": "Žiadne dostupné pravidlá",
         "rsettings_insert_preset": "Vložiť príklad \"%s\"",
         "rsettings_insert_preset": "Vložiť príklad \"%s\"",
-        "rsettings_preset_1": "Vypnúť všetky obmedzenia pre overených používateľov okrem DKIM a prenosového obmedzenia ",
+        "rsettings_preset_1": "Vypnúť všetky obmedzenia pre overených používateľov okrem DKIM a obmedzenia prenosu (rate limiting)",
         "rsettings_preset_2": "Prijať každý spam",
         "rsettings_preset_2": "Prijať každý spam",
         "rsettings_preset_3": "Povoliť len špecifických odosielateľov (využitie ako interná schránka pre lokálne doručovanie)",
         "rsettings_preset_3": "Povoliť len špecifických odosielateľov (využitie ako interná schránka pre lokálne doručovanie)",
         "rsettings_preset_4": "Deaktivujte Rspamd pre doménu",
         "rsettings_preset_4": "Deaktivujte Rspamd pre doménu",
-        "rspamd-com_settings": "Názov nastavenia bude automaticky generovaný, prosím pozrite sa na príklad uvedeny nižšie. Pre viac informácií navštívte <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd docs</a>",
+        "rspamd-com_settings": "Názov nastavenia bude automaticky vygenerovaný, pozrite sa prosím na ukážky uvedené nižšie. Pre viac informácií navštívte <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd dokumentáciu</a>",
         "rspamd_global_filters": "Mapy globálnych filtrov",
         "rspamd_global_filters": "Mapy globálnych filtrov",
         "rspamd_global_filters_agree": "Budem opatrný!",
         "rspamd_global_filters_agree": "Budem opatrný!",
         "rspamd_global_filters_info": "Mapy globálnych filtrov obsahujú rozličné druhy globálnych blacklistov a whitelistov.",
         "rspamd_global_filters_info": "Mapy globálnych filtrov obsahujú rozličné druhy globálnych blacklistov a whitelistov.",
@@ -324,7 +329,7 @@
         "text": "Text",
         "text": "Text",
         "time": "Čas",
         "time": "Čas",
         "title": "Názov",
         "title": "Názov",
-        "title_name": "\"mailcow UI\" názov webstránky",
+        "title_name": "\"mailcow UI\" titulka",
         "to_top": "Naspať navrch",
         "to_top": "Naspať navrch",
         "transport_dest_format": "Regulárny výraz alebo syntax: example.org, .example.org, *, box@example.org (viacero hodnôt môžu byť oddelené čiarkou)",
         "transport_dest_format": "Regulárny výraz alebo syntax: example.org, .example.org, *, box@example.org (viacero hodnôt môžu byť oddelené čiarkou)",
         "transport_maps": "Transportné Mapy",
         "transport_maps": "Transportné Mapy",
@@ -359,9 +364,9 @@
         "aliases_in_use": "Max. počet aliasov musí byť väčší alebo rovnajúci sa %d",
         "aliases_in_use": "Max. počet aliasov musí byť väčší alebo rovnajúci sa %d",
         "app_name_empty": "Meno aplikácie nemôže byť prázdne",
         "app_name_empty": "Meno aplikácie nemôže byť prázdne",
         "app_passwd_id_invalid": "Heslo aplikácie ID %s neplatné",
         "app_passwd_id_invalid": "Heslo aplikácie ID %s neplatné",
-        "bcc_empty": "BCC cieľ nemôže byť prázdny",
-        "bcc_exists": "BCC mapa %s existuje pre typ %s",
-        "bcc_must_be_email": "BCC cieľ %s nie je platná emailová adresa",
+        "bcc_empty": "Cieľ kópie nemôže byť prázdny",
+        "bcc_exists": "Skrytá kópia %s už existuje pre typ %s",
+        "bcc_must_be_email": "Cieľ kópie %s nie je platná emailová adresa",
         "comment_too_long": "Komentár je príliš dlhý, povolených je max. 160 znakov",
         "comment_too_long": "Komentár je príliš dlhý, povolených je max. 160 znakov",
         "defquota_empty": "Predvolená kvóta pre poštovú schránku nemôže byť 0.",
         "defquota_empty": "Predvolená kvóta pre poštovú schránku nemôže byť 0.",
         "description_invalid": "Popis zdroja pre %s je neplatný",
         "description_invalid": "Popis zdroja pre %s je neplatný",
@@ -523,13 +528,13 @@
         "app_passwd": "Heslo aplikácie",
         "app_passwd": "Heslo aplikácie",
         "automap": "Skúsiť automapovať priečinky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "automap": "Skúsiť automapovať priečinky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "backup_mx_options": "Možnosti preposielania",
         "backup_mx_options": "Možnosti preposielania",
-        "bcc_dest_format": "BCC cieľ musí byť jedna platná emailová adresa.",
+        "bcc_dest_format": "Cieľ kópie musí byť jedna platná emailová adresa. Pokiaľ potrebujete posielať kópie na viac adries, vytvorte Alias a použite ho tu.",
         "client_id": "ID klienta",
         "client_id": "ID klienta",
         "client_secret": "Klientský tajný kľúč",
         "client_secret": "Klientský tajný kľúč",
         "comment_info": " Súkromný komentár nie je viditeľný používateľovi, na rozdiel od verejného komentára, ktorý je prezentovaný ako popis v prehľade používateľov",
         "comment_info": " Súkromný komentár nie je viditeľný používateľovi, na rozdiel od verejného komentára, ktorý je prezentovaný ako popis v prehľade používateľov",
-        "delete1": "Vymazať zo zdroja, po dokončení",
-        "delete2": "Vymazať správy na cieli, ktoré nie sú na zdroji",
-        "delete2duplicates": "Vymazať duplikáty na cieli",
+        "delete1": "Vymazať zo zdrojovej schránky, po dokončení prenosu",
+        "delete2": "Vymazať správy v cieľovej schránke, ak nie sú v zdrojovej",
+        "delete2duplicates": "Vymazať duplikáty v cieľovej schránke",
         "delete_ays": "Potvrďte zmazanie.",
         "delete_ays": "Potvrďte zmazanie.",
         "description": "Popis",
         "description": "Popis",
         "disable_login": "Zablokovať prihlásenie (nevzťahuje sa na prichádzajúcu poštu)",
         "disable_login": "Zablokovať prihlásenie (nevzťahuje sa na prichádzajúcu poštu)",
@@ -613,8 +618,8 @@
         "syncjob": "Upraviť synchronizačnú úlohu",
         "syncjob": "Upraviť synchronizačnú úlohu",
         "target_address": "Cieľová adresa/y <small>(oddelené čiarkou)</small>",
         "target_address": "Cieľová adresa/y <small>(oddelené čiarkou)</small>",
         "target_domain": "Cieľová doména",
         "target_domain": "Cieľová doména",
-        "timeout1": "Timeout pre spojenie s diaľkovým hostiteľom",
-        "timeout2": "Timeout pre spojenie s lokálnym hostiteľom",
+        "timeout1": "Timeout pre spojenie s vzdialeným serverom",
+        "timeout2": "Timeout pre spojenie s lokálnym serverom",
         "title": "Upraviť objekt",
         "title": "Upraviť objekt",
         "unchanged_if_empty": "Ak nemeníte, nechajte prázdne",
         "unchanged_if_empty": "Ak nemeníte, nechajte prázdne",
         "username": "Používateľské meno",
         "username": "Používateľské meno",
@@ -690,7 +695,7 @@
         "add": "Pridať",
         "add": "Pridať",
         "add_alias": "Pridať alias",
         "add_alias": "Pridať alias",
         "add_alias_expand": "Rozšíriť alias o alias domény",
         "add_alias_expand": "Rozšíriť alias o alias domény",
-        "add_bcc_entry": "Pridať BCC mapu",
+        "add_bcc_entry": "Pridať skrytú kópiu",
         "add_domain": "Pridať doménu",
         "add_domain": "Pridať doménu",
         "add_domain_alias": "Pridať alias doménu",
         "add_domain_alias": "Pridať alias doménu",
         "add_domain_record_first": "Prosím pridajte najprv doménu",
         "add_domain_record_first": "Prosím pridajte najprv doménu",
@@ -699,34 +704,36 @@
         "add_recipient_map_entry": "Pridať mapu príjemcu",
         "add_recipient_map_entry": "Pridať mapu príjemcu",
         "add_resource": "Pridať zdroj",
         "add_resource": "Pridať zdroj",
         "add_tls_policy_map": "Pridať TLS mapu pravidiel",
         "add_tls_policy_map": "Pridať TLS mapu pravidiel",
-        "address_rewriting": "Prepisovanie adresy",
+        "address_rewriting": "Prepisovanie adries",
         "alias": "Alias",
         "alias": "Alias",
         "alias_domain_alias_hint": "Aliasy <b>nie sú</b> aplikované na aliasy domén automaticky. Alias adresa <code>my-alias@domain</code> <b>nezahŕňa adresu</b> <code>my-alias@alias-domain</code> (kde \"alias-doména\" je imaginárna alias doména pre \"doména\").<br>Prosím použite sieve filter na presmerovanie pošty na externú poštovú schránku (pozri sekciu \"Filtre\" alebo použite SOGo -> Forwarder). Použite \"Rozšíriť alias o aliasové domény\" na automatické doplnenie chýbajúcich aliasov.",
         "alias_domain_alias_hint": "Aliasy <b>nie sú</b> aplikované na aliasy domén automaticky. Alias adresa <code>my-alias@domain</code> <b>nezahŕňa adresu</b> <code>my-alias@alias-domain</code> (kde \"alias-doména\" je imaginárna alias doména pre \"doména\").<br>Prosím použite sieve filter na presmerovanie pošty na externú poštovú schránku (pozri sekciu \"Filtre\" alebo použite SOGo -> Forwarder). Použite \"Rozšíriť alias o aliasové domény\" na automatické doplnenie chýbajúcich aliasov.",
         "alias_domain_backupmx": "Doménový alias je neaktívny pre preposielaciu doménu",
         "alias_domain_backupmx": "Doménový alias je neaktívny pre preposielaciu doménu",
         "aliases": "Aliasy",
         "aliases": "Aliasy",
+        "all_domains": "Všetky Domény",
         "allow_from_smtp": "Umožniť iba týmto IP adresám používať <b>SMTP</b>",
         "allow_from_smtp": "Umožniť iba týmto IP adresám používať <b>SMTP</b>",
         "allow_from_smtp_info": "Nechajte prázdne pre povolenie všetkých odosielateľov.<br>IPv4/IPv6 adresy a siete.",
         "allow_from_smtp_info": "Nechajte prázdne pre povolenie všetkých odosielateľov.<br>IPv4/IPv6 adresy a siete.",
         "allowed_protocols": "Povolené protokoly",
         "allowed_protocols": "Povolené protokoly",
         "backup_mx": "Preposielať doménu",
         "backup_mx": "Preposielať doménu",
         "bcc": "BCC",
         "bcc": "BCC",
-        "bcc_destination": "BCC cieľ",
-        "bcc_destinations": "BCC ciele",
-        "bcc_info": "BCC mapy sú používané na preposlanie kópií všetkých správ na ďalšiu adresu. Mapa príjemcov je použitá, keď lokálny cieľ je príjemcom správy. Mapy odosielateľov podliehajú tomu istému princípu.<br/>\r\n Lokálny cieľ nebude informovaný o zlyhanom doručení.",
-        "bcc_local_dest": "Lokálny cieľ",
-        "bcc_map": "BCC mapa",
-        "bcc_map_type": "BCC typ mapy",
-        "bcc_maps": "BCC mapy",
-        "bcc_rcpt_map": "Mapa príjemcu",
-        "bcc_sender_map": "Mapa odosielateľa",
-        "bcc_to_rcpt": "Prepnúť na mapu príjemcu",
-        "bcc_to_sender": "Prepnúť na mapu odosielateľa",
-        "bcc_type": "BCC typ",
+        "bcc_destination": "Cieľ kópie",
+        "bcc_destinations": "Ciele kópií",
+        "bcc_info": "Skyté kópie (BCC mapy) sú používané na preposlanie skrytých kópií všetkých správ na ďalšiu adresu. Pri použití skrytej kópie typu <i>Prijatý e-mail</i> budú preposlané všetky maily smerujúce na dotyčnú adresu alebo doménu.\nPri type <i>Odoslaný e-mail</i> budú preposlané všetky maily odoslané z dotyčnej adresy alebo domény.\nPokiaľ zlyhá preposlanie na cieľovú adresu, tak odosielateľ o tom nebude informovaný.",
+        "bcc_local_dest": "Týka sa",
+        "bcc_map": "Skrytá kópia",
+        "bcc_map_type": "Typ skrytej kópie",
+        "bcc_maps": "Skryté kópie",
+        "bcc_rcpt_map": "Prijatý e-mail",
+        "bcc_sender_map": "Odoslaný e-mail",
+        "bcc_to_rcpt": "Prepnúť typ na Prijatý e-mail",
+        "bcc_to_sender": "Prepnúť typ na Odoslaný e-mail",
+        "bcc_type": "Typ skrytej kópie",
         "booking_0": "Vždy zobraziť ako voľný",
         "booking_0": "Vždy zobraziť ako voľný",
         "booking_0_short": "Neustále voľný",
         "booking_0_short": "Neustále voľný",
         "booking_custom": "Limitované na pevný počet rezervácií",
         "booking_custom": "Limitované na pevný počet rezervácií",
         "booking_custom_short": "Tvrdý limit",
         "booking_custom_short": "Tvrdý limit",
         "booking_lt0": "Bez limitu, ale zobraziť obsadené po rezervácii",
         "booking_lt0": "Bez limitu, ale zobraziť obsadené po rezervácii",
         "booking_lt0_short": "Voľný limit",
         "booking_lt0_short": "Voľný limit",
+        "catch_all": "Doménový kôš",
         "daily": "Denný",
         "daily": "Denný",
         "deactivate": "Deaktivovať",
         "deactivate": "Deaktivovať",
         "description": "Popis",
         "description": "Popis",
@@ -734,16 +741,18 @@
         "disable_x": "Pozastaviť",
         "disable_x": "Pozastaviť",
         "domain": "Doména",
         "domain": "Doména",
         "domain_admins": "Administrátori domény",
         "domain_admins": "Administrátori domény",
-        "domain_aliases": "Aliasy domény",
+        "domain_aliases": "Alias domény",
         "domain_quota": "Kvóta",
         "domain_quota": "Kvóta",
         "domains": "Domény",
         "domains": "Domény",
         "edit": "Upraviť",
         "edit": "Upraviť",
         "empty": "Žiadne výsledky",
         "empty": "Žiadne výsledky",
         "enable_x": "Povolené",
         "enable_x": "Povolené",
         "excludes": "Vyraďuje",
         "excludes": "Vyraďuje",
-        "filter_table": "Tabuľka filtrov",
+        "filter_table": "Filtrovať tabuľku",
         "filters": "Filtre",
         "filters": "Filtre",
         "fname": "Celé meno",
         "fname": "Celé meno",
+        "goto_ham": "Považovať za <b>ham</b>",
+        "goto_spam": "Považovať za <b>spam</b>",
         "hourly": "Hodinový",
         "hourly": "Hodinový",
         "in_use": "Obsadenosť (%)",
         "in_use": "Obsadenosť (%)",
         "inactive": "Neaktívny",
         "inactive": "Neaktívny",
@@ -752,7 +761,7 @@
         "last_mail_login": "Posledné prihlásenie",
         "last_mail_login": "Posledné prihlásenie",
         "last_pw_change": "Naposledy zmenené heslo",
         "last_pw_change": "Naposledy zmenené heslo",
         "last_run": "Posledné spustenie",
         "last_run": "Posledné spustenie",
-        "last_run_reset": "Naplánovať ďalší",
+        "last_run_reset": "Znovu naplánovať",
         "mailbox": "Poštová schránka",
         "mailbox": "Poštová schránka",
         "mailbox_defaults": "Predvolené nastavenia",
         "mailbox_defaults": "Predvolené nastavenia",
         "mailbox_defaults_info": "Definuje predvolené nastavenia pre nové schránky",
         "mailbox_defaults_info": "Definuje predvolené nastavenia pre nové schránky",
@@ -776,6 +785,7 @@
         "quarantine_category": "Kategória karanténnych notifikácií",
         "quarantine_category": "Kategória karanténnych notifikácií",
         "quarantine_notification": "Karanténne notifikácie",
         "quarantine_notification": "Karanténne notifikácie",
         "quick_actions": "Akcia",
         "quick_actions": "Akcia",
+        "recipient": "Prijatý e-mail",
         "recipient_map": "Mapa príjemcu",
         "recipient_map": "Mapa príjemcu",
         "recipient_map_info": "Mapy príjemcov sú používané ako náhrada cieľovej adresy u správy pred doručením.",
         "recipient_map_info": "Mapy príjemcov sú používané ako náhrada cieľovej adresy u správy pred doručením.",
         "recipient_map_new": "Nový príjemca",
         "recipient_map_new": "Nový príjemca",
@@ -786,6 +796,7 @@
         "remove": "Odstrániť",
         "remove": "Odstrániť",
         "resources": "Zdroje",
         "resources": "Zdroje",
         "running": "Bežiaci",
         "running": "Bežiaci",
+        "sender": "Odoslaný e-mail",
         "set_postfilter": "Označiť ako postfilter",
         "set_postfilter": "Označiť ako postfilter",
         "set_prefilter": "Označiť ako prefilter",
         "set_prefilter": "Označiť ako prefilter",
         "sieve_info": "Môžete uchovávať viacero filtrov pre používateľa, ale iba jeden prefilter a jeden postfilter môže byť aktívny v daný okamih.<br>\r\n Každý filter bude spracovaný v nastavenom poradí. Ani zlyhanie skriptu alebo zadržanie nezastaví spracovanie ďalších skriptov. Po úprave sieve filtrov bude nasledovať reštart dovecotu.<br><br>Globálny sieve prefilter &#8226; Prefilter &#8226; Skripty používateľa &#8226; Postfilter &#8226; Globálny sieve postfilter",
         "sieve_info": "Môžete uchovávať viacero filtrov pre používateľa, ale iba jeden prefilter a jeden postfilter môže byť aktívny v daný okamih.<br>\r\n Každý filter bude spracovaný v nastavenom poradí. Ani zlyhanie skriptu alebo zadržanie nezastaví spracovanie ďalších skriptov. Po úprave sieve filtrov bude nasledovať reštart dovecotu.<br><br>Globálny sieve prefilter &#8226; Prefilter &#8226; Skripty používateľa &#8226; Postfilter &#8226; Globálny sieve postfilter",
@@ -888,6 +899,13 @@
         "toggle_all": "Označiť všetky",
         "toggle_all": "Označiť všetky",
         "type": "Typ"
         "type": "Typ"
     },
     },
+    "ratelimit": {
+	    "disabled": "Vypnuté",
+	    "second": "správ za sekundu",
+	    "minute": "správ za minútu",
+	    "hour": "správ za hodinu",
+	    "day": "správ za deň"
+    },
     "start": {
     "start": {
         "help": "Zobraziť/Skryť panel nápoveď",
         "help": "Zobraziť/Skryť panel nápoveď",
         "imap_smtp_server_auth_info": "Prosím použite celú vašu emailovú adresu a metódu overenia PLAIN.<br>\r\n Vaše prihlasovacie údaje budú zašifrované na strane servera.",
         "imap_smtp_server_auth_info": "Prosím použite celú vašu emailovú adresu a metódu overenia PLAIN.<br>\r\n Vaše prihlasovacie údaje budú zašifrované na strane servera.",
@@ -928,7 +946,7 @@
         "domain_removed": "Doména %s odstránená",
         "domain_removed": "Doména %s odstránená",
         "dovecot_restart_success": "Dovecot sa úspešne reštartoval",
         "dovecot_restart_success": "Dovecot sa úspešne reštartoval",
         "eas_reset": "ActiveSync zariadenia pre používateľa %s resetovaný",
         "eas_reset": "ActiveSync zariadenia pre používateľa %s resetovaný",
-        "f2b_modified": "Zmeny v Fail2ban parametroch uložené",
+        "f2b_modified": "Zmeny v parametroch automatického firewallu uložené",
         "forwarding_host_added": "Doručovací hostiteľ %s pridaný",
         "forwarding_host_added": "Doručovací hostiteľ %s pridaný",
         "forwarding_host_removed": "Doručovací hostiteľ %s vymazaný",
         "forwarding_host_removed": "Doručovací hostiteľ %s vymazaný",
         "global_filter_written": "Filter bol úspešne zapísaný do súboru",
         "global_filter_written": "Filter bol úspešne zapísaný do súboru",
@@ -957,7 +975,7 @@
         "resource_added": "Zdroj %s pridaný",
         "resource_added": "Zdroj %s pridaný",
         "resource_modified": "Zmeny v poštovej schránke %s uložené",
         "resource_modified": "Zmeny v poštovej schránke %s uložené",
         "resource_removed": "Zdroj %s odstránený",
         "resource_removed": "Zdroj %s odstránený",
-        "rl_saved": "Limit prenosu pre objekt %s uložený",
+        "rl_saved": "Obmedzenie prenosu pre objekt %s uložený",
         "rspamd_ui_pw_set": "Heslo pre Rspamd rozhranie úspešne nastavené",
         "rspamd_ui_pw_set": "Heslo pre Rspamd rozhranie úspešne nastavené",
         "saved_settings": "Uložené nastavenia",
         "saved_settings": "Uložené nastavenia",
         "settings_map_added": "Pridaná mapa nastavení",
         "settings_map_added": "Pridaná mapa nastavení",
@@ -992,7 +1010,7 @@
         "select": "Prosím vyberte",
         "select": "Prosím vyberte",
         "set_tfa": "Nastaviť dvojúrovňovú autentifikačnú metódu",
         "set_tfa": "Nastaviť dvojúrovňovú autentifikačnú metódu",
         "start_u2f_validation": "Spustiť validáciu",
         "start_u2f_validation": "Spustiť validáciu",
-        "tfa": "Dvojúrovňová autentifikácia",
+        "tfa": "Dvojúrovňová autentifikácia (TFA)",
         "tfa_token_invalid": "Neplatný TFA token",
         "tfa_token_invalid": "Neplatný TFA token",
         "totp": "Časovo-založený OTP (Google Authenticator, Authy, atď.)",
         "totp": "Časovo-založený OTP (Google Authenticator, Authy, atď.)",
         "u2f": "U2F autentifikácia",
         "u2f": "U2F autentifikácia",
@@ -1051,7 +1069,7 @@
         "hours": "hodiny",
         "hours": "hodiny",
         "in_use": "Použité",
         "in_use": "Použité",
         "interval": "Interval",
         "interval": "Interval",
-        "is_catch_all": "Catch-all pre doménu/y",
+        "is_catch_all": "Doménový kôš",
         "last_mail_login": "Posledné poštové prihlásenie",
         "last_mail_login": "Posledné poštové prihlásenie",
         "last_pw_change": "Naposledy zmenené heslo",
         "last_pw_change": "Naposledy zmenené heslo",
         "last_run": "Posledné spustenie",
         "last_run": "Posledné spustenie",
@@ -1109,7 +1127,7 @@
         "spamfilter": "Spam filter",
         "spamfilter": "Spam filter",
         "spamfilter_behavior": "Hodnotenie",
         "spamfilter_behavior": "Hodnotenie",
         "spamfilter_bl": "Čierna listina - blacklist",
         "spamfilter_bl": "Čierna listina - blacklist",
-        "spamfilter_bl_desc": "Adresy na tomto zozname budú <b>vždy</b> klasifikované ako spam a budú odmietnuté. Odmietnutá pošta <b>nebude</b> zaradená do karantény. Môže byť použitý widlcard záznam (*). Filter je aplikovaný len na priame aliasy (aliasy s jedným cieľovým mailboxom) s výnimkou catch-all aliasov a samotnou schránkou.",
+        "spamfilter_bl_desc": "Adresy na tomto zozname budú <b>vždy</b> klasifikované ako spam a budú odmietnuté. Odmietnutá pošta <b>nebude</b> zaradená do karantény. Môže byť použitý widlcard záznam (*). Filter je aplikovaný len na priame aliasy (aliasy s jedným cieľovým mailboxom) s výnimkou doménových košov a samotnou schránkou.",
         "spamfilter_default_score": "Implicitné nastavenia",
         "spamfilter_default_score": "Implicitné nastavenia",
         "spamfilter_green": "Zelená: Táto správa nie je spam",
         "spamfilter_green": "Zelená: Táto správa nie je spam",
         "spamfilter_hint": "Prvá hodnota opisuje \"nízku spam hodnotu\" a druhá opisuje \"vysokú spam hodnotu\".",
         "spamfilter_hint": "Prvá hodnota opisuje \"nízku spam hodnotu\" a druhá opisuje \"vysokú spam hodnotu\".",
@@ -1121,7 +1139,7 @@
         "spamfilter_table_remove": "odstrániť",
         "spamfilter_table_remove": "odstrániť",
         "spamfilter_table_rule": "Podmienka",
         "spamfilter_table_rule": "Podmienka",
         "spamfilter_wl": "Biela listina - whitelist",
         "spamfilter_wl": "Biela listina - whitelist",
-        "spamfilter_wl_desc": "Adresy na tomto zozname nebudú <b>nikdy klasifikované ako spam</b>. Môže byť použitý wildcard záznam (*). Filter je aplikovaný len na priame aliasy (aliasy s jednou cieľovou schránkou) s výnimkou catch-all aliasov a samotnou schránkou.",
+        "spamfilter_wl_desc": "Adresy na tomto zozname nebudú <b>nikdy klasifikované ako spam</b>. Môže byť použitý wildcard záznam (*). Filter je aplikovaný len na priame aliasy (aliasy s jednou cieľovou schránkou) s výnimkou doménových košov a samotnou schránkou.",
         "spamfilter_yellow": "Žltá: Táto správa môže byť spam, bude označená ako spam a presunutá do priečinku nevyžiadanej pošty",
         "spamfilter_yellow": "Žltá: Táto správa môže byť spam, bude označená ako spam a presunutá do priečinku nevyžiadanej pošty",
         "status": "Status",
         "status": "Status",
         "sync_jobs": "Synchronizačné úlohy",
         "sync_jobs": "Synchronizačné úlohy",

+ 13 - 12
data/web/modals/mailbox.php

@@ -153,14 +153,14 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
           <div class="form-group">
           <div class="form-group">
             <label class="control-label col-sm-2" for="rl_frame"><?=$lang['acl']['ratelimit'];?></label>
             <label class="control-label col-sm-2" for="rl_frame"><?=$lang['acl']['ratelimit'];?></label>
             <div class="col-sm-7">
             <div class="col-sm-7">
-            <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="disabled">
+            <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">
             </div>
             </div>
             <div class="col-sm-3">
             <div class="col-sm-3">
             <select name="rl_frame" class="form-control">
             <select name="rl_frame" class="form-control">
-              <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>>msgs / second</option>
-              <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>>msgs / minute</option>
-              <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>>msgs / hour</option>
-              <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>>msgs / day</option>
+              <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>
+              <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>
+              <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>
+              <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>
             </select>
             </select>
             </div>
             </div>
           </div>
           </div>
@@ -370,14 +370,14 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
           <div class="form-group">
           <div class="form-group">
             <label class="control-label col-sm-2" for="rl_frame"><?=$lang['acl']['ratelimit'];?></label>
             <label class="control-label col-sm-2" for="rl_frame"><?=$lang['acl']['ratelimit'];?></label>
             <div class="col-sm-7">
             <div class="col-sm-7">
-            <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="disabled">
+            <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">
             </div>
             </div>
             <div class="col-sm-3">
             <div class="col-sm-3">
             <select name="rl_frame" class="form-control">
             <select name="rl_frame" class="form-control">
-              <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>>msgs / second</option>
-              <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>>msgs / minute</option>
-              <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>>msgs / hour</option>
-              <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>>msgs / day</option>
+              <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>
+              <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>
+              <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>
+              <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>
             </select>
             </select>
             </div>
             </div>
           </div>
           </div>
@@ -657,14 +657,14 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
               $domains = mailbox('get', 'domains');
               $domains = mailbox('get', 'domains');
               $alias_domains = mailbox('get', 'alias_domains');
               $alias_domains = mailbox('get', 'alias_domains');
               if (!empty($domains)) {
               if (!empty($domains)) {
-                echo "<optgroup label=\"Domains\">";
+                echo '<optgroup label="',$lang['mailbox']['domains'],'">';
                 foreach ($domains as $domain) {
                 foreach ($domains as $domain) {
                   echo "<option>".htmlspecialchars($domain)."</option>";
                   echo "<option>".htmlspecialchars($domain)."</option>";
                 }
                 }
                 echo "</optgroup>";
                 echo "</optgroup>";
               }
               }
               if (!empty($alias_domains)) {
               if (!empty($alias_domains)) {
-                echo "<optgroup label=\"Alias Domains\">";
+                echo '<optgroup label="',$lang['mailbox']['domain_aliases'],'">';
                 foreach ($alias_domains as $alias_domain) {
                 foreach ($alias_domains as $alias_domain) {
                   echo "<option>".htmlspecialchars($alias_domain)."</option>";
                   echo "<option>".htmlspecialchars($alias_domain)."</option>";
                 }
                 }
@@ -704,6 +704,7 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
             <label class="control-label col-sm-2" for="bcc_dest"><?=$lang['mailbox']['bcc_destination'];?></label>
             <label class="control-label col-sm-2" for="bcc_dest"><?=$lang['mailbox']['bcc_destination'];?></label>
             <div class="col-sm-10">
             <div class="col-sm-10">
               <input type="text" class="form-control" name="bcc_dest">
               <input type="text" class="form-control" name="bcc_dest">
+              <small><?=$lang['add']['bcc_dest_format'];?></small>
             </div>
             </div>
           </div>
           </div>
           <div class="form-group">
           <div class="form-group">