commit
						fa9a058cf8
					
				| @ -1,39 +1,21 @@ | |||||||
| FROM debian:stretch-slim | FROM alpine | ||||||
| LABEL maintainer "https://m-ko.de Markus Kosmal <code@cnfg.io>" | LABEL maintainer "https://m-ko.de Markus Kosmal <code@cnfg.io>" | ||||||
| 
 | 
 | ||||||
| # Debian Base to use | RUN apk add -U --no-cache clamav clamav-libunrar clamav-daemon bash curl | ||||||
| ENV DEBIAN_VERSION stretch |  | ||||||
| ARG DEBIAN_FRONTEND=noninteractive |  | ||||||
| 
 |  | ||||||
| # initial install of av daemon |  | ||||||
| RUN echo "deb http://http.debian.net/debian/ $DEBIAN_VERSION main contrib non-free" > /etc/apt/sources.list && \ |  | ||||||
| 	echo "deb http://http.debian.net/debian/ $DEBIAN_VERSION-updates main contrib non-free" >> /etc/apt/sources.list && \ |  | ||||||
| 	echo "deb http://security.debian.org/ $DEBIAN_VERSION/updates main contrib non-free" >> /etc/apt/sources.list && \ |  | ||||||
| 	apt-get update && apt-get install -y -qq --no-install-recommends \ |  | ||||||
| 		clamav-daemon \ |  | ||||||
| 		clamav-freshclam \ |  | ||||||
| 		libclamunrar7 \ |  | ||||||
| 	&& rm -rf /var/lib/apt/lists/* |  | ||||||
| 
 | 
 | ||||||
| # initial update of av databases | # initial update of av databases | ||||||
| COPY dl_files.sh /dl_files.sh | COPY dl_files.sh /dl_files.sh | ||||||
| RUN chmod +x /dl_files.sh | RUN chmod +x /dl_files.sh | ||||||
| 
 | 
 | ||||||
|  | # pre-download defintions | ||||||
| RUN set -ex; \ | RUN set -ex; \ | ||||||
| 	\ | 	/dl_files.sh && \ | ||||||
| 	fetchDeps=' \ | 	apk del curl | ||||||
| 		curl \ |  | ||||||
| 	'; \ |  | ||||||
| 	apt-get update; \ |  | ||||||
| 	apt-get install -y --no-install-recommends $fetchDeps; \ |  | ||||||
| 	rm -rf /var/lib/apt/lists/*; \ |  | ||||||
| 	/dl_files.sh \ |  | ||||||
| 	apt-get purge -y --auto-remove $fetchDeps |  | ||||||
| 
 | 
 | ||||||
| # permission juggling | # permission juggling | ||||||
| RUN mkdir /var/run/clamav && \ | RUN mkdir -p /run/clamav && \ | ||||||
| 	chown clamav:clamav /var/run/clamav && \ | 	chown clamav:clamav /run/clamav && \ | ||||||
| 	chmod 750 /var/run/clamav | 	chmod 750 /run/clamav | ||||||
| 
 | 
 | ||||||
| # av configuration update | # av configuration update | ||||||
| RUN sed -i 's/^Foreground .*$/Foreground true/g' /etc/clamav/clamd.conf && \ | RUN sed -i 's/^Foreground .*$/Foreground true/g' /etc/clamav/clamd.conf && \ | ||||||
|  | |||||||
| @ -1,7 +1,10 @@ | |||||||
| #!/bin/bash | #!/bin/bash | ||||||
| trap "kill 0" SIGINT | trap "kill 0" SIGINT | ||||||
| 
 | 
 | ||||||
|  | touch /var/log/clamav/clamd.log /var/log/clamav/freshclam.log | ||||||
|  | chown -R clamav:clamav /var/log/clamav/ | ||||||
|  | 
 | ||||||
| freshclam -d & | freshclam -d & | ||||||
| clamd & | clamd & | ||||||
| 
 | 
 | ||||||
| sleep inf | tail -f /var/log/clamav/clamd.log /var/log/clamav/freshclam.log | ||||||
|  | |||||||
| @ -96,6 +96,8 @@ RUN groupadd -g 5000 vmail \ | |||||||
| 	&& useradd -c "Dovecot login user" -d /dev/null -u 402 -g dovenull -s /bin/false dovenull | 	&& useradd -c "Dovecot login user" -d /dev/null -u 402 -g dovenull -s /bin/false dovenull | ||||||
| 
 | 
 | ||||||
| RUN touch /etc/default/locale | RUN touch /etc/default/locale | ||||||
|  | RUN apt-get purge -y build-essential automake autotools-dev \ | ||||||
|  | 	&& apt-get autoremove --purge -y | ||||||
| 
 | 
 | ||||||
| EXPOSE 24 10001 | EXPOSE 24 10001 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,8 +1,6 @@ | |||||||
| FROM php:7.1-fpm-alpine | FROM php:7.1-fpm-alpine | ||||||
| LABEL maintainer "Andre Peters <andre.peters@servercow.de>" | LABEL maintainer "Andre Peters <andre.peters@servercow.de>" | ||||||
| 
 | 
 | ||||||
| ARG DEBIAN_FRONTEND=noninteractive |  | ||||||
| 
 |  | ||||||
| RUN apk add -U --no-cache libxml2-dev icu-dev icu-libs redis mysql-client bash autoconf g++ make openssl | RUN apk add -U --no-cache libxml2-dev icu-dev icu-libs redis mysql-client bash autoconf g++ make openssl | ||||||
| RUN pecl install redis && pecl clear-cache | RUN pecl install redis && pecl clear-cache | ||||||
| RUN docker-php-ext-configure intl | RUN docker-php-ext-configure intl | ||||||
|  | |||||||
| @ -51,10 +51,35 @@ for file in $(ls /data/dkim/keys/); do | |||||||
|   domain=${file%.dkim} |   domain=${file%.dkim} | ||||||
|   if [[ -f /data/dkim/txt/${file} ]]; then |   if [[ -f /data/dkim/txt/${file} ]]; then | ||||||
|     redis-cli -h redis-mailcow HSET DKIM_PUB_KEYS "${domain}" "$(cat /data/dkim/txt/${file})" |     redis-cli -h redis-mailcow HSET DKIM_PUB_KEYS "${domain}" "$(cat /data/dkim/txt/${file})" | ||||||
|     redis-cli -h redis-mailcow HSET DKIM_PRIV_KEYS "${domain}" "$(cat /data/dkim/keys/${file})" |     redis-cli -h redis-mailcow HSET DKIM_PRIV_KEYS "dkim.${domain}" "$(cat /data/dkim/keys/${file})" | ||||||
|     redis-cli -h redis-mailcow HSET DKIM_SELECTORS "${domain}" "dkim" |     redis-cli -h redis-mailcow HSET DKIM_SELECTORS "${domain}" "dkim" | ||||||
|   fi |   fi | ||||||
|   rm /data/dkim/{keys,txt}/${file} |   rm /data/dkim/{keys,txt}/${file} | ||||||
| done | done | ||||||
| 
 | 
 | ||||||
|  | # Fix DKIM keys | ||||||
|  | 
 | ||||||
|  | # Fetch domains | ||||||
|  | declare -a DOMAIN_ARRAY | ||||||
|  | while read line | ||||||
|  | do | ||||||
|  |  DOMAIN_ARRAY+=("$line") | ||||||
|  | done < <(mysql -h mysql-mailcow -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain FROM domain" -Bs) | ||||||
|  | while read line | ||||||
|  | do | ||||||
|  |  DOMAIN_ARRAY+=("$line") | ||||||
|  | done < <(mysql -h mysql-mailcow -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT alias_domain FROM alias_domain" -Bs) | ||||||
|  | 
 | ||||||
|  | # Loop through array and fix keys | ||||||
|  | if [[ ! -z ${DOMAIN_ARRAY} ]]; then | ||||||
|  |  for domain in "${DOMAIN_ARRAY[@]}"; do | ||||||
|  |    WRONG_KEY=$(redis-cli -h redis-mailcow HGET DKIM_PRIV_KEYS ${domain} | tr -d \") | ||||||
|  |    if [[ ! -z ${WRONG_KEY} ]]; then | ||||||
|  |      echo "Migrating defect key for domain ${domain}" | ||||||
|  |      redis-cli -h redis-mailcow HSET DKIM_PRIV_KEYS "dkim.${domain}" ${WRONG_KEY} | ||||||
|  |      redis-cli -h redis-mailcow HDEL DKIM_PRIV_KEYS "${domain}" | ||||||
|  |    fi | ||||||
|  |  done | ||||||
|  | fi | ||||||
|  | 
 | ||||||
| exec "$@" | exec "$@" | ||||||
|  | |||||||
| @ -8,7 +8,6 @@ RUN apt-key adv --fetch-keys http://rspamd.com/apt-stable/gpg.key \ | |||||||
| 	&& echo "deb http://rspamd.com/apt-stable/ jessie main" > /etc/apt/sources.list.d/rspamd.list \ | 	&& echo "deb http://rspamd.com/apt-stable/ jessie main" > /etc/apt/sources.list.d/rspamd.list \ | ||||||
| 	&& apt-get update && apt-get install -y \ | 	&& apt-get update && apt-get install -y \ | ||||||
| 		ca-certificates \ | 		ca-certificates \ | ||||||
| 		python-pip \ |  | ||||||
| 		rspamd \ | 		rspamd \ | ||||||
| 	&& rm -rf /var/lib/apt/lists/* | 	&& rm -rf /var/lib/apt/lists/* | ||||||
| 
 | 
 | ||||||
| @ -17,12 +16,9 @@ RUN echo '.include $LOCAL_CONFDIR/local.d/rspamd.conf.local' > /etc/rspamd/rspam | |||||||
| COPY settings.conf /etc/rspamd/modules.d/settings.conf | COPY settings.conf /etc/rspamd/modules.d/settings.conf | ||||||
| COPY antivirus.conf /etc/rspamd/modules.d/antivirus.conf | COPY antivirus.conf /etc/rspamd/modules.d/antivirus.conf | ||||||
| COPY dkim_signing.lua /usr/share/rspamd/lua/dkim_signing.lua | COPY dkim_signing.lua /usr/share/rspamd/lua/dkim_signing.lua | ||||||
| RUN pip install -U oletools |  | ||||||
| 
 | 
 | ||||||
| CMD /usr/bin/rspamd -f -u _rspamd -g _rspamd | CMD /usr/bin/rspamd -f -u _rspamd -g _rspamd | ||||||
| 
 | 
 | ||||||
| RUN rm -rf /tmp/* /var/tmp/* | RUN rm -rf /tmp/* /var/tmp/* | ||||||
| 
 | 
 | ||||||
| USER _rspamd | USER _rspamd | ||||||
| 
 |  | ||||||
| EXPOSE 11333 11334 |  | ||||||
|  | |||||||
| @ -58,7 +58,7 @@ $tfa_data = get_tfa(); | |||||||
|           <div class="col-sm-9 col-xs-7"> |           <div class="col-sm-9 col-xs-7"> | ||||||
|             <p id="tfa_pretty"><?=$tfa_data['pretty'];?></p>
 |             <p id="tfa_pretty"><?=$tfa_data['pretty'];?></p>
 | ||||||
|               <div id="tfa_additional"> |               <div id="tfa_additional"> | ||||||
|                 <?php if($tfa_data['additional']): |                 <?php if (!empty($tfa_data['additional'])): | ||||||
|                 foreach ($tfa_data['additional'] as $key_info): ?>
 |                 foreach ($tfa_data['additional'] as $key_info): ?>
 | ||||||
|                 <form style="display:inline;" method="post"> |                 <form style="display:inline;" method="post"> | ||||||
|                   <input type="hidden" name="unset_tfa_key" value="<?=$key_info['id'];?>" /> |                   <input type="hidden" name="unset_tfa_key" value="<?=$key_info['id'];?>" /> | ||||||
|  | |||||||
| @ -1,7 +1,11 @@ | |||||||
| <?php | <?php | ||||||
| require_once "inc/vars.inc.php"; | require_once 'inc/vars.inc.php'; | ||||||
| if (empty($mailcow_hostname)) { exit(); } | 
 | ||||||
| header("Content-Type: application/xml"); | if (empty($mailcow_hostname)) { | ||||||
|  |   exit(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | header('Content-Type: application/xml'); | ||||||
| ?>
 | ?>
 | ||||||
| <?= '<?xml version="1.0"?>'; ?>
 | <?= '<?xml version="1.0"?>'; ?>
 | ||||||
| <clientConfig version="1.1"> | <clientConfig version="1.1"> | ||||||
|  | |||||||
| @ -19,3 +19,7 @@ body.modal-open { | |||||||
|   overflow-y:scroll; |   overflow-y:scroll; | ||||||
|   padding-right: inherit !important; |   padding-right: inherit !important; | ||||||
| } | } | ||||||
|  | .mass-actions-admin { | ||||||
|  |   user-select: none; | ||||||
|  |   padding:10px 0 10px 0; | ||||||
|  | } | ||||||
|  | |||||||
| @ -18,15 +18,12 @@ table.footable>tbody>tr.footable-empty>td { | |||||||
|   padding: 10px; |   padding: 10px; | ||||||
|   background: #F5F5F5; |   background: #F5F5F5; | ||||||
| } | } | ||||||
| 
 |  | ||||||
| #alias_table { |  | ||||||
|   cursor:pointer; |  | ||||||
| } |  | ||||||
| #alias_table .footable-paging { |  | ||||||
|   cursor:	auto; |  | ||||||
| } |  | ||||||
| @media (min-width: 992px) { | @media (min-width: 992px) { | ||||||
|   .container { |   .container { | ||||||
|       width: 80%; |       width: 80%; | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | .mass-actions-mailbox { | ||||||
|  |   user-select: none; | ||||||
|  |   padding:10px 0 10px 10px; | ||||||
|  | } | ||||||
|  | |||||||
| @ -63,11 +63,3 @@ body.modal-open { | |||||||
|   max-width: 550px; |   max-width: 550px; | ||||||
|   z-index: 2000; |   z-index: 2000; | ||||||
| } | } | ||||||
| .mass-actions-mailbox { |  | ||||||
|   user-select: none; |  | ||||||
|   padding:10px 0 10px 10px; |  | ||||||
| } |  | ||||||
| .mass-actions-admin { |  | ||||||
|   user-select: none; |  | ||||||
|   padding:10px 0 10px 0; |  | ||||||
| } |  | ||||||
|  | |||||||
							
								
								
									
										24
									
								
								data/web/css/user.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								data/web/css/user.css
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | |||||||
|  | table.footable>tbody>tr.footable-empty>td { | ||||||
|  |   font-size:15px !important; | ||||||
|  |   font-style:italic; | ||||||
|  | } | ||||||
|  | .pagination a { | ||||||
|  |   text-decoration: none !important; | ||||||
|  | } | ||||||
|  | .panel panel-default { | ||||||
|  |   overflow: visible !important; | ||||||
|  | } | ||||||
|  | .table-responsive { | ||||||
|  |   overflow: visible !important; | ||||||
|  | } | ||||||
|  | .footer-add-item { | ||||||
|  |   display:block; | ||||||
|  |   text-align: center; | ||||||
|  |   font-style: italic; | ||||||
|  |   padding: 10px; | ||||||
|  |   background: #F5F5F5; | ||||||
|  | } | ||||||
|  | .mass-actions-user { | ||||||
|  |   user-select: none; | ||||||
|  |   padding:10px 0 10px 0; | ||||||
|  | } | ||||||
| @ -1,6 +1,7 @@ | |||||||
| <?php | <?php | ||||||
| include("inc/tfa_modals.php"); | include 'inc/tfa_modals.php'; | ||||||
| if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "admin"): | 
 | ||||||
|  | if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'admin'): | ||||||
| ?>
 | ?>
 | ||||||
| <div id="RestartSOGo" class="modal fade" role="dialog"> | <div id="RestartSOGo" class="modal fade" role="dialog"> | ||||||
|   <div class="modal-dialog"> |   <div class="modal-dialog"> | ||||||
| @ -11,9 +12,9 @@ if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "admi | |||||||
|     </div> |     </div> | ||||||
|     <div class="modal-body"> |     <div class="modal-body"> | ||||||
|       <p><?= $lang['footer']['restart_sogo_info']; ?></p>
 |       <p><?= $lang['footer']['restart_sogo_info']; ?></p>
 | ||||||
| 			<hr /> |       <hr> | ||||||
|       <button class="btn btn-md btn-primary" id="triggerRestartSogo"><?= $lang['footer']['restart_now']; ?></button>
 |       <button class="btn btn-md btn-primary" id="triggerRestartSogo"><?= $lang['footer']['restart_now']; ?></button>
 | ||||||
| 			<br /><br /> |       <br><br> | ||||||
|       <div id="statusTriggerRestartSogo"></div> |       <div id="statusTriggerRestartSogo"></div> | ||||||
|     </div> |     </div> | ||||||
|     </div> |     </div> | ||||||
| @ -32,15 +33,16 @@ endif; | |||||||
|     <div class="modal-body"> |     <div class="modal-body"> | ||||||
|       <p><?= $lang['footer']['delete_these_items']; ?></p>
 |       <p><?= $lang['footer']['delete_these_items']; ?></p>
 | ||||||
|       <ul id="ItemsToDelete"></ul> |       <ul id="ItemsToDelete"></ul> | ||||||
| 			<hr /> |       <hr> | ||||||
|       <button class="btn btn-sm btn-danger" id="IsConfirmed"><?= $lang['footer']['delete_now']; ?></button>
 |       <button class="btn btn-sm btn-danger" id="IsConfirmed"><?= $lang['footer']['delete_now']; ?></button>
 | ||||||
|       <button class="btn btn-sm btn-default" id="isCanceled"><?= $lang['footer']['cancel']; ?></button>
 |       <button class="btn btn-sm btn-default" id="isCanceled"><?= $lang['footer']['cancel']; ?></button>
 | ||||||
|     </div> |     </div> | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </div> | </div> | ||||||
| <div style="margin-bottom:100px"></div> | <div style="margin-bottom: 100px;"></div> | ||||||
| <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"></script> | 
 | ||||||
|  | <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha256-U5ZEeKfGNOja007MMD3YBI0A3OSZOQbeG6z2f2Y0hu8=" crossorigin="anonymous"></script> | ||||||
| <script src="/js/bootstrap-switch.min.js"></script> | <script src="/js/bootstrap-switch.min.js"></script> | ||||||
| <script src="/js/bootstrap-slider.min.js"></script> | <script src="/js/bootstrap-slider.min.js"></script> | ||||||
| <script src="/js/bootstrap-select.min.js"></script> | <script src="/js/bootstrap-select.min.js"></script> | ||||||
| @ -209,7 +211,7 @@ $(document).ready(function() { | |||||||
|       }, |       }, | ||||||
|       success: function(data) { |       success: function(data) { | ||||||
|         $('#statusTriggerRestartSogo').append(data); |         $('#statusTriggerRestartSogo').append(data); | ||||||
| 				$('#statusTriggerRestartSogo').append('<br />Starting SOGo... '); |         $('#statusTriggerRestartSogo').append('<br>Starting SOGo...'); | ||||||
|         $.ajax({ |         $.ajax({ | ||||||
|           method: 'get', |           method: 'get', | ||||||
|           url: 'call_sogo_ctrl.php', |           url: 'call_sogo_ctrl.php', | ||||||
| @ -225,10 +227,14 @@ $(document).ready(function() { | |||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|   }); |   }); | ||||||
|   $("<input type='hidden' value='<?=$_SESSION['CSRF']['TOKEN'];?>' />").attr("id", "csrf_token").attr("name", "csrf_token").appendTo("form"); | 
 | ||||||
|  |   // CSRF
 | ||||||
|  |   $('<input type="hidden" value="<?= $_SESSION['CSRF']['TOKEN']; ?>">').attr('id', 'csrf_token').attr('name', 'csrf_token').appendTo('form'); | ||||||
| }); | }); | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| </body> | </body> | ||||||
| </html> | </html> | ||||||
| <?php $stmt = null; $pdo = null; ?>
 | <?php | ||||||
|  | $stmt = null; | ||||||
|  | $pdo = null; | ||||||
|  | |||||||
| @ -867,7 +867,7 @@ function delete_policy_list_item($postarray) { | |||||||
|   return true; |   return true; | ||||||
| } | } | ||||||
| function get_syncjobs($username = null) { | function get_syncjobs($username = null) { | ||||||
|   // 'username' can be be set, if not, default to mailcow_cc_username
 |   // 'username' can be set, if not set, defaults to mailcow_cc_username
 | ||||||
| 	global $lang; | 	global $lang; | ||||||
| 	global $pdo; | 	global $pdo; | ||||||
|   $data = array(); |   $data = array(); | ||||||
| @ -880,7 +880,10 @@ function get_syncjobs($username = null) { | |||||||
|     $username = $_SESSION['mailcow_cc_username']; |     $username = $_SESSION['mailcow_cc_username']; | ||||||
|   } |   } | ||||||
|   try { |   try { | ||||||
|     $stmt = $pdo->prepare("SELECT *, CONCAT(LEFT(`password1`, 3), '…') as `password1_short`
 |     $stmt = $pdo->prepare("SELECT *,
 | ||||||
|  |       CONCAT(LEFT(`password1`, 3), '...') AS `password1_short`, | ||||||
|  |       `active` AS `active_int`, | ||||||
|  |       CASE `active` WHEN 1 THEN '".$lang['mailbox']['yes']."' ELSE '".$lang['mailbox']['no']."' END AS `active` | ||||||
|         FROM `imapsync` |         FROM `imapsync` | ||||||
|           WHERE `user2` = :username");
 |           WHERE `user2` = :username");
 | ||||||
|     $stmt->execute(array(':username' => $username)); |     $stmt->execute(array(':username' => $username)); | ||||||
| @ -1096,39 +1099,40 @@ function add_syncjob($postarray) { | |||||||
| } | } | ||||||
| function edit_syncjob($postarray) { | function edit_syncjob($postarray) { | ||||||
|   // Array items
 |   // Array items
 | ||||||
|   // 'username' can be set, defaults to mailcow_cc_username
 |  | ||||||
| 	global $lang; | 	global $lang; | ||||||
| 	global $pdo; | 	global $pdo; | ||||||
|   if (isset($postarray['username']) && filter_var($postarray['username'], FILTER_VALIDATE_EMAIL)) { |   if (!is_array($postarray['id'])) { | ||||||
|     if (!hasMailboxObjectAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $postarray['username'])) { |     $ids = array(); | ||||||
|  |     $ids[] = $postarray['id']; | ||||||
|  |   } | ||||||
|  |   else { | ||||||
|  |     $ids = $postarray['id']; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   foreach ($ids as $id) { | ||||||
|  |     $is_now = get_syncjob_details($id); | ||||||
|  |     if (!empty($is_now)) { | ||||||
|  |       $username = $is_now['user2']; | ||||||
|  |       $user1 = (!empty($postarray['user1'])) ? $postarray['user1'] : $is_now['user1']; | ||||||
|  |       $active = (isset($postarray['active'])) ? $postarray['active'] : $is_now['active_int']; | ||||||
|  |       $delete2duplicates = (isset($postarray['delete2duplicates'])) ? $postarray['delete2duplicates'] : $is_now['delete2duplicates']; | ||||||
|  |       $delete1 = (isset($postarray['delete1'])) ? $postarray['delete1'] : $is_now['delete1']; | ||||||
|  |       $port1 = (!empty($postarray['port1'])) ? $postarray['port1'] : $is_now['port1']; | ||||||
|  |       $password1 = (!empty($postarray['password1'])) ? $postarray['password1'] : $is_now['password1']; | ||||||
|  |       $host1 = (!empty($postarray['host1'])) ? $postarray['host1'] : $is_now['host1']; | ||||||
|  |       $subfolder2 = (!empty($postarray['subfolder2'])) ? $postarray['subfolder2'] : $is_now['subfolder2']; | ||||||
|  |       $enc1 = (!empty($postarray['enc1'])) ? $postarray['enc1'] : $is_now['enc1']; | ||||||
|  |       $mins_interval = (!empty($postarray['mins_interval'])) ? $postarray['mins_interval'] : $is_now['mins_interval']; | ||||||
|  |       $exclude = (!empty($postarray['exclude'])) ? $postarray['exclude'] : $is_now['exclude']; | ||||||
|  |       $maxage = (!empty($postarray['maxage'])) ? $postarray['maxage'] : $is_now['maxage']; | ||||||
|  |     } | ||||||
|  |     else { | ||||||
|       $_SESSION['return'] = array( |       $_SESSION['return'] = array( | ||||||
|         'type' => 'danger', |         'type' => 'danger', | ||||||
|         'msg' => sprintf($lang['danger']['access_denied']) |         'msg' => sprintf($lang['danger']['access_denied']) | ||||||
|       ); |       ); | ||||||
|       return false; |       return false; | ||||||
|     } |     } | ||||||
|     else { |  | ||||||
|       $username = $postarray['username']; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|   else { |  | ||||||
|     $username = $_SESSION['mailcow_cc_username']; |  | ||||||
|   } |  | ||||||
|    |  | ||||||
| 	$active           = intval($postarray['active']); |  | ||||||
| 	$delete2duplicates = intval($postarray['delete2duplicates']); |  | ||||||
| 	$delete1          = intval($postarray['delete1']); |  | ||||||
|   $id               = $postarray['id']; |  | ||||||
|   $port1            = $postarray['port1']; |  | ||||||
|   $host1            = $postarray['host1']; |  | ||||||
|   $password1        = $postarray['password1']; |  | ||||||
|   $exclude          = $postarray['exclude']; |  | ||||||
|   $maxage           = $postarray['maxage']; |  | ||||||
|   $subfolder2       = $postarray['subfolder2']; |  | ||||||
|   $user1            = $postarray['user1']; |  | ||||||
|   $mins_interval    = $postarray['mins_interval']; |  | ||||||
|   $enc1             = $postarray['enc1']; |  | ||||||
| 
 |  | ||||||
|     if (empty($subfolder2)) { |     if (empty($subfolder2)) { | ||||||
|       $subfolder2 = ""; |       $subfolder2 = ""; | ||||||
|     } |     } | ||||||
| @ -1171,30 +1175,9 @@ function edit_syncjob($postarray) { | |||||||
|       return false; |       return false; | ||||||
|     } |     } | ||||||
|     try { |     try { | ||||||
|     $stmt = $pdo->prepare("SELECT `user2` FROM `imapsync`
 |       $stmt = $pdo->prepare("UPDATE `imapsync` SET `delete1` = :delete1, `maxage` = :maxage, `subfolder2` = :subfolder2, `exclude` = :exclude, `host1` = :host1, `user1` = :user1, `password1` = :password1, `mins_interval` = :mins_interval, `port1` = :port1, `enc1` = :enc1, `delete2duplicates` = :delete2duplicates, `active` = :active
 | ||||||
|       WHERE `user2` = :user2 AND `id` = :id");
 |         WHERE `id` = :id");
 | ||||||
|     $stmt->execute(array(':user2' => $username, ':id' => $id)); |  | ||||||
|     $num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC)); |  | ||||||
|   } |  | ||||||
|   catch(PDOException $e) { |  | ||||||
|     $_SESSION['return'] = array( |  | ||||||
|       'type' => 'danger', |  | ||||||
|       'msg' => 'MySQL: '.$e |  | ||||||
|     ); |  | ||||||
|     return false; |  | ||||||
|   } |  | ||||||
|   if (empty($num_results)) { |  | ||||||
|     $_SESSION['return'] = array( |  | ||||||
|       'type' => 'danger', |  | ||||||
|       'msg' => sprintf($lang['danger']['access_denied']) |  | ||||||
|     ); |  | ||||||
|     return false; |  | ||||||
|   } |  | ||||||
|   try { |  | ||||||
|     $stmt = $pdo->prepare("UPDATE `imapsync` set `delete1` = :delete1, `maxage` = :maxage, `subfolder2` = :subfolder2, `exclude` = :exclude, `host1` = :host1, `user1` = :user1, `password1` = :password1, `mins_interval` = :mins_interval, `port1` = :port1, `enc1` = :enc1, `delete2duplicates` = :delete2duplicates, `active` = :active
 |  | ||||||
|       WHERE `user2` = :user2 AND `id` = :id");
 |  | ||||||
|       $stmt->execute(array( |       $stmt->execute(array( | ||||||
|       ':user2' => $username, |  | ||||||
|         ':delete1' => $delete1, |         ':delete1' => $delete1, | ||||||
|         ':id' => $id, |         ':id' => $id, | ||||||
|         ':exclude' => $exclude, |         ':exclude' => $exclude, | ||||||
| @ -1217,6 +1200,7 @@ function edit_syncjob($postarray) { | |||||||
|       ); |       ); | ||||||
|       return false; |       return false; | ||||||
|     } |     } | ||||||
|  |   } | ||||||
|   $_SESSION['return'] = array( |   $_SESSION['return'] = array( | ||||||
|     'type' => 'success', |     'type' => 'success', | ||||||
|     'msg' => sprintf($lang['success']['mailbox_modified'], $username) |     'msg' => sprintf($lang['success']['mailbox_modified'], $username) | ||||||
| @ -2479,7 +2463,7 @@ function dkim_delete_key($postarray) { | |||||||
|       $selector = $redis->hGet('DKIM_SELECTORS', $domain); |       $selector = $redis->hGet('DKIM_SELECTORS', $domain); | ||||||
|       $redis->hDel('DKIM_PUB_KEYS', $domain); |       $redis->hDel('DKIM_PUB_KEYS', $domain); | ||||||
|       $redis->hDel('DKIM_PRIV_KEYS', $selector . '.' . $domain); |       $redis->hDel('DKIM_PRIV_KEYS', $selector . '.' . $domain); | ||||||
|       $redis->hDel('DKIM_SELECTORS', $selector); |       $redis->hDel('DKIM_SELECTORS', $domain); | ||||||
|     } |     } | ||||||
|     catch (RedisException $e) { |     catch (RedisException $e) { | ||||||
|       $_SESSION['return'] = array( |       $_SESSION['return'] = array( | ||||||
|  | |||||||
| @ -6,12 +6,12 @@ | |||||||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
| <title>mailcow UI</title> | <title>mailcow UI</title> | ||||||
| <!--[if lt IE 9]> | <!--[if lt IE 9]> | ||||||
| <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> |   <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js" integrity="sha256-3Jy/GbSLrg0o9y5Z5n1uw0qxZECH7C6OQpVBgNFYa0g=" crossorigin="anonymous"></script> | ||||||
| <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> |   <script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js" integrity="sha256-g6iAfvZp+nDQ2TdTR/VVKJf3bGro4ub5fvWSWVRi2NE=" crossorigin="anonymous"></script> | ||||||
| <![endif]--> | <![endif]--> | ||||||
| <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.min.js" integrity="sha384-XxcvoeNF5V0ZfksTnV+bejnCsJjOOIzN6UVwF85WBsAnU3zeYh5bloN+L4WLgeNE" crossorigin="anonymous"></script> | <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script> | ||||||
| <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css"> | <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha256-916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG/aiY1w=" crossorigin="anonymous"> | ||||||
| <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.6/<?=strtolower(trim($DEFAULT_THEME));?>/bootstrap.min.css"> | <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/<?= strtolower(trim($DEFAULT_THEME)); ?>/bootstrap.min.css"> | ||||||
| <link rel="stylesheet" href="/css/bootstrap-select.min.css"> | <link rel="stylesheet" href="/css/bootstrap-select.min.css"> | ||||||
| <link rel="stylesheet" href="/css/bootstrap-slider.min.css"> | <link rel="stylesheet" href="/css/bootstrap-slider.min.css"> | ||||||
| <link rel="stylesheet" href="/css/bootstrap-switch.min.css"> | <link rel="stylesheet" href="/css/bootstrap-switch.min.css"> | ||||||
| @ -21,10 +21,11 @@ | |||||||
| <link rel="stylesheet" href="/css/animate.min.css"> | <link rel="stylesheet" href="/css/animate.min.css"> | ||||||
| <?= (preg_match("/mailbox.php/i", $_SERVER['REQUEST_URI'])) ? '<link rel="stylesheet" href="/css/mailbox.css">' : null; ?>
 | <?= (preg_match("/mailbox.php/i", $_SERVER['REQUEST_URI'])) ? '<link rel="stylesheet" href="/css/mailbox.css">' : null; ?>
 | ||||||
| <?= (preg_match("/admin.php/i", $_SERVER['REQUEST_URI'])) ? '<link rel="stylesheet" href="/css/admin.css">' : null; ?>
 | <?= (preg_match("/admin.php/i", $_SERVER['REQUEST_URI'])) ? '<link rel="stylesheet" href="/css/admin.css">' : null; ?>
 | ||||||
|  | <?= (preg_match("/user.php/i", $_SERVER['REQUEST_URI'])) ? '<link rel="stylesheet" href="/css/user.css">' : null; ?>
 | ||||||
| <link rel="shortcut icon" href="/favicon.png" type="image/png"> | <link rel="shortcut icon" href="/favicon.png" type="image/png"> | ||||||
| <link rel="icon" href="/favicon.png" type="image/png"> | <link rel="icon" href="/favicon.png" type="image/png"> | ||||||
| </head> | </head> | ||||||
| <body style="padding-top:70px"> | <body style="padding-top: 70px;"> | ||||||
| <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> | <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> | ||||||
|   <div class="container-fluid"> |   <div class="container-fluid"> | ||||||
|     <div class="navbar-header"> |     <div class="navbar-header"> | ||||||
| @ -34,7 +35,7 @@ | |||||||
|         <span class="icon-bar"></span> |         <span class="icon-bar"></span> | ||||||
|         <span class="icon-bar"></span> |         <span class="icon-bar"></span> | ||||||
|       </button> |       </button> | ||||||
| 			<a class="navbar-brand" href="/"><img height="32" alt="mailcow-logo" style="margin-top:-5px;" src="/img/cow_mailcow.svg" /></a> |       <a class="navbar-brand" href="/"><img height="32" alt="mailcow-logo" style="margin-top: -5px;" src="/img/cow_mailcow.svg"></a> | ||||||
|     </div> |     </div> | ||||||
|     <div id="navbar" class="navbar-collapse collapse"> |     <div id="navbar" class="navbar-collapse collapse"> | ||||||
|       <ul class="nav navbar-nav navbar-right"> |       <ul class="nav navbar-nav navbar-right"> | ||||||
| @ -44,12 +45,13 @@ | |||||||
|         <li class="dropdown"> |         <li class="dropdown"> | ||||||
|           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="lang-sm lang-lbl" lang="<?= $_SESSION['mailcow_locale']; ?>"></span><span class="caret"></span></a> |           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="lang-sm lang-lbl" lang="<?= $_SESSION['mailcow_locale']; ?>"></span><span class="caret"></span></a> | ||||||
|           <ul class="dropdown-menu" role="menu"> |           <ul class="dropdown-menu" role="menu"> | ||||||
| 						<li <?=($_SESSION['mailcow_locale'] == 'de') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "de"))) ?>"><span class="lang-xs lang-lbl-full" lang="de"></span></a></li>
 |             <?php | ||||||
| 						<li <?=($_SESSION['mailcow_locale'] == 'en') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "en"))) ?>"><span class="lang-xs lang-lbl-full" lang="en"></span></a></li>
 |             foreach ($AVAILABLE_LANGUAGES as $language) { | ||||||
| 						<li <?=($_SESSION['mailcow_locale'] == 'es') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "es"))) ?>"><span class="lang-xs lang-lbl-full" lang="es"></span></a></li>
 |             ?>
 | ||||||
| 						<li <?=($_SESSION['mailcow_locale'] == 'nl') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "nl"))) ?>"><span class="lang-xs lang-lbl-full" lang="nl"></span></a></li>
 |             <li<?= ($_SESSION['mailcow_locale'] == $language) ? ' class="active"' : ''; ?>><a href="?<?= http_build_query(array_merge($_GET, array('lang' => $language))); ?>"><span class="lang-xs lang-lbl-full" lang="<?= $language; ?>"></span></a></li>
 | ||||||
| 						<li <?=($_SESSION['mailcow_locale'] == 'pt') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "pt"))) ?>"><span class="lang-xs lang-lbl-full" lang="pt"></span></a></li>
 |             <?php | ||||||
| 						<li <?=($_SESSION['mailcow_locale'] == 'ru') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "ru"))) ?>"><span class="lang-xs lang-lbl-full" lang="ru"></span></a></li>
 |             } | ||||||
|  |             ?>
 | ||||||
|           </ul> |           </ul> | ||||||
|         </li> |         </li> | ||||||
|         <?php |         <?php | ||||||
| @ -61,19 +63,19 @@ | |||||||
|           <ul class="dropdown-menu" role="menu"> |           <ul class="dropdown-menu" role="menu"> | ||||||
|             <?php |             <?php | ||||||
|             if (isset($_SESSION['mailcow_cc_role'])) { |             if (isset($_SESSION['mailcow_cc_role'])) { | ||||||
| 							if ($_SESSION['mailcow_cc_role'] == "admin") { |               if ($_SESSION['mailcow_cc_role'] == 'admin') { | ||||||
|               ?>
 |               ?>
 | ||||||
| 								<li <?=(preg_match("/admin/i", $_SERVER['REQUEST_URI'])) ? 'class="active"' : ''?>><a href="/admin.php"><?=$lang['header']['administration'];?></a></li>
 |                 <li<?= (preg_match("/admin/i", $_SERVER['REQUEST_URI'])) ? ' class="active"' : ''; ?>><a href="/admin.php"><?= $lang['header']['administration']; ?></a></li>
 | ||||||
|               <?php |               <?php | ||||||
|               } |               } | ||||||
| 							if ($_SESSION['mailcow_cc_role'] == "admin" || $_SESSION['mailcow_cc_role'] == "domainadmin") { |               if ($_SESSION['mailcow_cc_role'] == 'admin' || $_SESSION['mailcow_cc_role'] == 'domainadmin') { | ||||||
|               ?>
 |               ?>
 | ||||||
| 								<li <?=(preg_match("/mailbox/i", $_SERVER['REQUEST_URI'])) ? 'class="active"' : ''?>><a href="/mailbox.php"><?=$lang['header']['mailboxes'];?></a></li>
 |                 <li<?= (preg_match("/mailbox/i", $_SERVER['REQUEST_URI'])) ? ' class="active"' : ''; ?>><a href="/mailbox.php"><?= $lang['header']['mailboxes']; ?></a></li>
 | ||||||
|               <?php |               <?php | ||||||
|               } |               } | ||||||
| 							if ($_SESSION['mailcow_cc_role'] != "admin") { |               if ($_SESSION['mailcow_cc_role'] != 'admin') { | ||||||
|               ?>
 |               ?>
 | ||||||
| 								<li <?=(preg_match("/user/i", $_SERVER['REQUEST_URI'])) ? 'class="active"' : ''?>><a href="/user.php"><?=$lang['header']['user_settings'];?></a></li>
 |                 <li<?= (preg_match("/user/i", $_SERVER['REQUEST_URI'])) ? ' class="active"' : ''; ?>><a href="/user.php"><?= $lang['header']['user_settings']; ?></a></li>
 | ||||||
|               <?php |               <?php | ||||||
|               } |               } | ||||||
|             } |             } | ||||||
| @ -81,11 +83,11 @@ | |||||||
|           </ul> |           </ul> | ||||||
|         </li> |         </li> | ||||||
|         <?php |         <?php | ||||||
| 				if ($_SESSION['mailcow_cc_role'] == "admin"): |         if ($_SESSION['mailcow_cc_role'] == 'admin') { | ||||||
|         ?>
 |         ?>
 | ||||||
| 				<li><a href data-toggle="modal" data-target="#RestartSOGo"><span style="font-size:12px" class="glyphicon glyphicon-refresh" aria-hidden="true"></span> <?=$lang['header']['restart_sogo'];?></a></li>
 |         <li><a href data-toggle="modal" data-target="#RestartSOGo"><span style="font-size: 12px;" class="glyphicon glyphicon-refresh" aria-hidden="true"></span> <?= $lang['header']['restart_sogo']; ?></a></li>
 | ||||||
|         <?php |         <?php | ||||||
| 				endif; |         } | ||||||
|         ?>
 |         ?>
 | ||||||
|         <li class="dropdown"> |         <li class="dropdown"> | ||||||
|           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="glyphicon glyphicon-link" aria-hidden="true"></span> Apps <span class="caret"></span></a> |           <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="glyphicon glyphicon-link" aria-hidden="true"></span> Apps <span class="caret"></span></a> | ||||||
| @ -101,13 +103,13 @@ | |||||||
|         </li> |         </li> | ||||||
|         <?php |         <?php | ||||||
|         } |         } | ||||||
| 				if (!isset($_SESSION["dual-login"]) && isset($_SESSION['mailcow_cc_username'])): |         if (!isset($_SESSION['dual-login']) && isset($_SESSION['mailcow_cc_username'])): | ||||||
|         ?>
 |         ?>
 | ||||||
| 					<li><a style="border-left:1px solid #E7E7E7" href="#" onclick="logout.submit()"><?=sprintf($lang['header']['logged_in_as_logout'], $_SESSION['mailcow_cc_username']);?></a></li>
 |           <li><a href="#" style="border-left: 1px solid #E7E7E7;" onclick="logout.submit()"><?= sprintf($lang['header']['logged_in_as_logout'], $_SESSION['mailcow_cc_username']); ?></a></li>
 | ||||||
|         <?php |         <?php | ||||||
| 				elseif (isset($_SESSION["dual-login"])): |         elseif (isset($_SESSION['dual-login'])): | ||||||
|         ?>
 |         ?>
 | ||||||
| 					<li><a style="border-left:1px solid #E7E7E7" href="#" onclick="logout.submit()"><?=sprintf($lang['header']['logged_in_as_logout_dual'], $_SESSION['mailcow_cc_username'], $_SESSION["dual-login"]["username"]);?></a></li>
 |           <li><a href="#" style="border-left: 1px solid #E7E7E7;" onclick="logout.submit()"><?= sprintf($lang['header']['logged_in_as_logout_dual'], $_SESSION['mailcow_cc_username'], $_SESSION['dual-login']['username']); ?></a></li>
 | ||||||
|         <?php |         <?php | ||||||
|         endif; |         endif; | ||||||
|         ?>
 |         ?>
 | ||||||
|  | |||||||
| @ -2,8 +2,8 @@ | |||||||
| require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/sessions.inc.php'; | require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/sessions.inc.php'; | ||||||
| 
 | 
 | ||||||
| require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/vars.inc.php'; | require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/vars.inc.php'; | ||||||
| if (file_exists('./inc/vars.local.inc.php')) { | if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/inc/vars.local.inc.php')) { | ||||||
| 	include_once 'inc/vars.local.inc.php'; |   include_once $_SERVER['DOCUMENT_ROOT'] . '/inc/vars.local.inc.php'; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Yubi OTP API
 | // Yubi OTP API
 | ||||||
| @ -47,64 +47,20 @@ catch (PDOException $e) { | |||||||
| exit; | exit; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // Set language
 | ||||||
| $_SESSION['mailcow_locale'] = strtolower(trim($DEFAULT_LANG)); | $_SESSION['mailcow_locale'] = strtolower(trim($DEFAULT_LANG)); | ||||||
| setcookie('language', $DEFAULT_LANG); | 
 | ||||||
| if (isset($_COOKIE['language'])) { | if (isset($_GET['lang']) && in_array($_GET['lang'], $AVAILABLE_LANGUAGES)) { | ||||||
| 	switch ($_COOKIE['language']) { |   $_SESSION['mailcow_locale'] = $_GET['lang']; | ||||||
| 		case "de": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'de'; |  | ||||||
| 			setcookie('language', 'de'); |  | ||||||
| 		break; |  | ||||||
| 		case "en": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'en'; |  | ||||||
| 			setcookie('language', 'en'); |  | ||||||
| 		break; |  | ||||||
| 		case "es": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'es'; |  | ||||||
| 			setcookie('language', 'es'); |  | ||||||
| 		break; |  | ||||||
| 		case "nl": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'nl'; |  | ||||||
| 			setcookie('language', 'nl'); |  | ||||||
| 		break; |  | ||||||
| 		case "pt": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'pt'; |  | ||||||
| 			setcookie('language', 'pt'); |  | ||||||
| 		break; |  | ||||||
|     case "ru": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'ru'; |  | ||||||
| 			setcookie('language', 'ru'); |  | ||||||
| 		break; |  | ||||||
| } | } | ||||||
|  | elseif (isset($_COOKIE['language']) && in_array($_COOKIE['language'], $AVAILABLE_LANGUAGES)) { | ||||||
|  |   $_SESSION['mailcow_locale'] = $_COOKIE['language']; | ||||||
| } | } | ||||||
| if (isset($_GET['lang'])) { | if (isset($_SESSION['mailcow_locale']) && !file_exists($_SERVER['DOCUMENT_ROOT'] . '/lang/lang.'.$_SESSION['mailcow_locale'].'.php')) { | ||||||
| 	switch ($_GET['lang']) { |   $_SESSION['mailcow_locale'] = strtolower(trim($DEFAULT_LANG)); | ||||||
| 		case "de": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'de'; |  | ||||||
| 			setcookie('language', 'de'); |  | ||||||
| 		break; |  | ||||||
| 		case "en": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'en'; |  | ||||||
| 			setcookie('language', 'en'); |  | ||||||
| 		break; |  | ||||||
| 		case "es": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'es'; |  | ||||||
| 			setcookie('language', 'es'); |  | ||||||
| 		break; |  | ||||||
| 		case "nl": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'nl'; |  | ||||||
| 			setcookie('language', 'nl'); |  | ||||||
| 		break; |  | ||||||
| 		case "pt": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'pt'; |  | ||||||
| 			setcookie('language', 'pt'); |  | ||||||
| 		break; |  | ||||||
| 		case "ru": |  | ||||||
| 			$_SESSION['mailcow_locale'] = 'ru'; |  | ||||||
| 			setcookie('language', 'ru'); |  | ||||||
| 		break; |  | ||||||
| 	} |  | ||||||
| } | } | ||||||
|  | setcookie('language', $_SESSION['mailcow_locale']); | ||||||
|  | 
 | ||||||
| require_once $_SERVER['DOCUMENT_ROOT'] . '/lang/lang.en.php'; | require_once $_SERVER['DOCUMENT_ROOT'] . '/lang/lang.en.php'; | ||||||
| include $_SERVER['DOCUMENT_ROOT'] . '/lang/lang.'.$_SESSION['mailcow_locale'].'.php'; | include $_SERVER['DOCUMENT_ROOT'] . '/lang/lang.'.$_SESSION['mailcow_locale'].'.php'; | ||||||
| require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.inc.php'; | require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.inc.php'; | ||||||
|  | |||||||
| @ -13,7 +13,7 @@ elseif (isset($_SERVER['HTTPS'])) { | |||||||
| else { | else { | ||||||
|   $IS_HTTPS = false; |   $IS_HTTPS = false; | ||||||
| } | } | ||||||
| session_set_cookie_params($GLOBALS['SESSION_LIFETIME'], '/', $_SERVER['SERVER_NAME'], $IS_HTTPS, true); | session_set_cookie_params($GLOBALS['SESSION_LIFETIME'], '/', '', $IS_HTTPS, true); | ||||||
| session_start(); | session_start(); | ||||||
| if (!isset($_SESSION['CSRF']['TOKEN'])) { | if (!isset($_SESSION['CSRF']['TOKEN'])) { | ||||||
|   $_SESSION['CSRF']['TOKEN'] = bin2hex(random_bytes(32)); |   $_SESSION['CSRF']['TOKEN'] = bin2hex(random_bytes(32)); | ||||||
|  | |||||||
| @ -9,8 +9,8 @@ This file will be reset on upgrades. | |||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| // SQL database connection variables
 | // SQL database connection variables
 | ||||||
| $database_type = "mysql"; | $database_type = 'mysql'; | ||||||
| $database_host = "mysql"; | $database_host = 'mysql'; | ||||||
| $database_user = getenv('DBUSER'); | $database_user = getenv('DBUSER'); | ||||||
| $database_pass = getenv('DBPASS'); | $database_pass = getenv('DBPASS'); | ||||||
| $database_name = getenv('DBNAME'); | $database_name = getenv('DBNAME'); | ||||||
| @ -21,20 +21,23 @@ $mailcow_hostname = getenv('MAILCOW_HOSTNAME'); | |||||||
| // Where to go after adding and editing objects
 | // Where to go after adding and editing objects
 | ||||||
| // Can be "form" or "previous"
 | // Can be "form" or "previous"
 | ||||||
| // "form" will stay in the current form, "previous" will redirect to previous page
 | // "form" will stay in the current form, "previous" will redirect to previous page
 | ||||||
| $FORM_ACTION = "previous"; | $FORM_ACTION = 'previous'; | ||||||
| 
 | 
 | ||||||
| // File locations should not be changed
 | // File locations should not be changed
 | ||||||
| $MC_DKIM_TXTS = "/data/dkim/txt"; | $MC_DKIM_TXTS = '/data/dkim/txt'; | ||||||
| $MC_DKIM_KEYS = "/data/dkim/keys"; | $MC_DKIM_KEYS = '/data/dkim/keys'; | ||||||
| 
 | 
 | ||||||
| // Change default language, "en", "es" "pt", "de", "ru" or "nl"
 | // Change default language, "de", "en", "es", "nl", "pt", "ru"
 | ||||||
| $DEFAULT_LANG = "en"; | $DEFAULT_LANG = 'en'; | ||||||
|  | 
 | ||||||
|  | // Available languages
 | ||||||
|  | $AVAILABLE_LANGUAGES = array('de', 'en', 'es', 'nl', 'pt', 'ru'); | ||||||
| 
 | 
 | ||||||
| // Change theme (default: lumen)
 | // Change theme (default: lumen)
 | ||||||
| // Needs to be one of those: cerulean, cosmo, cyborg, darkly, flatly, journal, lumen, paper, readable, sandstone,
 | // Needs to be one of those: cerulean, cosmo, cyborg, darkly, flatly, journal, lumen, paper, readable, sandstone,
 | ||||||
| // simplex, slate, spacelab, superhero, united, yeti
 | // simplex, slate, spacelab, superhero, united, yeti
 | ||||||
| // See https://bootswatch.com/
 | // See https://bootswatch.com/
 | ||||||
| $DEFAULT_THEME = "lumen"; | $DEFAULT_THEME = 'lumen'; | ||||||
| 
 | 
 | ||||||
| // Password complexity as regular expression
 | // Password complexity as regular expression
 | ||||||
| $PASSWD_REGEP = '.{4,}'; | $PASSWD_REGEP = '.{4,}'; | ||||||
| @ -56,5 +59,3 @@ $PAGINATION_SIZE = 10; | |||||||
| 
 | 
 | ||||||
| // Session lifetime in seconds
 | // Session lifetime in seconds
 | ||||||
| $SESSION_LIFETIME = 3600; | $SESSION_LIFETIME = 3600; | ||||||
| 
 |  | ||||||
| ?>
 |  | ||||||
|  | |||||||
| @ -1,19 +1,20 @@ | |||||||
| <?php | <?php | ||||||
| require_once("inc/prerequisites.inc.php"); | require_once 'inc/prerequisites.inc.php'; | ||||||
| 
 | 
 | ||||||
| if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "admin") { | if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'admin') { | ||||||
|   header('Location: /admin.php'); |   header('Location: /admin.php'); | ||||||
|   exit(); |   exit(); | ||||||
| } | } | ||||||
| elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "domainadmin") { | elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'domainadmin') { | ||||||
|   header('Location: /mailbox.php'); |   header('Location: /mailbox.php'); | ||||||
|   exit(); |   exit(); | ||||||
| } | } | ||||||
| elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "user") { | elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'user') { | ||||||
|   header('Location: /user.php'); |   header('Location: /user.php'); | ||||||
|   exit(); |   exit(); | ||||||
| } | } | ||||||
| require_once("inc/header.inc.php"); | 
 | ||||||
|  | require_once 'inc/header.inc.php'; | ||||||
| $_SESSION['return_to'] = $_SERVER['REQUEST_URI']; | $_SESSION['return_to'] = $_SERVER['REQUEST_URI']; | ||||||
| ?>
 | ?>
 | ||||||
| <div class="container"> | <div class="container"> | ||||||
| @ -22,7 +23,7 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI']; | |||||||
|       <div class="panel panel-default"> |       <div class="panel panel-default"> | ||||||
|         <div class="panel-heading"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> <?= $lang['login']['login']; ?></div>
 |         <div class="panel-heading"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> <?= $lang['login']['login']; ?></div>
 | ||||||
|         <div class="panel-body"> |         <div class="panel-body"> | ||||||
| 				  <center><img style="max-width:250px" src="/img/cow_mailcow.svg" alt="mailcow"></center> |           <div class="text-center"><img style="max-width: 250px;" src="/img/cow_mailcow.svg" alt="mailcow"></div> | ||||||
|           <legend>mailcow UI</legend> |           <legend>mailcow UI</legend> | ||||||
|             <form method="post" autofill="off"> |             <form method="post" autofill="off"> | ||||||
|             <div class="form-group"> |             <div class="form-group"> | ||||||
| @ -46,18 +47,19 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI']; | |||||||
|                   <span class="lang-sm lang-lbl" lang="<?= $_SESSION['mailcow_locale']; ?>"></span> <span class="caret"></span> |                   <span class="lang-sm lang-lbl" lang="<?= $_SESSION['mailcow_locale']; ?>"></span> <span class="caret"></span> | ||||||
|                 </button> |                 </button> | ||||||
|                 <ul class="dropdown-menu"> |                 <ul class="dropdown-menu"> | ||||||
| 									<li <?=($_SESSION['mailcow_locale'] == 'de') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "de"))) ?>"><span class="lang-xs lang-lbl-full" lang="de"></span></a></li>
 |                   <?php | ||||||
| 									<li <?=($_SESSION['mailcow_locale'] == 'en') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "en"))) ?>"><span class="lang-xs lang-lbl-full" lang="en"></span></a></li>
 |                   foreach ($AVAILABLE_LANGUAGES as $language): | ||||||
| 									<li <?=($_SESSION['mailcow_locale'] == 'es') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "es"))) ?>"><span class="lang-xs lang-lbl-full" lang="es"></span></a></li>
 |                   ?>
 | ||||||
| 									<li <?=($_SESSION['mailcow_locale'] == 'nl') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "nl"))) ?>"><span class="lang-xs lang-lbl-full" lang="nl"></span></a></li>
 |                   <li<?= ($_SESSION['mailcow_locale'] == $language) ? ' class="active"' : ''; ?>><a href="?<?= http_build_query(array_merge($_GET, array('lang' => $language))) ?>"><span class="lang-xs lang-lbl-full" lang="<?= $language; ?>"></span></a></li>
 | ||||||
| 									<li <?=($_SESSION['mailcow_locale'] == 'pt') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "pt"))) ?>"><span class="lang-xs lang-lbl-full" lang="pt"></span></a></li>
 |                   <?php | ||||||
| 									<li <?=($_SESSION['mailcow_locale'] == 'ru') ? 'class="active"' : ''?>><a href="?<?= http_build_query(array_merge($_GET, array("lang" => "ru"))) ?>"><span class="lang-xs lang-lbl-full" lang="ru"></span></a></li>
 |                   endforeach; | ||||||
|  |                   ?>
 | ||||||
|                 </ul> |                 </ul> | ||||||
|               </div> |               </div> | ||||||
|             </div> |             </div> | ||||||
|             </form> |             </form> | ||||||
|             <?php |             <?php | ||||||
| 						if (isset($_SESSION['ldelay']) && $_SESSION['ldelay'] != "0"): |             if (isset($_SESSION['ldelay']) && $_SESSION['ldelay'] != '0'): | ||||||
|             ?>
 |             ?>
 | ||||||
|             <p><div class="alert alert-info"><?= sprintf($lang['login']['delayed'], $_SESSION['ldelay']); ?></b></div></p>
 |             <p><div class="alert alert-info"><?= sprintf($lang['login']['delayed'], $_SESSION['ldelay']); ?></b></div></p>
 | ||||||
|             <?php |             <?php | ||||||
| @ -75,23 +77,22 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI']; | |||||||
|       </div> |       </div> | ||||||
|     </div> |     </div> | ||||||
|     <div class="col-md-offset-3 col-md-6"> |     <div class="col-md-offset-3 col-md-6"> | ||||||
| 			<div class="panel panel-default" style=""> |       <div class="panel panel-default"> | ||||||
|         <div class="panel-heading"> |         <div class="panel-heading"> | ||||||
|           <a data-toggle="collapse" href="#collapse1"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span> <?= $lang['start']['help']; ?></a>
 |           <a data-toggle="collapse" href="#collapse1"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span> <?= $lang['start']['help']; ?></a>
 | ||||||
|         </div> |         </div> | ||||||
|         <div id="collapse1" class="panel-collapse collapse"> |         <div id="collapse1" class="panel-collapse collapse"> | ||||||
|           <div class="panel-body"> |           <div class="panel-body"> | ||||||
| 						<p><span style="border-bottom: 1px dotted #999">mailcow UI</span></p> |             <p><span style="border-bottom: 1px dotted #999;">mailcow UI</span></p> | ||||||
|             <p><?= $lang['start']['mailcow_panel_detail']; ?></p>
 |             <p><?= $lang['start']['mailcow_panel_detail']; ?></p>
 | ||||||
| 						<p><span style="border-bottom: 1px dotted #999">mailcow Apps</span></p> |             <p><span style="border-bottom: 1px dotted #999;">mailcow Apps</span></p> | ||||||
|             <p><?= $lang['start']['mailcow_apps_detail']; ?></p>
 |             <p><?= $lang['start']['mailcow_apps_detail']; ?></p>
 | ||||||
|           </div> |           </div> | ||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </div> <!-- /container --> | </div><!-- /.container --> | ||||||
| <script src="js/index.js"></script> | <script src="js/index.js"></script> | ||||||
| <?php | <?php | ||||||
| require_once("inc/footer.inc.php"); | require_once 'inc/footer.inc.php'; | ||||||
| ?>
 |  | ||||||
|  | |||||||
| @ -56,7 +56,7 @@ $(document).ready(function() { | |||||||
|           url: '/api/v1/' + api_url, |           url: '/api/v1/' + api_url, | ||||||
|           jsonp: false, |           jsonp: false, | ||||||
|           complete: function (data) { |           complete: function (data) { | ||||||
|             location.assign(window.location); |             location.reload(true); | ||||||
|           } |           } | ||||||
|         }); |         }); | ||||||
|       }) |       }) | ||||||
|  | |||||||
| @ -88,7 +88,6 @@ $(document).ready(function() { | |||||||
|         $('#ConfirmDeleteModal').modal('hide'); |         $('#ConfirmDeleteModal').modal('hide'); | ||||||
|       });; |       });; | ||||||
|   }); |   }); | ||||||
| 
 |  | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| jQuery(function($){ | jQuery(function($){ | ||||||
|  | |||||||
| @ -22,12 +22,165 @@ $(document).ready(function() { | |||||||
| 
 | 
 | ||||||
| 	// Init Bootstrap Switch
 | 	// Init Bootstrap Switch
 | ||||||
| 	$.fn.bootstrapSwitch.defaults.onColor = 'success'; | 	$.fn.bootstrapSwitch.defaults.onColor = 'success'; | ||||||
| 	$("[name='tls_out']").bootstrapSwitch(); | 	$("#tls_out").bootstrapSwitch(); | ||||||
| 	$("[name='tls_in']").bootstrapSwitch(); | 	$("#tls_in").bootstrapSwitch(); | ||||||
| 
 | 
 | ||||||
|   // Log modal
 |   // Log modal
 | ||||||
|   $('#logModal').on('show.bs.modal', function(e) { |   $('#logModal').on('show.bs.modal', function(e) { | ||||||
|   var logText = $(e.relatedTarget).data('log-text'); |   var logText = $(e.relatedTarget).data('log-text'); | ||||||
|   $(e.currentTarget).find('#logText').html('<pre style="background:none;font-size:11px;line-height:1.1;border:0px">' + logText + '</pre>'); |   $(e.currentTarget).find('#logText').html('<pre style="background:none;font-size:11px;line-height:1.1;border:0px">' + logText + '</pre>'); | ||||||
|   }); |   }); | ||||||
|  | 
 | ||||||
|  |   // Collect values of input fields with name multi_select with same data-id to js array multi_data[data-id]
 | ||||||
|  |   var multi_data = []; | ||||||
|  |   $(document).on('change', 'input[name=multi_select]:checkbox', function() { | ||||||
|  |     if ($(this).is(':checked') && $(this).data('id')) { | ||||||
|  |       var id = $(this).data('id'); | ||||||
|  |       if (typeof multi_data[id] == "undefined") { | ||||||
|  |         multi_data[id] = []; | ||||||
|  |       } | ||||||
|  |       multi_data[id].push($(this).val()); | ||||||
|  |     } | ||||||
|  |     else { | ||||||
|  |       var id = $(this).data('id'); | ||||||
|  |       multi_data[id].splice($.inArray($(this).val(), multi_data[id]),1); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  |   // Select checkbox by click on parent tr
 | ||||||
|  |   $(document).on('click', 'tbody>tr', function(e) { | ||||||
|  |     if (e.target.type == "checkbox") { | ||||||
|  |       e.stopPropagation(); | ||||||
|  |     } else { | ||||||
|  |       var checkbox = $(this).find(':checkbox'); | ||||||
|  |       checkbox.trigger('click'); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  |   // Select or deselect all checkboxes with same data-id
 | ||||||
|  |   $(document).on('click', '#toggle_multi_select_all', function(e) { | ||||||
|  |     e.preventDefault(); | ||||||
|  |     id = $(this).data("id"); | ||||||
|  |     multi_data[id] = []; | ||||||
|  |     var all_checkboxes = $("input[data-id=" + id + "]:enabled"); | ||||||
|  |     all_checkboxes.prop("checked", !all_checkboxes.prop("checked")).change(); | ||||||
|  |   }); | ||||||
|  |   // General API edit actions
 | ||||||
|  |   $(document).on('click', '#edit_selected', function(e) { | ||||||
|  |     e.preventDefault(); | ||||||
|  |     var id = $(this).data('id'); | ||||||
|  |     if (typeof multi_data[id] == "undefined") return; | ||||||
|  |     data_array = multi_data[id]; | ||||||
|  |     api_url = $(this).data('api-url'); | ||||||
|  |     api_attr = $(this).data('api-attr'); | ||||||
|  |     if (Object.keys(data_array).length !== 0) { | ||||||
|  |       $.ajax({ | ||||||
|  |         type: "POST", | ||||||
|  |         dataType: "json", | ||||||
|  |         data: { "items": JSON.stringify(data_array), "attr": JSON.stringify(api_attr), "csrf_token": csrf_token }, | ||||||
|  |         url: '/api/v1/' + api_url, | ||||||
|  |         jsonp: false, | ||||||
|  |         complete: function (data) { | ||||||
|  |           // var reponse = (JSON.parse(data.responseText));
 | ||||||
|  |           // console.log(reponse.type);
 | ||||||
|  |           // console.log(reponse.msg);
 | ||||||
|  |           location.assign(window.location); | ||||||
|  |         } | ||||||
|  |       }); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  |   // General API delete actions
 | ||||||
|  |   $(document).on('click', '#delete_selected', function(e) { | ||||||
|  |     e.preventDefault(); | ||||||
|  |     var id = $(this).data('id'); | ||||||
|  |     if (typeof multi_data[id] == "undefined" || multi_data[id] == "") return; | ||||||
|  |     data_array = multi_data[id]; | ||||||
|  |     api_url = $(this).data('api-url'); | ||||||
|  |       $(document).on('show.bs.modal','#ConfirmDeleteModal', function () { | ||||||
|  |         $("#ItemsToDelete").empty(); | ||||||
|  |         for (var i in data_array) { | ||||||
|  |           $("#ItemsToDelete").append("<li>" + data_array[i] + "</li>"); | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |       $('#ConfirmDeleteModal').modal({ | ||||||
|  |         backdrop: 'static', | ||||||
|  |         keyboard: false | ||||||
|  |       }) | ||||||
|  |       .one('click', '#IsConfirmed', function(e) { | ||||||
|  |         $.ajax({ | ||||||
|  |           type: "POST", | ||||||
|  |           dataType: "json", | ||||||
|  |           data: { "items": JSON.stringify(data_array), "csrf_token": csrf_token }, | ||||||
|  |           url: '/api/v1/' + api_url, | ||||||
|  |           jsonp: false, | ||||||
|  |           complete: function (data) { | ||||||
|  |             location.reload(true); | ||||||
|  |           } | ||||||
|  |         }); | ||||||
|  |       }) | ||||||
|  |       .one('click', '#isCanceled', function(e) { | ||||||
|  |         $('#ConfirmDeleteModal').modal('hide'); | ||||||
|  |       });; | ||||||
|  |   }); | ||||||
|  | }); | ||||||
|  | jQuery(function($){ | ||||||
|  |   // http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery
 | ||||||
|  |   var entityMap = { | ||||||
|  |   '&': '&', | ||||||
|  |   '<': '<', | ||||||
|  |   '>': '>', | ||||||
|  |   '"': '"', | ||||||
|  |   "'": ''', | ||||||
|  |   '/': '/', | ||||||
|  |   '`': '`', | ||||||
|  |   '=': '=' | ||||||
|  |   }; | ||||||
|  |   function escapeHtml(string) { | ||||||
|  |     return String(string).replace(/[&<>"'`=\/]/g, function (s) { | ||||||
|  |       return entityMap[s]; | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  |   function draw_sync_job_table() { | ||||||
|  |     ft_aliasdomain_table = FooTable.init('#sync_job_table', { | ||||||
|  |       "columns": [ | ||||||
|  |         {"name":"chkbox","title":"","style":{"maxWidth":"40px","width":"40px"},"filterable": false,"sortable": false,"type":"html"}, | ||||||
|  |         {"sorted": true,"name":"server_w_port","title":"Server"}, | ||||||
|  |         {"name":"enc1","title":lang.encryption}, | ||||||
|  |         {"name":"user1","title":lang.username}, | ||||||
|  |         {"name":"exclude","title":lang.excludes}, | ||||||
|  |         {"name":"mins_interval","title":lang.interval + " (min)"}, | ||||||
|  |         {"name":"last_run","title":lang.last_run}, | ||||||
|  |         {"name":"log","title":"Log"}, | ||||||
|  |         {"name":"active","filterable": false,"style":{"maxWidth":"50px","width":"70px"},"title":lang.active}, | ||||||
|  |         {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"} | ||||||
|  |       ], | ||||||
|  |       "empty": lang.empty, | ||||||
|  |       "rows": $.ajax({ | ||||||
|  |         dataType: 'json', | ||||||
|  |         url: '/api/v1/get/syncjob', | ||||||
|  |         jsonp: false, | ||||||
|  |         error: function () { | ||||||
|  |           console.log('Cannot draw sync job table'); | ||||||
|  |         }, | ||||||
|  |         success: function (data) { | ||||||
|  |           $.each(data, function (i, item) { | ||||||
|  |             item.log = '<a href="#logModal" data-toggle="modal" data-log-text="' + escapeHtml(item.returned_text) + '">Open logs</a>' | ||||||
|  |             item.exclude = '<code>' + item.exclude + '</code>' | ||||||
|  |             item.server_w_port = item.host1 + ':' + item.port1; | ||||||
|  |             item.action = '<div class="btn-group">' + | ||||||
|  |               '<a href="/edit.php?syncjob=' + item.id + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' + | ||||||
|  |               '</div>'; | ||||||
|  |             item.chkbox = '<input type="checkbox" data-id="syncjob" name="multi_select" value="' + item.id + '" />'; | ||||||
|  |           }); | ||||||
|  |         } | ||||||
|  |       }), | ||||||
|  |       "paging": { | ||||||
|  |         "enabled": true, | ||||||
|  |         "limit": 5, | ||||||
|  |         "size": pagination_size | ||||||
|  |       }, | ||||||
|  |       "sorting": { | ||||||
|  |         "enabled": true | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  |   draw_sync_job_table(); | ||||||
| }); | }); | ||||||
| @ -151,7 +151,19 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u | |||||||
|                   echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); |                   echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); | ||||||
|                 } |                 } | ||||||
|               break; |               break; | ||||||
| 
 |             } | ||||||
|  |           break; | ||||||
|  |           case "syncjob": | ||||||
|  |             switch ($object) { | ||||||
|  |               default: | ||||||
|  |                 $data = get_syncjobs($object); | ||||||
|  |                 if (!isset($data) || empty($data)) { | ||||||
|  |                   echo '{}'; | ||||||
|  |                 } | ||||||
|  |                 else { | ||||||
|  |                   echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); | ||||||
|  |                 } | ||||||
|  |               break; | ||||||
|             } |             } | ||||||
|           break; |           break; | ||||||
|           case "resource": |           case "resource": | ||||||
| @ -183,7 +195,6 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u | |||||||
|                   echo '{}'; |                   echo '{}'; | ||||||
|                 } |                 } | ||||||
|               break; |               break; | ||||||
| 
 |  | ||||||
|               default: |               default: | ||||||
|                 $data = mailbox_get_resource_details($object); |                 $data = mailbox_get_resource_details($object); | ||||||
|                 if (!isset($data) || empty($data)) { |                 if (!isset($data) || empty($data)) { | ||||||
| @ -193,7 +204,6 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u | |||||||
|                   echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); |                   echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); | ||||||
|                 } |                 } | ||||||
|               break; |               break; | ||||||
| 
 |  | ||||||
|             } |             } | ||||||
|           break; |           break; | ||||||
|           case "fwdhost": |           case "fwdhost": | ||||||
| @ -226,7 +236,6 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u | |||||||
|                   echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); |                   echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); | ||||||
|                 } |                 } | ||||||
|               break; |               break; | ||||||
| 
 |  | ||||||
|             } |             } | ||||||
|           break; |           break; | ||||||
|           case "alias-domain": |           case "alias-domain": | ||||||
| @ -258,7 +267,6 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u | |||||||
|                   echo '{}'; |                   echo '{}'; | ||||||
|                 } |                 } | ||||||
|               break; |               break; | ||||||
| 
 |  | ||||||
|               default: |               default: | ||||||
|                 $data = mailbox_get_alias_domains($object); |                 $data = mailbox_get_alias_domains($object); | ||||||
|                 if (!isset($data) || empty($data)) { |                 if (!isset($data) || empty($data)) { | ||||||
| @ -756,6 +764,50 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u | |||||||
|               )); |               )); | ||||||
|             } |             } | ||||||
|           break; |           break; | ||||||
|  |           case "syncjob": | ||||||
|  |             if (isset($_POST['items']) && isset($_POST['attr'])) { | ||||||
|  |               $items = (array)json_decode($_POST['items'], true); | ||||||
|  |               $attr = (array)json_decode($_POST['attr'], true); | ||||||
|  |               $postarray = array_merge(array('id' => $items), $attr); | ||||||
|  |               if (is_array($postarray['id'])) { | ||||||
|  |                 if (edit_syncjob($postarray) === false) { | ||||||
|  |                   if (isset($_SESSION['return'])) { | ||||||
|  |                     echo json_encode($_SESSION['return']); | ||||||
|  |                   } | ||||||
|  |                   else { | ||||||
|  |                     echo json_encode(array( | ||||||
|  |                       'type' => 'error', | ||||||
|  |                       'msg' => 'Edit failed' | ||||||
|  |                     )); | ||||||
|  |                   } | ||||||
|  |                   exit(); | ||||||
|  |                 } | ||||||
|  |                 else { | ||||||
|  |                   if (isset($_SESSION['return'])) { | ||||||
|  |                     echo json_encode($_SESSION['return']); | ||||||
|  |                   } | ||||||
|  |                   else { | ||||||
|  |                     echo json_encode(array( | ||||||
|  |                       'type' => 'success', | ||||||
|  |                       'msg' => 'Task completed' | ||||||
|  |                     )); | ||||||
|  |                   } | ||||||
|  |                 } | ||||||
|  |               } | ||||||
|  |               else { | ||||||
|  |                 echo json_encode(array( | ||||||
|  |                   'type' => 'error', | ||||||
|  |                   'msg' => 'Incomplete post data' | ||||||
|  |                 )); | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |             else { | ||||||
|  |               echo json_encode(array( | ||||||
|  |                 'type' => 'error', | ||||||
|  |                 'msg' => 'Incomplete post data' | ||||||
|  |               )); | ||||||
|  |             } | ||||||
|  |           break; | ||||||
|           case "resource": |           case "resource": | ||||||
|             if (isset($_POST['items']) && isset($_POST['attr'])) { |             if (isset($_POST['items']) && isset($_POST['attr'])) { | ||||||
|               $items = (array)json_decode($_POST['items'], true); |               $items = (array)json_decode($_POST['items'], true); | ||||||
|  | |||||||
| @ -1,14 +1,13 @@ | |||||||
| <?php | <?php | ||||||
| /* | /* | ||||||
| //
 |  * German language file | ||||||
| //  German language file
 |  | ||||||
| //
 |  | ||||||
|  */ |  */ | ||||||
|  | 
 | ||||||
| $lang['footer']['loading'] = 'Einen Moment bitte...'; | $lang['footer']['loading'] = 'Einen Moment bitte...'; | ||||||
| $lang['header']['restart_sogo'] = 'SOGo neustarten'; | $lang['header']['restart_sogo'] = 'SOGo neustarten'; | ||||||
| $lang['footer']['restart_sogo'] = 'SOGo neustarten'; | $lang['footer']['restart_sogo'] = 'SOGo neustarten'; | ||||||
| $lang['footer']['restart_now'] = 'Jetzt neustarten'; | $lang['footer']['restart_now'] = 'Jetzt neustarten'; | ||||||
| $lang['footer']['restart_sogo_info'] = 'Einige Änderungen an Domains benötigen einen Neustart SOGos. Hier können Sie SOGo neustarten.<br /><br /><b>Wichtig:</b> Ein korrekter Neustart SOGos kann eine Weile in Anspruch nehmen, bitte warten Sie, bis der Prozess vollständig beendet wurde.'; | $lang['footer']['restart_sogo_info'] = 'Einige Änderungen an Domains benötigen einen Neustart SOGos. Hier können Sie SOGo neustarten.<br><br><b>Wichtig:</b> Ein korrekter Neustart SOGos kann eine Weile in Anspruch nehmen, bitte warten Sie, bis der Prozess vollständig beendet wurde.'; | ||||||
| 
 | 
 | ||||||
| $lang['footer']['confirm_delete'] = 'Löschen bestätigen'; | $lang['footer']['confirm_delete'] = 'Löschen bestätigen'; | ||||||
| $lang['footer']['delete_these_items'] = 'Sind Sie sicher, dass die folgenden Elemente entfernt werden sollen?'; | $lang['footer']['delete_these_items'] = 'Sind Sie sicher, dass die folgenden Elemente entfernt werden sollen?'; | ||||||
| @ -154,7 +153,7 @@ $lang['user']['spamfilter_default_score'] = 'Standardwert:'; | |||||||
| $lang['user']['spamfilter_hint'] = 'Der erste Wert beschreibt den "low spam score", der zweite Wert den "high spam score".'; | $lang['user']['spamfilter_hint'] = 'Der erste Wert beschreibt den "low spam score", der zweite Wert den "high spam score".'; | ||||||
| $lang['user']['spamfilter_table_domain_policy'] = "n.v. (Domainrichtlinie)"; | $lang['user']['spamfilter_table_domain_policy'] = "n.v. (Domainrichtlinie)"; | ||||||
| 
 | 
 | ||||||
| $lang['user']['tls_policy_warning'] = '<strong>Vorsicht:</strong> Entscheiden Sie sich unverschlüsselte Verbindungen abzulehnen, kann dies dazu führen, dass Kontakte Sie nicht mehr erreichen.<br />Nachrichten, die die Richtlinie nicht erfüllen, werden durch einen Hard-Fail im Mailsystem abgewiesen.<br />Diese Einstellung ist aktiv für die primäre Mailbox, für alle Alias-Adressen, die dieser Mailbox <b>direkt zugeordnet</b> sind (lediglich eine einzige Ziel-Adresse) und der Adressen, die sich aus Alias-Domains ergeben. Ausgeschlossen sind temporäre Aliasse ("Spam-Alias-Adressen"), Catch-All Alias-Adressen sowie Alias-Adressen mit mehreren Zielen.'; | $lang['user']['tls_policy_warning'] = '<strong>Vorsicht:</strong> Entscheiden Sie sich unverschlüsselte Verbindungen abzulehnen, kann dies dazu führen, dass Kontakte Sie nicht mehr erreichen.<br>Nachrichten, die die Richtlinie nicht erfüllen, werden durch einen Hard-Fail im Mailsystem abgewiesen.<br>Diese Einstellung ist aktiv für die primäre Mailbox, für alle Alias-Adressen, die dieser Mailbox <b>direkt zugeordnet</b> sind (lediglich eine einzige Ziel-Adresse) und der Adressen, die sich aus Alias-Domains ergeben. Ausgeschlossen sind temporäre Aliasse ("Spam-Alias-Adressen"), Catch-All Alias-Adressen sowie Alias-Adressen mit mehreren Zielen.'; | ||||||
| $lang['user']['tls_policy'] = 'Verschlüsselungsrichtlinie'; | $lang['user']['tls_policy'] = 'Verschlüsselungsrichtlinie'; | ||||||
| $lang['user']['tls_enforce_in'] = 'TLS eingehend erzwingen'; | $lang['user']['tls_enforce_in'] = 'TLS eingehend erzwingen'; | ||||||
| $lang['user']['tls_enforce_out'] = 'TLS ausgehend erzwingen'; | $lang['user']['tls_enforce_out'] = 'TLS ausgehend erzwingen'; | ||||||
| @ -166,12 +165,12 @@ $lang['user']['misc_delete_profile'] = 'Sonstige Kontoeinstellungen'; | |||||||
| $lang['user']['tag_handling'] = 'Umgang mit getaggten E-Mails steuern'; | $lang['user']['tag_handling'] = 'Umgang mit getaggten E-Mails steuern'; | ||||||
| $lang['user']['tag_in_subfolder'] = 'In Unterordner'; | $lang['user']['tag_in_subfolder'] = 'In Unterordner'; | ||||||
| $lang['user']['tag_in_subject'] = 'In Betreff'; | $lang['user']['tag_in_subject'] = 'In Betreff'; | ||||||
| $lang['user']['tag_help_explain'] = 'Als Unterordner: Es wird ein Ordner mit dem Namen des Tags unterhalb der Inbox erstellt ("INBOX/Facebook").<br /> | $lang['user']['tag_help_explain'] = 'Als Unterordner: Es wird ein Ordner mit dem Namen des Tags unterhalb der Inbox erstellt ("INBOX/Facebook").<br> | ||||||
| In Betreff: Der Name des Tags wird dem Betreff angefügt, etwa "[Facebook] Meine Neuigkeiten".'; | In Betreff: Der Name des Tags wird dem Betreff angefügt, etwa "[Facebook] Meine Neuigkeiten".'; | ||||||
| $lang['user']['tag_help_example'] = 'Beispiel für eine getaggte E-Mail-Adresse: ich<b>+Facebook</b>@example.org'; | $lang['user']['tag_help_example'] = 'Beispiel für eine getaggte E-Mail-Adresse: ich<b>+Facebook</b>@example.org'; | ||||||
| $lang['user']['eas_reset'] = 'ActiveSync Geräte-Cache zurücksetzen'; | $lang['user']['eas_reset'] = 'ActiveSync Geräte-Cache zurücksetzen'; | ||||||
| $lang['user']['eas_reset_now'] = 'Jetzt zurücksetzen'; | $lang['user']['eas_reset_now'] = 'Jetzt zurücksetzen'; | ||||||
| $lang['user']['eas_reset_help'] = 'In vielen Fällen kann ein ActiveSync Profil durch das Zurücksetzen des Caches repariert werden.<br /><b>Vorsicht:</b> Alle Elemente werden erneut heruntergeladen!'; | $lang['user']['eas_reset_help'] = 'In vielen Fällen kann ein ActiveSync Profil durch das Zurücksetzen des Caches repariert werden.<br><b>Vorsicht:</b> Alle Elemente werden erneut heruntergeladen!'; | ||||||
| 
 | 
 | ||||||
| $lang['user']['encryption'] = 'Verschlüsselung'; | $lang['user']['encryption'] = 'Verschlüsselung'; | ||||||
| $lang['user']['username'] = 'Benutzername'; | $lang['user']['username'] = 'Benutzername'; | ||||||
| @ -192,17 +191,17 @@ $lang['start']['start_sogo'] = 'SOGo öffnen'; | |||||||
| $lang['start']['mailcow_apps_detail'] = 'Verwenden Sie mailcow Apps, um E-Mails abzurufen, Kalender- und Kontakte zu verwalten und vieles mehr.'; | $lang['start']['mailcow_apps_detail'] = 'Verwenden Sie mailcow Apps, um E-Mails abzurufen, Kalender- und Kontakte zu verwalten und vieles mehr.'; | ||||||
| $lang['start']['mailcow_panel'] = 'mailcow UI starten'; | $lang['start']['mailcow_panel'] = 'mailcow UI starten'; | ||||||
| $lang['start']['mailcow_panel_description'] = 'Die mailcow Steuerung steht sowohl für Administratoren als auch Mailbox-Benutzer zur Verfügung.'; | $lang['start']['mailcow_panel_description'] = 'Die mailcow Steuerung steht sowohl für Administratoren als auch Mailbox-Benutzer zur Verfügung.'; | ||||||
| $lang['start']['mailcow_panel_detail'] = '<b>Domain-Administratoren</b> erstellen, verändern oder löschen Mailboxen, verwalten die Domäne und sehen sonstige Einstellungen ein.<br /> | $lang['start']['mailcow_panel_detail'] = '<b>Domain-Administratoren</b> erstellen, verändern oder löschen Mailboxen, verwalten die Domäne und sehen sonstige Einstellungen ein.<br> | ||||||
| 	Als <b>Mailbox-Benutzer</b> erstellen Sie hier zeitlich limitierte Aliasse, ändern das Verhalten des Spamfilters, setzen ein neues Passwort und vieles mehr.'; | 	Als <b>Mailbox-Benutzer</b> erstellen Sie hier zeitlich limitierte Aliasse, ändern das Verhalten des Spamfilters, setzen ein neues Passwort und vieles mehr.'; | ||||||
| $lang['start']['recommended_config'] = 'Empfohlene Software-Konfiguration (ohne ActiveSync)'; | $lang['start']['recommended_config'] = 'Empfohlene Software-Konfiguration (ohne ActiveSync)'; | ||||||
| $lang['start']['imap_smtp_server'] = 'IMAP- und SMTP-Server'; | $lang['start']['imap_smtp_server'] = 'IMAP- und SMTP-Server'; | ||||||
| $lang['start']['imap_smtp_server_description'] = 'Für eine optimale Verbindung empfehlen wir die Verwendung des <a href="%s" target="_blank"><b>Mozilla Thunderbirds</b></a>.'; | $lang['start']['imap_smtp_server_description'] = 'Für eine optimale Verbindung empfehlen wir die Verwendung des <a href="%s" target="_blank"><b>Mozilla Thunderbirds</b></a>.'; | ||||||
| $lang['start']['imap_smtp_server_badge'] = 'E-Mail lesen und schreiben'; | $lang['start']['imap_smtp_server_badge'] = 'E-Mail lesen und schreiben'; | ||||||
| $lang['start']['imap_smtp_server_auth_info'] = 'Bitte verwenden Sie Ihre vollständige E-Mail-Adresse sowie das PLAIN-Authentifizierungsverfahren.<br /> | $lang['start']['imap_smtp_server_auth_info'] = 'Bitte verwenden Sie Ihre vollständige E-Mail-Adresse sowie das PLAIN-Authentifizierungsverfahren.<br> | ||||||
| Ihre Anmeldedaten werden durch die obligatorische Verschlüsselung entgegen des Begriffes "PLAIN" nicht unverschlüsselt übertragen.'; | Ihre Anmeldedaten werden durch die obligatorische Verschlüsselung entgegen des Begriffes "PLAIN" nicht unverschlüsselt übertragen.'; | ||||||
| $lang['start']['managesieve'] = 'ManageSieve'; | $lang['start']['managesieve'] = 'ManageSieve'; | ||||||
| $lang['start']['managesieve_badge'] = 'E-Mail-Filter'; | $lang['start']['managesieve_badge'] = 'E-Mail-Filter'; | ||||||
| $lang['start']['managesieve_description'] = 'Bitte verwenden Sie <b>Mozilla Thunderbirds</b> zusammen mit der <a style="text-decoration:none" target="_blank" href="%s"><b>Sieve Erweiterung</b></a>.<br />Nach dem Herunterladen der Erweiterung starten Sie Thunderbird, öffnen das Fenster für Erweiterungen und ziehen die heruntergeladene Datei in das offene Fenster.<br />Der Servername lautet <b>%s</b>, als Port konfigurieren Sie bitte <b>4190</b>. Die Anmeldedaten entsprechen dem E-Mail Login.'; | $lang['start']['managesieve_description'] = 'Bitte verwenden Sie <b>Mozilla Thunderbirds</b> zusammen mit der <a style="text-decoration:none" target="_blank" href="%s"><b>Sieve Erweiterung</b></a>.<br>Nach dem Herunterladen der Erweiterung starten Sie Thunderbird, öffnen das Fenster für Erweiterungen und ziehen die heruntergeladene Datei in das offene Fenster.<br>Der Servername lautet <b>%s</b>, als Port konfigurieren Sie bitte <b>4190</b>. Die Anmeldedaten entsprechen dem E-Mail Login.'; | ||||||
| $lang['start']['service'] = 'Dienstname'; | $lang['start']['service'] = 'Dienstname'; | ||||||
| $lang['start']['encryption'] = 'Verschlüsselungstyp'; | $lang['start']['encryption'] = 'Verschlüsselungstyp'; | ||||||
| $lang['start']['help'] = 'Hilfe ein-/ausblenden'; | $lang['start']['help'] = 'Hilfe ein-/ausblenden'; | ||||||
| @ -272,7 +271,7 @@ $lang['delete']['remove_mailbox_warning'] = '<b>Warnung:</b> Sie entfernen die M | |||||||
| $lang['delete']['remove_mailbox_details'] = 'Die Mailbox wird <b>vollständig und permanent</b> entfernt!'; | $lang['delete']['remove_mailbox_details'] = 'Die Mailbox wird <b>vollständig und permanent</b> entfernt!'; | ||||||
| $lang['delete']['remove_resource_warning'] = '<b>Warnung:</b> Sie entfernen die Ressource <b>%s</b>!'; | $lang['delete']['remove_resource_warning'] = '<b>Warnung:</b> Sie entfernen die Ressource <b>%s</b>!'; | ||||||
| $lang['delete']['remove_resource_details'] = 'Die Ressource wird <b>vollständig und permanent</b> entfernt!'; | $lang['delete']['remove_resource_details'] = 'Die Ressource wird <b>vollständig und permanent</b> entfernt!'; | ||||||
| $lang['delete']['remove_domain_details'] = 'Diese Aktion entfernt ebenfalls Domain-Aliasse.<br /><br /><b>Eine Domain muss leer sein, um entfernt zu werden.</b>'; | $lang['delete']['remove_domain_details'] = 'Diese Aktion entfernt ebenfalls Domain-Aliasse.<br><br><b>Eine Domain muss leer sein, um entfernt zu werden.</b>'; | ||||||
| $lang['delete']['remove_syncjob_details'] = 'Objekte dieses Sync-Jobs werden nicht mehr vom entfernten Server abgeholt.'; | $lang['delete']['remove_syncjob_details'] = 'Objekte dieses Sync-Jobs werden nicht mehr vom entfernten Server abgeholt.'; | ||||||
| $lang['delete']['remove_alias_details'] = 'Benutzer werden keine Nachrichten mehr von dieser Adresse erhalten und versenden koennen!</b>'; | $lang['delete']['remove_alias_details'] = 'Benutzer werden keine Nachrichten mehr von dieser Adresse erhalten und versenden koennen!</b>'; | ||||||
| $lang['delete']['remove_button'] = 'Entfernen'; | $lang['delete']['remove_button'] = 'Entfernen'; | ||||||
| @ -284,7 +283,7 @@ $lang['edit']['username'] = 'Benutzername'; | |||||||
| $lang['edit']['hostname'] = 'Servername'; | $lang['edit']['hostname'] = 'Servername'; | ||||||
| $lang['edit']['encryption'] = 'Verschlüsselungsmethode'; | $lang['edit']['encryption'] = 'Verschlüsselungsmethode'; | ||||||
| $lang['edit']['maxage'] = 'Maximales Alter in Tagen einer Nachricht, die kopiert werden soll</br ><small>(0 = alle Nachrichten kopieren)</small>'; | $lang['edit']['maxage'] = 'Maximales Alter in Tagen einer Nachricht, die kopiert werden soll</br ><small>(0 = alle Nachrichten kopieren)</small>'; | ||||||
| $lang['edit']['subfolder2'] = 'Ziel-Ordner<br /><small>(leer = kein Unterordner)</small>'; | $lang['edit']['subfolder2'] = 'Ziel-Ordner<br><small>(leer = kein Unterordner)</small>'; | ||||||
| $lang['edit']['mins_interval'] = 'Intervall (min)'; | $lang['edit']['mins_interval'] = 'Intervall (min)'; | ||||||
| $lang['edit']['exclude'] = 'Elemente ausschließen (Regex)'; | $lang['edit']['exclude'] = 'Elemente ausschließen (Regex)'; | ||||||
| $lang['edit']['archive'] = 'Archiv-Zugriff'; | $lang['edit']['archive'] = 'Archiv-Zugriff'; | ||||||
| @ -410,8 +409,8 @@ $lang['tfa']['otp'] = "Einmalpasswort"; | |||||||
| $lang['tfa']['totp'] = "Time-based OTP (Google Authenticator etc.)"; | $lang['tfa']['totp'] = "Time-based OTP (Google Authenticator etc.)"; | ||||||
| $lang['tfa']['trash_login'] = "Login verwerfen"; | $lang['tfa']['trash_login'] = "Login verwerfen"; | ||||||
| $lang['tfa']['select'] = "Bitte auswählen"; | $lang['tfa']['select'] = "Bitte auswählen"; | ||||||
| $lang['tfa']['waiting_usb_auth'] = "<i>Warte auf USB-Gerät...</i><br /><br />Bitte jetzt den vorgesehenen Taster des U2F USB-Gerätes berühren."; | $lang['tfa']['waiting_usb_auth'] = "<i>Warte auf USB-Gerät...</i><br><br>Bitte jetzt den vorgesehenen Taster des U2F USB-Gerätes berühren."; | ||||||
| $lang['tfa']['waiting_usb_register'] = "<i>Warte auf USB-Gerät...</i><br /><br />Bitte zuerst das obere Passwortfeld ausfüllen und erst dann den vorgesehenen Taster des U2F USB-Gerätes berühren."; | $lang['tfa']['waiting_usb_register'] = "<i>Warte auf USB-Gerät...</i><br><br>Bitte zuerst das obere Passwortfeld ausfüllen und erst dann den vorgesehenen Taster des U2F USB-Gerätes berühren."; | ||||||
| $lang['tfa']['scan_qr_code'] = "Bitte scannen Sie jetzt den angezeigten QR-Code:."; | $lang['tfa']['scan_qr_code'] = "Bitte scannen Sie jetzt den angezeigten QR-Code:."; | ||||||
| $lang['tfa']['enter_qr_code'] = "Falls Sie den angezeigten QR-Code nicht scannen können, verwenden Sie bitte nachstehenden Sicherheitsschlüssel"; | $lang['tfa']['enter_qr_code'] = "Falls Sie den angezeigten QR-Code nicht scannen können, verwenden Sie bitte nachstehenden Sicherheitsschlüssel"; | ||||||
| $lang['tfa']['confirm_totp_token'] = "Bitte bestätigen Sie die Änderung durch Eingabe eines generierten Tokens"; | $lang['tfa']['confirm_totp_token'] = "Bitte bestätigen Sie die Änderung durch Eingabe eines generierten Tokens"; | ||||||
| @ -423,7 +422,7 @@ $lang['admin']['sr'] = 'Postfix Sender Restriktionen'; | |||||||
| $lang['admin']['reset_defaults'] = 'Standard wiederherstellen'; | $lang['admin']['reset_defaults'] = 'Standard wiederherstellen'; | ||||||
| $lang['admin']['r_inactive'] = 'Inaktive Restriktionen'; | $lang['admin']['r_inactive'] = 'Inaktive Restriktionen'; | ||||||
| $lang['admin']['r_active'] = 'Aktive Restriktionen'; | $lang['admin']['r_active'] = 'Aktive Restriktionen'; | ||||||
| $lang['admin']['r_info'] = 'Ausgegraute/deaktivierte Elemente sind mailcow nicht bekannt und können nicht in die Liste inaktiver Elemente verschoben werden. Unbekannte Restriktionen werden trotzdem in Reihenfolge der Erscheinung gesetzt.<br />Sie können ein Element in der Datei <code>inc/vars.local.inc.php</code> als bekannt hinzufügen, um es zu bewegen.'; | $lang['admin']['r_info'] = 'Ausgegraute/deaktivierte Elemente sind mailcow nicht bekannt und können nicht in die Liste inaktiver Elemente verschoben werden. Unbekannte Restriktionen werden trotzdem in Reihenfolge der Erscheinung gesetzt.<br>Sie können ein Element in der Datei <code>inc/vars.local.inc.php</code> als bekannt hinzufügen, um es zu bewegen.'; | ||||||
| $lang['admin']['public_folders'] = 'Öffentliche Ordner'; | $lang['admin']['public_folders'] = 'Öffentliche Ordner'; | ||||||
| $lang['admin']['public_folders_text'] = 'Ein Namespace "Public" wird erstellt. Der untenstehende Ordnername betrifft den Namen der automatisch erstellten Mailbox in diesem Namespace.'; | $lang['admin']['public_folders_text'] = 'Ein Namespace "Public" wird erstellt. Der untenstehende Ordnername betrifft den Namen der automatisch erstellten Mailbox in diesem Namespace.'; | ||||||
| $lang['admin']['public_folder_name'] = 'Ordnername <small>(alphanumerisch)</small>'; | $lang['admin']['public_folder_name'] = 'Ordnername <small>(alphanumerisch)</small>'; | ||||||
| @ -487,4 +486,3 @@ $lang['admin']['add_forwarding_host'] = 'Weiterleitungs-Host hinzufügen'; | |||||||
| $lang['delete']['remove_forwardinghost_warning'] = '<b>Warnung:</b> Sie entfernen den Weiterleitungs-Host <b>%s</b>!'; | $lang['delete']['remove_forwardinghost_warning'] = '<b>Warnung:</b> Sie entfernen den Weiterleitungs-Host <b>%s</b>!'; | ||||||
| $lang['success']['forwarding_host_removed'] = "Weiterleitungs-Host %s wurde entfernt"; | $lang['success']['forwarding_host_removed'] = "Weiterleitungs-Host %s wurde entfernt"; | ||||||
| $lang['success']['forwarding_host_added'] = "Weiterleitungs-Host %s wurde hinzugefügt"; | $lang['success']['forwarding_host_added'] = "Weiterleitungs-Host %s wurde hinzugefügt"; | ||||||
| ?>
 |  | ||||||
|  | |||||||
| @ -1,14 +1,13 @@ | |||||||
| <?php | <?php | ||||||
| /* | /* | ||||||
| //
 |  * English language file | ||||||
| //  English language file
 |  | ||||||
| //
 |  | ||||||
|  */ |  */ | ||||||
|  | 
 | ||||||
| $lang['footer']['loading'] = "Please wait..."; | $lang['footer']['loading'] = "Please wait..."; | ||||||
| $lang['header']['restart_sogo'] = 'Restart SOGo'; | $lang['header']['restart_sogo'] = 'Restart SOGo'; | ||||||
| $lang['footer']['restart_sogo'] = 'Restart SOGo'; | $lang['footer']['restart_sogo'] = 'Restart SOGo'; | ||||||
| $lang['footer']['restart_now'] = 'Restart now'; | $lang['footer']['restart_now'] = 'Restart now'; | ||||||
| $lang['footer']['restart_sogo_info'] = 'Some tasks, e.g. adding a domain, require you to restart SOGo to catch changes made in the mailcow UI.<br /><br /><b>Important:</b> A graceful restart may take a while to complete, please wait for it to finish.'; | $lang['footer']['restart_sogo_info'] = 'Some tasks, e.g. adding a domain, require you to restart SOGo to catch changes made in the mailcow UI.<br><br><b>Important:</b> A graceful restart may take a while to complete, please wait for it to finish.'; | ||||||
| 
 | 
 | ||||||
| $lang['footer']['confirm_delete'] = 'Confirm deletion'; | $lang['footer']['confirm_delete'] = 'Confirm deletion'; | ||||||
| $lang['footer']['delete_these_items'] = 'Are you sure you want to delete the following items?'; | $lang['footer']['delete_these_items'] = 'Are you sure you want to delete the following items?'; | ||||||
| @ -156,7 +155,7 @@ $lang['user']['spamfilter_default_score'] = 'Default values:'; | |||||||
| $lang['user']['spamfilter_hint'] = 'The first value describes the "low spam score", the second represents the "high spam score".'; | $lang['user']['spamfilter_hint'] = 'The first value describes the "low spam score", the second represents the "high spam score".'; | ||||||
| $lang['user']['spamfilter_table_domain_policy'] = "n/a (domain policy)"; | $lang['user']['spamfilter_table_domain_policy'] = "n/a (domain policy)"; | ||||||
| 
 | 
 | ||||||
| $lang['user']['tls_policy_warning'] = '<strong>Warning:</strong> If you decide to enforce encrypted mail transfer, you may lose emails.<br />Messages to not satisfy the policy will be bounced with a hard fail by the mail system.<br />This option applies to your primary email address (login name), all addresses derived from alias domains as well as alias addresses <b>with only this single mailbox</b> as target.'; | $lang['user']['tls_policy_warning'] = '<strong>Warning:</strong> If you decide to enforce encrypted mail transfer, you may lose emails.<br>Messages to not satisfy the policy will be bounced with a hard fail by the mail system.<br>This option applies to your primary email address (login name), all addresses derived from alias domains as well as alias addresses <b>with only this single mailbox</b> as target.'; | ||||||
| $lang['user']['tls_policy'] = 'Encryption policy'; | $lang['user']['tls_policy'] = 'Encryption policy'; | ||||||
| $lang['user']['tls_enforce_in'] = 'Enforce TLS incoming'; | $lang['user']['tls_enforce_in'] = 'Enforce TLS incoming'; | ||||||
| $lang['user']['tls_enforce_out'] = 'Enforce TLS outgoing'; | $lang['user']['tls_enforce_out'] = 'Enforce TLS outgoing'; | ||||||
| @ -168,12 +167,12 @@ $lang['user']['misc_delete_profile'] = 'Other profile settings'; | |||||||
| $lang['user']['tag_handling'] = 'Set handling for tagged mail'; | $lang['user']['tag_handling'] = 'Set handling for tagged mail'; | ||||||
| $lang['user']['tag_in_subfolder'] = 'In subfolder'; | $lang['user']['tag_in_subfolder'] = 'In subfolder'; | ||||||
| $lang['user']['tag_in_subject'] = 'In subject'; | $lang['user']['tag_in_subject'] = 'In subject'; | ||||||
| $lang['user']['tag_help_explain'] = 'In subfolder: a new subfolder named after the tag will be created below INBOX ("INBOX/Facebook").<br /> | $lang['user']['tag_help_explain'] = 'In subfolder: a new subfolder named after the tag will be created below INBOX ("INBOX/Facebook").<br> | ||||||
| In subject: the tags name will be prepended to the mails subject, example: "[Facebook] Meine Neuigkeiten".'; | In subject: the tags name will be prepended to the mails subject, example: "[Facebook] Meine Neuigkeiten".'; | ||||||
| $lang['user']['tag_help_example'] = 'Example for a tagged email address: ich<b>+Facebook</b>@example.org'; | $lang['user']['tag_help_example'] = 'Example for a tagged email address: ich<b>+Facebook</b>@example.org'; | ||||||
| $lang['user']['eas_reset'] = 'Reset ActiveSync device cache'; | $lang['user']['eas_reset'] = 'Reset ActiveSync device cache'; | ||||||
| $lang['user']['eas_reset_now'] = 'Reset now'; | $lang['user']['eas_reset_now'] = 'Reset now'; | ||||||
| $lang['user']['eas_reset_help'] = 'In many cases a device cache reset will help to recover a broken ActiveSync profile.<br /><b>Attention:</b> All elements will be redownloaded!'; | $lang['user']['eas_reset_help'] = 'In many cases a device cache reset will help to recover a broken ActiveSync profile.<br><b>Attention:</b> All elements will be redownloaded!'; | ||||||
| 
 | 
 | ||||||
| $lang['user']['encryption'] = 'Encyrption'; | $lang['user']['encryption'] = 'Encyrption'; | ||||||
| $lang['user']['username'] = 'Username'; | $lang['user']['username'] = 'Username'; | ||||||
| @ -194,17 +193,17 @@ $lang['start']['start_sogo'] = 'Open SOGo'; | |||||||
| $lang['start']['mailcow_apps_detail'] = 'Use a mailcow app to access your mails, calendar, contacts and more.'; | $lang['start']['mailcow_apps_detail'] = 'Use a mailcow app to access your mails, calendar, contacts and more.'; | ||||||
| $lang['start']['mailcow_panel'] = 'Start mailcow UI'; | $lang['start']['mailcow_panel'] = 'Start mailcow UI'; | ||||||
| $lang['start']['mailcow_panel_description'] = 'The mailcow UI is available for administrators and mailbox users.'; | $lang['start']['mailcow_panel_description'] = 'The mailcow UI is available for administrators and mailbox users.'; | ||||||
| $lang['start']['mailcow_panel_detail'] = '<b>Domain administrators</b> create, modify or delete mailboxes and aliases, change domains and read further information about their assigned domains.<br /> | $lang['start']['mailcow_panel_detail'] = '<b>Domain administrators</b> create, modify or delete mailboxes and aliases, change domains and read further information about their assigned domains.<br> | ||||||
| 	<b>Mailbox users</b> are able to create time-limited aliases (spam aliases), change their password and spam filter settings.'; | 	<b>Mailbox users</b> are able to create time-limited aliases (spam aliases), change their password and spam filter settings.'; | ||||||
| $lang['start']['recommended_config'] = 'Recommended configuration (without ActiveSync)'; | $lang['start']['recommended_config'] = 'Recommended configuration (without ActiveSync)'; | ||||||
| $lang['start']['imap_smtp_server'] = 'IMAP- and SMTP server data'; | $lang['start']['imap_smtp_server'] = 'IMAP- and SMTP server data'; | ||||||
| $lang['start']['imap_smtp_server_description'] = 'For the best experience we recommend to use <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.'; | $lang['start']['imap_smtp_server_description'] = 'For the best experience we recommend to use <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.'; | ||||||
| $lang['start']['imap_smtp_server_badge'] = 'Read/Write emails'; | $lang['start']['imap_smtp_server_badge'] = 'Read/Write emails'; | ||||||
| $lang['start']['imap_smtp_server_auth_info'] = 'Please use your full email address and the PLAIN authentication mechanism.<br /> | $lang['start']['imap_smtp_server_auth_info'] = 'Please use your full email address and the PLAIN authentication mechanism.<br> | ||||||
| Your login data will be encrypted by the server-side mandatory encryption.'; | Your login data will be encrypted by the server-side mandatory encryption.'; | ||||||
| $lang['start']['managesieve'] = 'ManageSieve'; | $lang['start']['managesieve'] = 'ManageSieve'; | ||||||
| $lang['start']['managesieve_badge'] = 'Email filter'; | $lang['start']['managesieve_badge'] = 'Email filter'; | ||||||
| $lang['start']['managesieve_description'] = 'Please use <b>Mozilla Thunderbird</b> with the <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve extension</b></a>.<br />Start Thunderbird, open the add-on settings and drop the newly downloaded xpi file into the opened window.<br />The server name is <b>%s</b>, use port <b>4190</b> if you are asked for. The login data match your email login.'; | $lang['start']['managesieve_description'] = 'Please use <b>Mozilla Thunderbird</b> with the <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve extension</b></a>.<br>Start Thunderbird, open the add-on settings and drop the newly downloaded xpi file into the opened window.<br>The server name is <b>%s</b>, use port <b>4190</b> if you are asked for. The login data match your email login.'; | ||||||
| $lang['start']['service'] = 'Service'; | $lang['start']['service'] = 'Service'; | ||||||
| $lang['start']['encryption'] = 'Encryption method'; | $lang['start']['encryption'] = 'Encryption method'; | ||||||
| $lang['start']['help'] = 'Show/Hide help panel'; | $lang['start']['help'] = 'Show/Hide help panel'; | ||||||
| @ -276,7 +275,7 @@ $lang['delete']['remove_mailbox_warning'] = '<b>Warning:</b> You are about to re | |||||||
| $lang['delete']['remove_mailbox_details'] = 'The mailbox will be <b>purged permanently</b>!'; | $lang['delete']['remove_mailbox_details'] = 'The mailbox will be <b>purged permanently</b>!'; | ||||||
| $lang['delete']['remove_resource_warning'] = '<b>Warning:</b> You are about to remove the resource <b>%s</b>!'; | $lang['delete']['remove_resource_warning'] = '<b>Warning:</b> You are about to remove the resource <b>%s</b>!'; | ||||||
| $lang['delete']['remove_resource_details'] = 'The resource will be <b>purged permanently</b>!'; | $lang['delete']['remove_resource_details'] = 'The resource will be <b>purged permanently</b>!'; | ||||||
| $lang['delete']['remove_domain_details'] = 'This also removes domain aliases.<br /><br /><b>A domain must be empty to be removed.</b>'; | $lang['delete']['remove_domain_details'] = 'This also removes domain aliases.<br><br><b>A domain must be empty to be removed.</b>'; | ||||||
| $lang['delete']['remove_syncjob_details'] = 'Objects from this sync job will not be pulled from the remote server anymore.'; | $lang['delete']['remove_syncjob_details'] = 'Objects from this sync job will not be pulled from the remote server anymore.'; | ||||||
| $lang['delete']['remove_alias_details'] = 'Users will no longer be able to receive mail for or send mail from this address.</b>'; | $lang['delete']['remove_alias_details'] = 'Users will no longer be able to receive mail for or send mail from this address.</b>'; | ||||||
| $lang['delete']['remove_button'] = 'Remove'; | $lang['delete']['remove_button'] = 'Remove'; | ||||||
| @ -287,8 +286,8 @@ $lang['edit']['save'] = 'Save changes'; | |||||||
| $lang['edit']['username'] = 'Username'; | $lang['edit']['username'] = 'Username'; | ||||||
| $lang['edit']['hostname'] = 'Hostname'; | $lang['edit']['hostname'] = 'Hostname'; | ||||||
| $lang['edit']['encryption'] = 'Encryption'; | $lang['edit']['encryption'] = 'Encryption'; | ||||||
| $lang['edit']['maxage'] = 'Maximum age of messages in days that will be polled from remote<br /><small>(0 = ignore age)</small>'; | $lang['edit']['maxage'] = 'Maximum age of messages in days that will be polled from remote<br><small>(0 = ignore age)</small>'; | ||||||
| $lang['edit']['subfolder2'] = 'Sync into subfolder on destination<br /><small>(empty = do not use subfolder)</small>'; | $lang['edit']['subfolder2'] = 'Sync into subfolder on destination<br><small>(empty = do not use subfolder)</small>'; | ||||||
| $lang['edit']['mins_interval'] = 'Interval (min)'; | $lang['edit']['mins_interval'] = 'Interval (min)'; | ||||||
| $lang['edit']['exclude'] = 'Exclude objects (regex)'; | $lang['edit']['exclude'] = 'Exclude objects (regex)'; | ||||||
| $lang['edit']['save'] = 'Save changes'; | $lang['edit']['save'] = 'Save changes'; | ||||||
| @ -415,8 +414,8 @@ $lang['tfa']['otp'] = "One-time password"; | |||||||
| $lang['tfa']['totp'] = "Time-based OTP (Google Authenticator etc.)"; | $lang['tfa']['totp'] = "Time-based OTP (Google Authenticator etc.)"; | ||||||
| $lang['tfa']['trash_login'] = "Trash login"; | $lang['tfa']['trash_login'] = "Trash login"; | ||||||
| $lang['tfa']['select'] = "Please select"; | $lang['tfa']['select'] = "Please select"; | ||||||
| $lang['tfa']['waiting_usb_auth'] = "<i>Waiting for USB device...</i><br /><br />Please tap the button on your U2F USB device now."; | $lang['tfa']['waiting_usb_auth'] = "<i>Waiting for USB device...</i><br><br>Please tap the button on your U2F USB device now."; | ||||||
| $lang['tfa']['waiting_usb_register'] = "<i>Waiting for USB device...</i><br /><br />Please enter your password above and confirm your U2F registration by tapping the button on your U2F USB device."; | $lang['tfa']['waiting_usb_register'] = "<i>Waiting for USB device...</i><br><br>Please enter your password above and confirm your U2F registration by tapping the button on your U2F USB device."; | ||||||
| $lang['tfa']['scan_qr_code'] = "Please scan the following code with your authenticator app or enter the code manually."; | $lang['tfa']['scan_qr_code'] = "Please scan the following code with your authenticator app or enter the code manually."; | ||||||
| $lang['tfa']['enter_qr_code'] = "Your TOTP code if your device cannot scan QR codes"; | $lang['tfa']['enter_qr_code'] = "Your TOTP code if your device cannot scan QR codes"; | ||||||
| $lang['tfa']['confirm_totp_token'] = "Please confirm your changes by entering the generated token"; | $lang['tfa']['confirm_totp_token'] = "Please confirm your changes by entering the generated token"; | ||||||
| @ -429,7 +428,7 @@ $lang['admin']['reset_defaults'] = 'Reset to defaults'; | |||||||
| $lang['admin']['sr'] = 'Postfix Sender Restrictions'; | $lang['admin']['sr'] = 'Postfix Sender Restrictions'; | ||||||
| $lang['admin']['r_inactive'] = 'Inactive restrictions'; | $lang['admin']['r_inactive'] = 'Inactive restrictions'; | ||||||
| $lang['admin']['r_active'] = 'Active restrictions'; | $lang['admin']['r_active'] = 'Active restrictions'; | ||||||
| $lang['admin']['r_info'] = 'Greyed out/disabled elements on the list of active restrictions are not known as valid restrictions to mailcow and cannot be moved. Unknown restrictions will be set in order of appearance anyway. <br />You can add new elements in <code>inc/vars.local.inc.php</code> to be able to toggle them.'; | $lang['admin']['r_info'] = 'Greyed out/disabled elements on the list of active restrictions are not known as valid restrictions to mailcow and cannot be moved. Unknown restrictions will be set in order of appearance anyway. <br>You can add new elements in <code>inc/vars.local.inc.php</code> to be able to toggle them.'; | ||||||
| $lang['admin']['public_folders'] = 'Public Folders'; | $lang['admin']['public_folders'] = 'Public Folders'; | ||||||
| $lang['admin']['public_folders_text'] = 'A namespace "Public" is created. Below\'s public folder name indicates the name of the first auto-created mailbox within this namespace.'; | $lang['admin']['public_folders_text'] = 'A namespace "Public" is created. Below\'s public folder name indicates the name of the first auto-created mailbox within this namespace.'; | ||||||
| $lang['admin']['public_folder_name'] = 'Folder name <small>(alphanumeric)</small>'; | $lang['admin']['public_folder_name'] = 'Folder name <small>(alphanumeric)</small>'; | ||||||
| @ -499,4 +498,3 @@ $lang['admin']['add_forwarding_host'] = 'Add Forwarding Host'; | |||||||
| $lang['delete']['remove_forwardinghost_warning'] = '<b>Warning:</b> You are about to remove the forwarding host <b>%s</b>!'; | $lang['delete']['remove_forwardinghost_warning'] = '<b>Warning:</b> You are about to remove the forwarding host <b>%s</b>!'; | ||||||
| $lang['success']['forwarding_host_removed'] = "Forwarding host %s has been removed"; | $lang['success']['forwarding_host_removed'] = "Forwarding host %s has been removed"; | ||||||
| $lang['success']['forwarding_host_added'] = "Forwarding host %s has been added"; | $lang['success']['forwarding_host_added'] = "Forwarding host %s has been added"; | ||||||
| ?>
 |  | ||||||
|  | |||||||
| @ -1,14 +1,13 @@ | |||||||
| <?php | <?php | ||||||
| /* | /* | ||||||
| //
 |  * Spanish language file | ||||||
| //  Spanish language file
 |  | ||||||
| //
 |  | ||||||
|  */ |  */ | ||||||
|  | 
 | ||||||
| $lang['footer']['loading'] = "Espere Por Favor..."; | $lang['footer']['loading'] = "Espere Por Favor..."; | ||||||
| $lang['header']['restart_sogo'] = 'Reiniciar SOGo'; | $lang['header']['restart_sogo'] = 'Reiniciar SOGo'; | ||||||
| $lang['footer']['restart_sogo'] = 'Reiniciar SOGo'; | $lang['footer']['restart_sogo'] = 'Reiniciar SOGo'; | ||||||
| $lang['footer']['restart_now'] = 'Reiniciar ahora'; | $lang['footer']['restart_now'] = 'Reiniciar ahora'; | ||||||
| $lang['footer']['restart_sogo_info'] = 'Algunas tareas, por ejemplo agregar un dominio, requieren que reinicies SOGo para detectar cambios hechos en la UI de mailcow.<br /><br /><b>Importante:</b> Un reinicio sencillo puede tardar un poco en completarse, por favor espere a que termine.'; | $lang['footer']['restart_sogo_info'] = 'Algunas tareas, por ejemplo agregar un dominio, requieren que reinicies SOGo para detectar cambios hechos en la UI de mailcow.<br><br><b>Importante:</b> Un reinicio sencillo puede tardar un poco en completarse, por favor espere a que termine.'; | ||||||
| $lang['dkim']['confirm'] = "¿Estás Seguro?"; | $lang['dkim']['confirm'] = "¿Estás Seguro?"; | ||||||
| $lang['danger']['dkim_not_found'] = "Registro DKIM no encontrado"; | $lang['danger']['dkim_not_found'] = "Registro DKIM no encontrado"; | ||||||
| $lang['danger']['dkim_remove_failed'] = "No se puede eliminar el registro DKIM seleccionado"; | $lang['danger']['dkim_remove_failed'] = "No se puede eliminar el registro DKIM seleccionado"; | ||||||
| @ -136,7 +135,7 @@ $lang['user']['spamfilter_red'] = 'Rojo: Este mensaje es spam y sera rechazado p | |||||||
| $lang['user']['spamfilter_default_score'] = 'Valores por defecto:'; | $lang['user']['spamfilter_default_score'] = 'Valores por defecto:'; | ||||||
| $lang['user']['spamfilter_hint'] = 'El primer valor representa la "calificación baja de spam", el segundo representa la "calificación alta de spam".'; | $lang['user']['spamfilter_hint'] = 'El primer valor representa la "calificación baja de spam", el segundo representa la "calificación alta de spam".'; | ||||||
| 
 | 
 | ||||||
| $lang['user']['tls_policy_warning'] = '<strong>Advertencia:</strong> Si decides forzar la transmisión de correo encriptado, puedes perder correos.<br />Mensajes que no satisfagan la política serán rebotados con una falla grave en el sistema de correos .'; | $lang['user']['tls_policy_warning'] = '<strong>Advertencia:</strong> Si decides forzar la transmisión de correo encriptado, puedes perder correos.<br>Mensajes que no satisfagan la política serán rebotados con una falla grave en el sistema de correos .'; | ||||||
| $lang['user']['tls_policy'] = 'Política de encriptación'; | $lang['user']['tls_policy'] = 'Política de encriptación'; | ||||||
| $lang['user']['tls_enforce_in'] = 'Aplicar TLS entrante'; | $lang['user']['tls_enforce_in'] = 'Aplicar TLS entrante'; | ||||||
| $lang['user']['tls_enforce_out'] = 'Aplicar TLS saliente'; | $lang['user']['tls_enforce_out'] = 'Aplicar TLS saliente'; | ||||||
| @ -148,7 +147,7 @@ $lang['user']['misc_delete_profile'] = 'Otras configuraciones de usuario'; | |||||||
| $lang['user']['tag_handling'] = 'Establecer manejo para el correo etiquetado'; | $lang['user']['tag_handling'] = 'Establecer manejo para el correo etiquetado'; | ||||||
| $lang['user']['tag_in_subfolder'] = 'En subcarpeta'; | $lang['user']['tag_in_subfolder'] = 'En subcarpeta'; | ||||||
| $lang['user']['tag_in_subject'] = 'En asunto'; | $lang['user']['tag_in_subject'] = 'En asunto'; | ||||||
| $lang['user']['tag_help_explain'] = 'En subcarpeta: una nueva subcarpeta llamada como la etiqueta será creada debajo de INBOX ("INBOX/Facebook").<br /> | $lang['user']['tag_help_explain'] = 'En subcarpeta: una nueva subcarpeta llamada como la etiqueta será creada debajo de INBOX ("INBOX/Facebook").<br> | ||||||
| En asunto: los nombres de las etiquetas serán añadidos al asunto de los correos, ejemplo: "[Facebook] Mis Noticias".'; | En asunto: los nombres de las etiquetas serán añadidos al asunto de los correos, ejemplo: "[Facebook] Mis Noticias".'; | ||||||
| $lang['user']['tag_help_example'] = 'Ejemplo de una dirección email etiquetada: mi<b>+Facebook</b>@ejemplo.org'; | $lang['user']['tag_help_example'] = 'Ejemplo de una dirección email etiquetada: mi<b>+Facebook</b>@ejemplo.org'; | ||||||
| 
 | 
 | ||||||
| @ -158,17 +157,17 @@ $lang['start']['start_sogo'] = 'Abrir SOGo'; | |||||||
| $lang['start']['mailcow_apps_detail'] = 'Utiliza una aplicación de mailcow para acceder a tus correos, calendario, contactos y más.'; | $lang['start']['mailcow_apps_detail'] = 'Utiliza una aplicación de mailcow para acceder a tus correos, calendario, contactos y más.'; | ||||||
| $lang['start']['mailcow_panel'] = 'Iniciar mailcow UI'; | $lang['start']['mailcow_panel'] = 'Iniciar mailcow UI'; | ||||||
| $lang['start']['mailcow_panel_description'] = 'Mailcow UI está disponible para administradores y usuarios de buzón.'; | $lang['start']['mailcow_panel_description'] = 'Mailcow UI está disponible para administradores y usuarios de buzón.'; | ||||||
| $lang['start']['mailcow_panel_detail'] = '<b>Administradores del dominio</b> crean, modifican o eliminan buzones y alias, cambia dominios y lee información más detallada sobre sus dominios asignados<br /> | $lang['start']['mailcow_panel_detail'] = '<b>Administradores del dominio</b> crean, modifican o eliminan buzones y alias, cambia dominios y lee información más detallada sobre sus dominios asignados<br> | ||||||
| 	<b>Usuarios de buzón</b> son capaces de crear alias de tiempo limitado (spam alias), cambiar su contraseña y la configuración del filtro de spam.'; | 	<b>Usuarios de buzón</b> son capaces de crear alias de tiempo limitado (spam alias), cambiar su contraseña y la configuración del filtro de spam.'; | ||||||
| $lang['start']['recommended_config'] = 'Configuración recomendada (sin ActiveSync)'; | $lang['start']['recommended_config'] = 'Configuración recomendada (sin ActiveSync)'; | ||||||
| $lang['start']['imap_smtp_server'] = 'IMAP- y SMTP datos del servidor'; | $lang['start']['imap_smtp_server'] = 'IMAP- y SMTP datos del servidor'; | ||||||
| $lang['start']['imap_smtp_server_description'] = 'Para la mejor experiencia recomendamos utilizar <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.'; | $lang['start']['imap_smtp_server_description'] = 'Para la mejor experiencia recomendamos utilizar <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.'; | ||||||
| $lang['start']['imap_smtp_server_badge'] = 'Leer/Escribir correos'; | $lang['start']['imap_smtp_server_badge'] = 'Leer/Escribir correos'; | ||||||
| $lang['start']['imap_smtp_server_auth_info'] = 'Por favor utiliza tu dirección de correo completa y el mecanismo de autenticación PLANO.<br /> | $lang['start']['imap_smtp_server_auth_info'] = 'Por favor utiliza tu dirección de correo completa y el mecanismo de autenticación PLANO.<br> | ||||||
| Tus datos para iniciar sesión serán encriptados por la encriptación obligatoria del servidor'; | Tus datos para iniciar sesión serán encriptados por la encriptación obligatoria del servidor'; | ||||||
| $lang['start']['managesieve'] = 'ManageSieve'; | $lang['start']['managesieve'] = 'ManageSieve'; | ||||||
| $lang['start']['managesieve_badge'] = 'Filtro de correos'; | $lang['start']['managesieve_badge'] = 'Filtro de correos'; | ||||||
| $lang['start']['managesieve_description'] = 'Por favor utiliza <b>Mozilla Thunderbird</b> con la <a style="text-decoration:none" target="_blank" href="%s"><b>extensión nightly sieve</b></a>.<br />Inicia Thunderbird, abre la configuración de complementos y suelta el archivo xpi descargado en la ventana abierta.<br />El servidor es <b>%s</b>, utiliza el puerto <b>4190</b> si se te pregunta. Los datos para iniciar sesión coinciden con los datos de tu correo.'; | $lang['start']['managesieve_description'] = 'Por favor utiliza <b>Mozilla Thunderbird</b> con la <a style="text-decoration:none" target="_blank" href="%s"><b>extensión nightly sieve</b></a>.<br>Inicia Thunderbird, abre la configuración de complementos y suelta el archivo xpi descargado en la ventana abierta.<br>El servidor es <b>%s</b>, utiliza el puerto <b>4190</b> si se te pregunta. Los datos para iniciar sesión coinciden con los datos de tu correo.'; | ||||||
| $lang['start']['service'] = 'Servicio'; | $lang['start']['service'] = 'Servicio'; | ||||||
| $lang['start']['encryption'] = 'Método de encriptación'; | $lang['start']['encryption'] = 'Método de encriptación'; | ||||||
| $lang['start']['help'] = 'Mostrar/Ocultar panel de ayuda'; | $lang['start']['help'] = 'Mostrar/Ocultar panel de ayuda'; | ||||||
| @ -222,7 +221,7 @@ $lang['delete']['remove_domainadmin_warning'] = '<b>Advertencia:</b> ¡Estás a | |||||||
| $lang['delete']['remove_alias_warning'] = '<b>Advertencia:</b> ¡Estás a punto de eliminar la dirección alias <b>%s</b>!'; | $lang['delete']['remove_alias_warning'] = '<b>Advertencia:</b> ¡Estás a punto de eliminar la dirección alias <b>%s</b>!'; | ||||||
| $lang['delete']['remove_mailbox_warning'] = '<b>Advertencia:</b> ¡Estás a punto de eliminar el buzón <b>%s</b>!'; | $lang['delete']['remove_mailbox_warning'] = '<b>Advertencia:</b> ¡Estás a punto de eliminar el buzón <b>%s</b>!'; | ||||||
| $lang['delete']['remove_mailbox_details'] = 'El buzón será <b>purgado permanentemente</b>!'; | $lang['delete']['remove_mailbox_details'] = 'El buzón será <b>purgado permanentemente</b>!'; | ||||||
| $lang['delete']['remove_domain_details'] = 'Esto también eliminará alias de dominio.<br /><br /><b>Un dominio debe estar vacío para poder ser eliminado.</b>'; | $lang['delete']['remove_domain_details'] = 'Esto también eliminará alias de dominio.<br><br><b>Un dominio debe estar vacío para poder ser eliminado.</b>'; | ||||||
| $lang['delete']['remove_alias_details'] = 'Los usuarios ya no serán capaces de recibir correos o enviar correos desde esta dirección.</b>'; | $lang['delete']['remove_alias_details'] = 'Los usuarios ya no serán capaces de recibir correos o enviar correos desde esta dirección.</b>'; | ||||||
| $lang['delete']['remove_button'] = 'Eliminar'; | $lang['delete']['remove_button'] = 'Eliminar'; | ||||||
| $lang['delete']['previous'] = 'Página anterior'; | $lang['delete']['previous'] = 'Página anterior'; | ||||||
| @ -326,7 +325,7 @@ $lang['admin']['reset_defaults'] = 'Restablecer los valores predeterminados'; | |||||||
| $lang['admin']['sr'] = 'Restricciones Postfix para remitentes'; | $lang['admin']['sr'] = 'Restricciones Postfix para remitentes'; | ||||||
| $lang['admin']['r_inactive'] = 'Restricciones inactivas'; | $lang['admin']['r_inactive'] = 'Restricciones inactivas'; | ||||||
| $lang['admin']['r_active'] = 'Restricciones activas'; | $lang['admin']['r_active'] = 'Restricciones activas'; | ||||||
| $lang['admin']['r_info'] = 'Elementos en gris/deshabilitados en la lista de restricciones activas no son reconocidas como restricciones válidas para mailcow y no pueden ser movidas. Restricciones desconocidas serán establecidas en el orden de aparicion de todas maneras. <br />Puedes agregar nuevos elementos en <code>inc/vars.local.inc.php</code> para ser capaz de habilitarlas.'; | $lang['admin']['r_info'] = 'Elementos en gris/deshabilitados en la lista de restricciones activas no son reconocidas como restricciones válidas para mailcow y no pueden ser movidas. Restricciones desconocidas serán establecidas en el orden de aparicion de todas maneras. <br>Puedes agregar nuevos elementos en <code>inc/vars.local.inc.php</code> para ser capaz de habilitarlas.'; | ||||||
| $lang['admin']['public_folders'] = 'Carpetas Públicas'; | $lang['admin']['public_folders'] = 'Carpetas Públicas'; | ||||||
| $lang['admin']['public_folders_text'] = 'Un espacio de nombres "Public" (Público) será creado. Debajo del nombre de la carpeta pública se indica el nombre del primer buzón creado automáticamente dentro de este espacio de nombres'; | $lang['admin']['public_folders_text'] = 'Un espacio de nombres "Public" (Público) será creado. Debajo del nombre de la carpeta pública se indica el nombre del primer buzón creado automáticamente dentro de este espacio de nombres'; | ||||||
| $lang['admin']['public_folder_name'] = 'Nombre de la carpeta <small>(alfanumérico)</small>'; | $lang['admin']['public_folder_name'] = 'Nombre de la carpeta <small>(alfanumérico)</small>'; | ||||||
| @ -375,4 +374,3 @@ $lang['admin']['site_not_found'] = 'No se puede localizar la configuración del | |||||||
| $lang['admin']['public_folder_empty'] = 'El nombre de la carpeta pública no debe estar vacío'; | $lang['admin']['public_folder_empty'] = 'El nombre de la carpeta pública no debe estar vacío'; | ||||||
| $lang['admin']['set_rr_failed'] = 'No se pueden establecer las restricciones de Postfix'; | $lang['admin']['set_rr_failed'] = 'No se pueden establecer las restricciones de Postfix'; | ||||||
| $lang['admin']['no_record'] = 'Sin registro'; | $lang['admin']['no_record'] = 'Sin registro'; | ||||||
| ?>
 |  | ||||||
|  | |||||||
| @ -1,13 +1,13 @@ | |||||||
| <?php | <?php | ||||||
| /* | /* | ||||||
| //
 |  * Dutch language file | ||||||
| //  Dutch language file
 |  | ||||||
|  */ |  */ | ||||||
|  | 
 | ||||||
| $lang['footer']['loading'] = "Even geduld a.u.b. ..."; | $lang['footer']['loading'] = "Even geduld a.u.b. ..."; | ||||||
| $lang['header']['restart_sogo'] = 'SOGo herstarten'; | $lang['header']['restart_sogo'] = 'SOGo herstarten'; | ||||||
| $lang['footer']['restart_sogo'] = 'SOGo herstarten'; | $lang['footer']['restart_sogo'] = 'SOGo herstarten'; | ||||||
| $lang['footer']['restart_now'] = 'Nu opnieuw starten'; | $lang['footer']['restart_now'] = 'Nu opnieuw starten'; | ||||||
| $lang['footer']['restart_sogo_info'] = 'Sommige taken, zoals het toevoegen van een domein, vereisen een herstart van SOGo om de veranderingen door te voeren.<br /><br /><b>Belangrijk:</b> Het opnieuw opstarten kan een poos duren, wacht a.u.b. totdat dit volledig voltooid is.'; | $lang['footer']['restart_sogo_info'] = 'Sommige taken, zoals het toevoegen van een domein, vereisen een herstart van SOGo om de veranderingen door te voeren.<br><br><b>Belangrijk:</b> Het opnieuw opstarten kan een poos duren, wacht a.u.b. totdat dit volledig voltooid is.'; | ||||||
| $lang['dkim']['confirm'] = "Weet u het zeker?"; | $lang['dkim']['confirm'] = "Weet u het zeker?"; | ||||||
| $lang['danger']['dkim_not_found'] = "DKIM record niet gevonden."; | $lang['danger']['dkim_not_found'] = "DKIM record niet gevonden."; | ||||||
| $lang['danger']['dkim_remove_failed'] = "Kan geselecteerde DKIM record niet verwijderen."; | $lang['danger']['dkim_remove_failed'] = "Kan geselecteerde DKIM record niet verwijderen."; | ||||||
| @ -131,7 +131,7 @@ $lang['user']['spamfilter_red'] = 'Rood: Dit bericht is spam en zal worden gewei | |||||||
| $lang['user']['spamfilter_default_score'] = 'Standaardwaarden:'; | $lang['user']['spamfilter_default_score'] = 'Standaardwaarden:'; | ||||||
| $lang['user']['spamfilter_hint'] = 'De eerste waarde omschrijft een "lage spam score", de tweede waarde een "hoge spam score".'; | $lang['user']['spamfilter_hint'] = 'De eerste waarde omschrijft een "lage spam score", de tweede waarde een "hoge spam score".'; | ||||||
| 
 | 
 | ||||||
| $lang['user']['tls_policy_warning'] = '<strong>Attentie:</strong> Door versleutelde e-mails te forceren, worden mogelijk niet alle e-mails afgeleverd.<br />Berichten die niet aan het ingestelde beleid voldoen worden resoluut geweigerd (bounced met hard-fail).'; | $lang['user']['tls_policy_warning'] = '<strong>Attentie:</strong> Door versleutelde e-mails te forceren, worden mogelijk niet alle e-mails afgeleverd.<br>Berichten die niet aan het ingestelde beleid voldoen worden resoluut geweigerd (bounced met hard-fail).'; | ||||||
| $lang['user']['tls_policy'] = 'Versleutelbeleid'; | $lang['user']['tls_policy'] = 'Versleutelbeleid'; | ||||||
| $lang['user']['tls_enforce_in'] = 'Forceer TLS-gebruik inkomend'; | $lang['user']['tls_enforce_in'] = 'Forceer TLS-gebruik inkomend'; | ||||||
| $lang['user']['tls_enforce_out'] = 'Forceer TLS-gebruik uitgaand'; | $lang['user']['tls_enforce_out'] = 'Forceer TLS-gebruik uitgaand'; | ||||||
| @ -142,7 +142,7 @@ $lang['user']['misc_delete_profile'] = 'Andere profielinstellingen'; | |||||||
| $lang['user']['tag_handling'] = 'Omgaan met e-mail tags'; | $lang['user']['tag_handling'] = 'Omgaan met e-mail tags'; | ||||||
| $lang['user']['tag_in_subfolder'] = 'In onderliggende map'; | $lang['user']['tag_in_subfolder'] = 'In onderliggende map'; | ||||||
| $lang['user']['tag_in_subject'] = 'In onderwerp'; | $lang['user']['tag_in_subject'] = 'In onderwerp'; | ||||||
| $lang['user']['tag_help_explain'] = 'In onderliggende map: maakt onder INBOX een nieuwe map aan met de naam van de tag (bijv.: "INBOX/Facebook").<br /> | $lang['user']['tag_help_explain'] = 'In onderliggende map: maakt onder INBOX een nieuwe map aan met de naam van de tag (bijv.: "INBOX/Facebook").<br> | ||||||
| In onderwerp: de tag wordt vóór het oorspronkelijke e-mail onderwerp geplaatst (bijv.: "[Facebook] Mijn nieuws").'; | In onderwerp: de tag wordt vóór het oorspronkelijke e-mail onderwerp geplaatst (bijv.: "[Facebook] Mijn nieuws").'; | ||||||
| $lang['user']['tag_help_example'] = 'Voorbeeld van een e-mailadres met tag: ik<b>+Facebook</b>@voorbeeld.org'; | $lang['user']['tag_help_example'] = 'Voorbeeld van een e-mailadres met tag: ik<b>+Facebook</b>@voorbeeld.org'; | ||||||
| $lang['start']['dashboard'] = '%s - startpagina'; | $lang['start']['dashboard'] = '%s - startpagina'; | ||||||
| @ -151,17 +151,17 @@ $lang['start']['start_sogo'] = 'Open SOGo'; | |||||||
| $lang['start']['mailcow_apps_detail'] = 'Gebruik een mailcow app om toegang te hebben tot uw e-mails, kalender, contactpersonen en meer.'; | $lang['start']['mailcow_apps_detail'] = 'Gebruik een mailcow app om toegang te hebben tot uw e-mails, kalender, contactpersonen en meer.'; | ||||||
| $lang['start']['mailcow_panel'] = 'Start mailcow UI'; | $lang['start']['mailcow_panel'] = 'Start mailcow UI'; | ||||||
| $lang['start']['mailcow_panel_description'] = 'De mailcow UI is beschikbaar voor zowel beheerders als gebruikers.'; | $lang['start']['mailcow_panel_description'] = 'De mailcow UI is beschikbaar voor zowel beheerders als gebruikers.'; | ||||||
| $lang['start']['mailcow_panel_detail'] = '<b>Domeinbeheerders</b> kunnen postvakken en aliassen aanmaken, wijzigen of verwijderen, domeinen veranderen of informatie krijgen over hun domein.<br /> | $lang['start']['mailcow_panel_detail'] = '<b>Domeinbeheerders</b> kunnen postvakken en aliassen aanmaken, wijzigen of verwijderen, domeinen veranderen of informatie krijgen over hun domein.<br> | ||||||
| 	<b>Gebruikers</b> kunnen tijdsgelimiteerde aliassen (spam-aliasses) aanmaken, hun wachtwoord wijzigen en spamfilterinstellingen wijzigen.'; | 	<b>Gebruikers</b> kunnen tijdsgelimiteerde aliassen (spam-aliasses) aanmaken, hun wachtwoord wijzigen en spamfilterinstellingen wijzigen.'; | ||||||
| $lang['start']['recommended_config'] = 'Aanbevoen instellingen (zonder ActiveSync)'; | $lang['start']['recommended_config'] = 'Aanbevoen instellingen (zonder ActiveSync)'; | ||||||
| $lang['start']['imap_smtp_server'] = 'IMAP- en SMTP-server gegevens'; | $lang['start']['imap_smtp_server'] = 'IMAP- en SMTP-server gegevens'; | ||||||
| $lang['start']['imap_smtp_server_description'] = 'Voor de best mogelijke ervaring bevelen wij <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a> aan.'; | $lang['start']['imap_smtp_server_description'] = 'Voor de best mogelijke ervaring bevelen wij <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a> aan.'; | ||||||
| $lang['start']['imap_smtp_server_badge'] = 'Lees/schrijf e-mails'; | $lang['start']['imap_smtp_server_badge'] = 'Lees/schrijf e-mails'; | ||||||
| $lang['start']['imap_smtp_server_auth_info'] = 'Gebruik uw volledige e-mailadres en de onversleutelde (PLAIN) verificatiemechanisme.<br /> | $lang['start']['imap_smtp_server_auth_info'] = 'Gebruik uw volledige e-mailadres en de onversleutelde (PLAIN) verificatiemechanisme.<br> | ||||||
| De aanmeldgegevens zullen door de server worden versleuteld.'; | De aanmeldgegevens zullen door de server worden versleuteld.'; | ||||||
| $lang['start']['managesieve'] = 'ManageSieve'; | $lang['start']['managesieve'] = 'ManageSieve'; | ||||||
| $lang['start']['managesieve_badge'] = 'Emailfilter'; | $lang['start']['managesieve_badge'] = 'Emailfilter'; | ||||||
| $lang['start']['managesieve_description'] = 'Gebruik <b>Mozilla Thunderbird</b> met een <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve addon</b></a>.<br />Start Thunderbird, open de add-on instellingen en sleep het gedownloadde xpi-bestand naar dit venster.<br />Servernaam <b>%s</b>, Poort <b>4190</b>. De aanmeldgegevens zijn gelijk aan de gegevens voor uw e-mail.'; | $lang['start']['managesieve_description'] = 'Gebruik <b>Mozilla Thunderbird</b> met een <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve addon</b></a>.<br>Start Thunderbird, open de add-on instellingen en sleep het gedownloadde xpi-bestand naar dit venster.<br>Servernaam <b>%s</b>, Poort <b>4190</b>. De aanmeldgegevens zijn gelijk aan de gegevens voor uw e-mail.'; | ||||||
| $lang['start']['service'] = 'Service'; | $lang['start']['service'] = 'Service'; | ||||||
| $lang['start']['encryption'] = 'Versleutelmethode'; | $lang['start']['encryption'] = 'Versleutelmethode'; | ||||||
| $lang['start']['help'] = 'Toon/Verberg Hulppaneel'; | $lang['start']['help'] = 'Toon/Verberg Hulppaneel'; | ||||||
| @ -215,7 +215,7 @@ $lang['delete']['remove_domainadmin_warning'] = '<b>Let op:</b> U staat op het p | |||||||
| $lang['delete']['remove_alias_warning'] = '<b>Let op:</b> U staat op het punt alias <b>%s</b> te verwijderen!'; | $lang['delete']['remove_alias_warning'] = '<b>Let op:</b> U staat op het punt alias <b>%s</b> te verwijderen!'; | ||||||
| $lang['delete']['remove_mailbox_warning'] = '<b>Let op::</b> U staat op het punt postvak <b>%s</b> te verwijderen!'; | $lang['delete']['remove_mailbox_warning'] = '<b>Let op::</b> U staat op het punt postvak <b>%s</b> te verwijderen!'; | ||||||
| $lang['delete']['remove_mailbox_details'] = 'Het postvak zal <b>permanent</b> worden verwijderd!'; | $lang['delete']['remove_mailbox_details'] = 'Het postvak zal <b>permanent</b> worden verwijderd!'; | ||||||
| $lang['delete']['remove_domain_details'] = 'Dit verwijdert ook de domeinaliassen. <br /><br /><b>Een domein moet leeg zijn alvorens deze verwijderd kan worden.</b>'; | $lang['delete']['remove_domain_details'] = 'Dit verwijdert ook de domeinaliassen. <br><br><b>Een domein moet leeg zijn alvorens deze verwijderd kan worden.</b>'; | ||||||
| $lang['delete']['remove_alias_details'] = '<b>Gebruikers zullen niet meer in staat zijn e-mails te ontvangen op -of te versturen vanaf- dit adres.</b>'; | $lang['delete']['remove_alias_details'] = '<b>Gebruikers zullen niet meer in staat zijn e-mails te ontvangen op -of te versturen vanaf- dit adres.</b>'; | ||||||
| $lang['delete']['remove_button'] = 'Verwijder'; | $lang['delete']['remove_button'] = 'Verwijder'; | ||||||
| $lang['delete']['previous'] = 'Vorige pagina'; | $lang['delete']['previous'] = 'Vorige pagina'; | ||||||
| @ -318,7 +318,7 @@ $lang['admin']['sr'] = 'Postifx verzendersbeperkingen'; | |||||||
| $lang['admin']['reset_defaults'] = 'Herstel standaardwaarden'; | $lang['admin']['reset_defaults'] = 'Herstel standaardwaarden'; | ||||||
| $lang['admin']['r_inactive'] = 'Inactieve beperkingen'; | $lang['admin']['r_inactive'] = 'Inactieve beperkingen'; | ||||||
| $lang['admin']['r_active'] = 'Actieve beperkignen'; | $lang['admin']['r_active'] = 'Actieve beperkignen'; | ||||||
| $lang['admin']['r_info'] = 'Grijze, uitgeschakelde, elementen in de lijst met actieve beperkingen zijn voor mailcow niet bekend als valide en kunnen daarom niet verplaatst worden.<br />U kunt nieuwe elementen toevoegen in <code>inc/vars.inc.php</code> om ze te (de)activeren.'; | $lang['admin']['r_info'] = 'Grijze, uitgeschakelde, elementen in de lijst met actieve beperkingen zijn voor mailcow niet bekend als valide en kunnen daarom niet verplaatst worden.<br>U kunt nieuwe elementen toevoegen in <code>inc/vars.inc.php</code> om ze te (de)activeren.'; | ||||||
| $lang['admin']['public_folders'] = 'Gemeenschappelijke mappen'; | $lang['admin']['public_folders'] = 'Gemeenschappelijke mappen'; | ||||||
| $lang['admin']['public_folders_text'] = 'Een namespace "Public" wordt aangemaakt. Onder deze map worden de automatisch aangemaakte postvakken in deze namespace weergegeven.'; | $lang['admin']['public_folders_text'] = 'Een namespace "Public" wordt aangemaakt. Onder deze map worden de automatisch aangemaakte postvakken in deze namespace weergegeven.'; | ||||||
| $lang['admin']['public_folder_name'] = 'Mapnaam <small>(alphanumeriek)</small>'; | $lang['admin']['public_folder_name'] = 'Mapnaam <small>(alphanumeriek)</small>'; | ||||||
| @ -367,4 +367,3 @@ $lang['admin']['site_not_found'] = 'Kan mailcow instellingenbeheer niet vinden'; | |||||||
| $lang['admin']['public_folder_empty'] = 'Namen van gemeenschappelijke mappen mogen niet leeg blijven.'; | $lang['admin']['public_folder_empty'] = 'Namen van gemeenschappelijke mappen mogen niet leeg blijven.'; | ||||||
| $lang['admin']['set_rr_failed'] = 'Kan Postfix beperkingen niet opleggen.'; | $lang['admin']['set_rr_failed'] = 'Kan Postfix beperkingen niet opleggen.'; | ||||||
| $lang['admin']['no_record'] = 'Geen vermelding'; | $lang['admin']['no_record'] = 'Geen vermelding'; | ||||||
| ?>
 |  | ||||||
|  | |||||||
| @ -1,9 +1,8 @@ | |||||||
| <?php | <?php | ||||||
| /* | /* | ||||||
| //
 |  * Portuguese (pt) language file - Português do Brasil (pt_BR) - ISO-8859-1 | ||||||
| //  Portuguese (pt) language file - Português do Brasil (pt_BR) - ISO-8859-1
 |  | ||||||
| //
 |  | ||||||
|  */ |  */ | ||||||
|  | 
 | ||||||
| $lang['footer']['loading'] = "Aguarde..."; | $lang['footer']['loading'] = "Aguarde..."; | ||||||
| $lang['getmail']['no_status'] = "Nenhum registro anterior encontrado"; | $lang['getmail']['no_status'] = "Nenhum registro anterior encontrado"; | ||||||
| $lang['dkim']['confirm'] = "Tem certeza?"; | $lang['dkim']['confirm'] = "Tem certeza?"; | ||||||
| @ -131,7 +130,7 @@ $lang['user']['spamfilter_yellow'] = 'Amarelo: essa mensagem <b>pode ser</b> spa | |||||||
| $lang['user']['spamfilter_red'] = 'Vermelho: essa mensagem <b>é mesmo spam</b> e será rejeitada definitivamente pelo servidor'; | $lang['user']['spamfilter_red'] = 'Vermelho: essa mensagem <b>é mesmo spam</b> e será rejeitada definitivamente pelo servidor'; | ||||||
| $lang['user']['spamfilter_default_score'] = 'Valores padrão:'; | $lang['user']['spamfilter_default_score'] = 'Valores padrão:'; | ||||||
| $lang['user']['spamfilter_hint'] = 'O primeiro espaço indica "baixo nível de spam", a segunda representa "alto nível de spam".'; | $lang['user']['spamfilter_hint'] = 'O primeiro espaço indica "baixo nível de spam", a segunda representa "alto nível de spam".'; | ||||||
| $lang['user']['tls_policy_warning'] = '<strong>Aviso:</strong> Se você selecionar para forçar o envio encryptado , alguns emails poderão ser rejeitados.<br />Mensages que não satisfizerem as politicas dos outros servidores serão rejeitadas definitivamente.'; | $lang['user']['tls_policy_warning'] = '<strong>Aviso:</strong> Se você selecionar para forçar o envio encryptado , alguns emails poderão ser rejeitados.<br>Mensages que não satisfizerem as politicas dos outros servidores serão rejeitadas definitivamente.'; | ||||||
| $lang['user']['tls_policy'] = 'Regras de Encryptação'; | $lang['user']['tls_policy'] = 'Regras de Encryptação'; | ||||||
| $lang['user']['tls_enforce_in'] = 'Forçar TLS na entrada'; | $lang['user']['tls_enforce_in'] = 'Forçar TLS na entrada'; | ||||||
| $lang['user']['tls_enforce_out'] = 'Forçar TLS na saída'; | $lang['user']['tls_enforce_out'] = 'Forçar TLS na saída'; | ||||||
| @ -144,17 +143,17 @@ $lang['start']['start_sogo'] = 'Abrir SOGo'; | |||||||
| $lang['start']['mailcow_apps_detail'] = 'Use um mailcow app para acessar seus emails, calendário, contatos e outras informações.'; | $lang['start']['mailcow_apps_detail'] = 'Use um mailcow app para acessar seus emails, calendário, contatos e outras informações.'; | ||||||
| $lang['start']['mailcow_panel'] = 'Iniciar mailcow UI'; | $lang['start']['mailcow_panel'] = 'Iniciar mailcow UI'; | ||||||
| $lang['start']['mailcow_panel_description'] = 'O mailcow UI está disponível para Administradores e Usuários.'; | $lang['start']['mailcow_panel_description'] = 'O mailcow UI está disponível para Administradores e Usuários.'; | ||||||
| $lang['start']['mailcow_panel_detail'] = '<b>Administradores:</b> podem criar, alterar ou apagar contas e apelidos , alterar domínios e outras informações de seus domínios atribuídos.<br /> | $lang['start']['mailcow_panel_detail'] = '<b>Administradores:</b> podem criar, alterar ou apagar contas e apelidos , alterar domínios e outras informações de seus domínios atribuídos.<br> | ||||||
| 	<b>Usuários:</b> podem criar apelidos por tempo determinado , alterar senha e configuração do nível do filtro de spam.'; | 	<b>Usuários:</b> podem criar apelidos por tempo determinado , alterar senha e configuração do nível do filtro de spam.'; | ||||||
| $lang['start']['recommended_config'] = 'Configuração recomendada (sem o ActiveSync)'; | $lang['start']['recommended_config'] = 'Configuração recomendada (sem o ActiveSync)'; | ||||||
| $lang['start']['imap_smtp_server'] = 'IMAP e SMTP server data'; | $lang['start']['imap_smtp_server'] = 'IMAP e SMTP server data'; | ||||||
| $lang['start']['imap_smtp_server_description'] = 'Para uma melhor utilização use o <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.'; | $lang['start']['imap_smtp_server_description'] = 'Para uma melhor utilização use o <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.'; | ||||||
| $lang['start']['imap_smtp_server_badge'] = 'Ler/Criar emails'; | $lang['start']['imap_smtp_server_badge'] = 'Ler/Criar emails'; | ||||||
| $lang['start']['imap_smtp_server_auth_info'] = 'Utilize o endereço de email completo com o método de autentucação PLAIN.<br /> | $lang['start']['imap_smtp_server_auth_info'] = 'Utilize o endereço de email completo com o método de autentucação PLAIN.<br> | ||||||
| Os dados de login serão encryptados pelo servidor.'; | Os dados de login serão encryptados pelo servidor.'; | ||||||
| $lang['start']['managesieve'] = 'ManageSieve'; | $lang['start']['managesieve'] = 'ManageSieve'; | ||||||
| $lang['start']['managesieve_badge'] = 'Filtro de email'; | $lang['start']['managesieve_badge'] = 'Filtro de email'; | ||||||
| $lang['start']['managesieve_description'] = 'Utilize o <b>Mozilla Thunderbird</b> com a <a style="text-decoration:none" target="_blank" href="%s"><b>extensão para sieve</b></a>.<br />Inicie o Thunderbird, acesse os Complementos e solte o arquivo xpi que foi baixado, na janela aberta.<br />Preencha com o servidor <b>%s</b>, porta <b>4190</b> se for solicitado. Os dados de acesso são os mesmos da sua conta de email.'; | $lang['start']['managesieve_description'] = 'Utilize o <b>Mozilla Thunderbird</b> com a <a style="text-decoration:none" target="_blank" href="%s"><b>extensão para sieve</b></a>.<br>Inicie o Thunderbird, acesse os Complementos e solte o arquivo xpi que foi baixado, na janela aberta.<br>Preencha com o servidor <b>%s</b>, porta <b>4190</b> se for solicitado. Os dados de acesso são os mesmos da sua conta de email.'; | ||||||
| $lang['start']['service'] = 'Serviço'; | $lang['start']['service'] = 'Serviço'; | ||||||
| $lang['start']['encryption'] = 'Método de criptografia'; | $lang['start']['encryption'] = 'Método de criptografia'; | ||||||
| $lang['start']['help'] = 'Mostrar/Ocultar painel de ajuda'; | $lang['start']['help'] = 'Mostrar/Ocultar painel de ajuda'; | ||||||
| @ -206,7 +205,7 @@ $lang['delete']['remove_domainadmin_warning'] = '<b>Aviso:</b> Você está prest | |||||||
| $lang['delete']['remove_alias_warning'] = '<b>Aviso:</b> Você está prestes a remover o Apelido <b>%s</b>!'; | $lang['delete']['remove_alias_warning'] = '<b>Aviso:</b> Você está prestes a remover o Apelido <b>%s</b>!'; | ||||||
| $lang['delete']['remove_mailbox_warning'] = '<b>Aviso:</b> Você está prestes a remover a Conta <b>%s</b>!'; | $lang['delete']['remove_mailbox_warning'] = '<b>Aviso:</b> Você está prestes a remover a Conta <b>%s</b>!'; | ||||||
| $lang['delete']['remove_mailbox_details'] = 'A Conta será <b>excluída permanentemente</b>!'; | $lang['delete']['remove_mailbox_details'] = 'A Conta será <b>excluída permanentemente</b>!'; | ||||||
| $lang['delete']['remove_domain_details'] = 'Esse procedimento removerá o Encaminhamento de Domínio.<br /><br /><b>O Domínio deve estar sem nenhuma configuração para ser removido.</b>'; | $lang['delete']['remove_domain_details'] = 'Esse procedimento removerá o Encaminhamento de Domínio.<br><br><b>O Domínio deve estar sem nenhuma configuração para ser removido.</b>'; | ||||||
| $lang['delete']['remove_alias_details'] = 'Os usuários não poderão mais enviar ou receber emails através deste endereço.</b>'; | $lang['delete']['remove_alias_details'] = 'Os usuários não poderão mais enviar ou receber emails através deste endereço.</b>'; | ||||||
| $lang['delete']['remove_button'] = 'Remover'; | $lang['delete']['remove_button'] = 'Remover'; | ||||||
| $lang['delete']['previous'] = 'Voltar'; | $lang['delete']['previous'] = 'Voltar'; | ||||||
| @ -304,7 +303,7 @@ $lang['admin']['reset_defaults'] = 'Voltar configuração padrão'; | |||||||
| $lang['admin']['sr'] = 'Postfix Sender Restrictions'; | $lang['admin']['sr'] = 'Postfix Sender Restrictions'; | ||||||
| $lang['admin']['r_inactive'] = 'Restrictions Inativos'; | $lang['admin']['r_inactive'] = 'Restrictions Inativos'; | ||||||
| $lang['admin']['r_active'] = 'Restrictions Ativos'; | $lang['admin']['r_active'] = 'Restrictions Ativos'; | ||||||
| $lang['admin']['r_info'] = 'Greyed out/disabled elements on the list of active restrictions are not known as valid restrictions to mailcow and cannot be moved. Unknown restrictions will be set in order of appearance anyway. <br />You can add new elements in <code>inc/vars.local.inc.php</code> to be able to toggle them.'; | $lang['admin']['r_info'] = 'Greyed out/disabled elements on the list of active restrictions are not known as valid restrictions to mailcow and cannot be moved. Unknown restrictions will be set in order of appearance anyway. <br>You can add new elements in <code>inc/vars.local.inc.php</code> to be able to toggle them.'; | ||||||
| $lang['admin']['public_folders'] = 'Pastas públicas'; | $lang['admin']['public_folders'] = 'Pastas públicas'; | ||||||
| $lang['admin']['public_folders_text'] = 'A pasta "Public" esta criada. Abaixo a pasta pública indica o nome da primeira pasta criada automaticamente na conta, com este nome.'; | $lang['admin']['public_folders_text'] = 'A pasta "Public" esta criada. Abaixo a pasta pública indica o nome da primeira pasta criada automaticamente na conta, com este nome.'; | ||||||
| $lang['admin']['public_folder_name'] = 'Nome da Pasta <small>(alfa numérico)</small>'; | $lang['admin']['public_folder_name'] = 'Nome da Pasta <small>(alfa numérico)</small>'; | ||||||
| @ -353,4 +352,3 @@ $lang['admin']['site_not_found'] = 'Não foi possível localizar as configuraç | |||||||
| $lang['admin']['public_folder_empty'] = 'O nome da Pasta Pública deve ser preenchido'; | $lang['admin']['public_folder_empty'] = 'O nome da Pasta Pública deve ser preenchido'; | ||||||
| $lang['admin']['set_rr_failed'] = 'Não foi possível alterar Postfix Restrictions'; | $lang['admin']['set_rr_failed'] = 'Não foi possível alterar Postfix Restrictions'; | ||||||
| $lang['admin']['no_record'] = 'Nenhum registro'; | $lang['admin']['no_record'] = 'Nenhum registro'; | ||||||
| ?>
 |  | ||||||
|  | |||||||
| @ -1,14 +1,13 @@ | |||||||
| <?php | <?php | ||||||
| /* | /* | ||||||
| //
 |  * Russian language file | ||||||
| //  Russian language file
 |  | ||||||
| //
 |  | ||||||
|  */ |  */ | ||||||
|  | 
 | ||||||
| $lang['footer']['loading'] = "Пожалуйста, подождите..."; | $lang['footer']['loading'] = "Пожалуйста, подождите..."; | ||||||
| $lang['header']['restart_sogo'] = "Перезагрузить SOGo"; | $lang['header']['restart_sogo'] = "Перезагрузить SOGo"; | ||||||
| $lang['footer']['restart_sogo'] = "Перезагрузить SOGo"; | $lang['footer']['restart_sogo'] = "Перезагрузить SOGo"; | ||||||
| $lang['footer']['restart_now'] = "Перезагрузить сейчас"; | $lang['footer']['restart_now'] = "Перезагрузить сейчас"; | ||||||
| $lang['footer']['restart_sogo_info'] = "Некоторые операции, например при добавлении домена, требуют перезагрузить SOGo, для вступления в силу внесенных изменений.<br /><br /><b>Важно:</b> Перезагрузка может занять некоторое время, дождитесь ее окончания."; | $lang['footer']['restart_sogo_info'] = "Некоторые операции, например при добавлении домена, требуют перезагрузить SOGo, для вступления в силу внесенных изменений.<br><br><b>Важно:</b> Перезагрузка может занять некоторое время, дождитесь ее окончания."; | ||||||
| $lang['dkim']['confirm'] = "Вы уверены?"; | $lang['dkim']['confirm'] = "Вы уверены?"; | ||||||
| $lang['danger']['dkim_not_found'] = "DKIM ключ не найден"; | $lang['danger']['dkim_not_found'] = "DKIM ключ не найден"; | ||||||
| $lang['danger']['dkim_remove_failed'] = "Не удается удалить выбранный DKIM ключ"; | $lang['danger']['dkim_remove_failed'] = "Не удается удалить выбранный DKIM ключ"; | ||||||
| @ -146,7 +145,7 @@ $lang['user']['spamfilter_red'] = "Красный: это сообщение я | |||||||
| $lang['user']['spamfilter_default_score'] = "Значения по умолчанию"; | $lang['user']['spamfilter_default_score'] = "Значения по умолчанию"; | ||||||
| $lang['user']['spamfilter_hint'] = 'The first value describes the "low spam score", the second represents the "high spam score".'; | $lang['user']['spamfilter_hint'] = 'The first value describes the "low spam score", the second represents the "high spam score".'; | ||||||
| $lang['user']['spamfilter_table_domain_policy'] = "n/a (domain policy)"; | $lang['user']['spamfilter_table_domain_policy'] = "n/a (domain policy)"; | ||||||
| $lang['user']['tls_policy_warning'] = '<strong>Warning:</strong> If you decide to enforce encrypted mail transfer, you may lose emails.<br />Messages to not satisfy the policy will be bounced with a hard fail by the mail system.'; | $lang['user']['tls_policy_warning'] = '<strong>Warning:</strong> If you decide to enforce encrypted mail transfer, you may lose emails.<br>Messages to not satisfy the policy will be bounced with a hard fail by the mail system.'; | ||||||
| $lang['user']['tls_policy'] = "Настройки TLS шифрования"; | $lang['user']['tls_policy'] = "Настройки TLS шифрования"; | ||||||
| $lang['user']['tls_enforce_in'] = "Принудительное TLS входящих"; | $lang['user']['tls_enforce_in'] = "Принудительное TLS входящих"; | ||||||
| $lang['user']['tls_enforce_out'] = "Принудительное TLS исходящих"; | $lang['user']['tls_enforce_out'] = "Принудительное TLS исходящих"; | ||||||
| @ -156,12 +155,12 @@ $lang['user']['misc_delete_profile'] = "Другие настройки проф | |||||||
| $lang['user']['tag_handling'] = 'Set handling for tagged mail'; | $lang['user']['tag_handling'] = 'Set handling for tagged mail'; | ||||||
| $lang['user']['tag_in_subfolder'] = "В подпапку"; | $lang['user']['tag_in_subfolder'] = "В подпапку"; | ||||||
| $lang['user']['tag_in_subject'] = "В теме"; | $lang['user']['tag_in_subject'] = "В теме"; | ||||||
| $lang['user']['tag_help_explain'] = 'In subfolder: a new subfolder named after the tag will be created below INBOX ("INBOX/Facebook").<br /> | $lang['user']['tag_help_explain'] = 'In subfolder: a new subfolder named after the tag will be created below INBOX ("INBOX/Facebook").<br> | ||||||
| In subject: the tags name will be prepended to the mails subject, example: "[Facebook] Meine Neuigkeiten".'; | In subject: the tags name will be prepended to the mails subject, example: "[Facebook] Meine Neuigkeiten".'; | ||||||
| $lang['user']['tag_help_example'] = 'Example for a tagged email address: ich<b>+Facebook</b>@example.org'; | $lang['user']['tag_help_example'] = 'Example for a tagged email address: ich<b>+Facebook</b>@example.org'; | ||||||
| $lang['user']['eas_reset'] = "Сбросить кеш ActiveSync устройств"; | $lang['user']['eas_reset'] = "Сбросить кеш ActiveSync устройств"; | ||||||
| $lang['user']['eas_reset_now'] = "Сбросить сейчас"; | $lang['user']['eas_reset_now'] = "Сбросить сейчас"; | ||||||
| $lang['user']['eas_reset_help'] = 'In many cases a device cache reset will help to recover a broken ActiveSync profile.<br /><b>Attention:</b> All elements will be redownloaded!'; | $lang['user']['eas_reset_help'] = 'In many cases a device cache reset will help to recover a broken ActiveSync profile.<br><b>Attention:</b> All elements will be redownloaded!'; | ||||||
| $lang['user']['encryption'] = "Шифрование"; | $lang['user']['encryption'] = "Шифрование"; | ||||||
| $lang['user']['username'] = "Логин"; | $lang['user']['username'] = "Логин"; | ||||||
| $lang['user']['password'] = "Пароль"; | $lang['user']['password'] = "Пароль"; | ||||||
| @ -180,17 +179,17 @@ $lang['start']['start_sogo'] = "Открыть SOGo"; | |||||||
| $lang['start']['mailcow_apps_detail'] = "Приложения для доступа к электронной почте, календарю, контактам и т.д."; | $lang['start']['mailcow_apps_detail'] = "Приложения для доступа к электронной почте, календарю, контактам и т.д."; | ||||||
| $lang['start']['mailcow_panel'] = 'Start mailcow UI'; | $lang['start']['mailcow_panel'] = 'Start mailcow UI'; | ||||||
| $lang['start']['mailcow_panel_description'] = "Пользовательский интерфейс mailcow доступен для администраторов и пользователей почтовых ящиков."; | $lang['start']['mailcow_panel_description'] = "Пользовательский интерфейс mailcow доступен для администраторов и пользователей почтовых ящиков."; | ||||||
| $lang['start']['mailcow_panel_detail'] = "<b>Администраторы</b> могут создавать, изменять или удалять почтовые ящики, псевдонимы и другие административные настройки.<br />
 | $lang['start']['mailcow_panel_detail'] = "<b>Администраторы</b> могут создавать, изменять или удалять почтовые ящики, псевдонимы и другие административные настройки.<br>
 | ||||||
| 	<b>Пользователи</b> могут изменять пароль, создавать временные псевдонимы (спам псевдонимы), фильтры спама и другие доступные настройки своего профиля.";
 | 	<b>Пользователи</b> могут изменять пароль, создавать временные псевдонимы (спам псевдонимы), фильтры спама и другие доступные настройки своего профиля.";
 | ||||||
| $lang['start']['recommended_config'] = "Рекомендуемые настройки (без ActiveSync)"; | $lang['start']['recommended_config'] = "Рекомендуемые настройки (без ActiveSync)"; | ||||||
| $lang['start']['imap_smtp_server'] = 'IMAP- and SMTP server data'; | $lang['start']['imap_smtp_server'] = 'IMAP- and SMTP server data'; | ||||||
| $lang['start']['imap_smtp_server_description'] = 'For the best experience we recommend to use <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.'; | $lang['start']['imap_smtp_server_description'] = 'For the best experience we recommend to use <a href="%s" target="_blank"><b>Mozilla Thunderbird</b></a>.'; | ||||||
| $lang['start']['imap_smtp_server_badge'] = 'Read/Write emails'; | $lang['start']['imap_smtp_server_badge'] = 'Read/Write emails'; | ||||||
| $lang['start']['imap_smtp_server_auth_info'] = 'Please use your full email address and the PLAIN authentication mechanism.<br /> | $lang['start']['imap_smtp_server_auth_info'] = 'Please use your full email address and the PLAIN authentication mechanism.<br> | ||||||
| Your login data will be encrypted by the server-side mandatory encryption.'; | Your login data will be encrypted by the server-side mandatory encryption.'; | ||||||
| $lang['start']['managesieve'] = 'ManageSieve'; | $lang['start']['managesieve'] = 'ManageSieve'; | ||||||
| $lang['start']['managesieve_badge'] = "Фильтр почты"; | $lang['start']['managesieve_badge'] = "Фильтр почты"; | ||||||
| $lang['start']['managesieve_description'] = 'Please use <b>Mozilla Thunderbird</b> with the <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve extension</b></a>.<br />Start Thunderbird, open the add-on settings and drop the newly downloaded xpi file into the opened window.<br />The server name is <b>%s</b>, use port <b>4190</b> if you are asked for. The login data match your email login.'; | $lang['start']['managesieve_description'] = 'Please use <b>Mozilla Thunderbird</b> with the <a style="text-decoration:none" target="_blank" href="%s"><b>nightly sieve extension</b></a>.<br>Start Thunderbird, open the add-on settings and drop the newly downloaded xpi file into the opened window.<br>The server name is <b>%s</b>, use port <b>4190</b> if you are asked for. The login data match your email login.'; | ||||||
| $lang['start']['service'] = "Сервисы"; | $lang['start']['service'] = "Сервисы"; | ||||||
| $lang['start']['encryption'] = "Метод шифрования"; | $lang['start']['encryption'] = "Метод шифрования"; | ||||||
| $lang['start']['help'] = "Справка"; | $lang['start']['help'] = "Справка"; | ||||||
| @ -255,7 +254,7 @@ $lang['delete']['remove_mailbox_warning'] = "<b>Внимание:</b> Вы со | |||||||
| $lang['delete']['remove_mailbox_details'] = "Почтовый ящик будет <b>очищен навсегда</b>!"; | $lang['delete']['remove_mailbox_details'] = "Почтовый ящик будет <b>очищен навсегда</b>!"; | ||||||
| $lang['delete']['remove_resource_warning'] = "<b>Внимание:</b> Вы собираетесь удалить ресурс <b>%s</b>!"; | $lang['delete']['remove_resource_warning'] = "<b>Внимание:</b> Вы собираетесь удалить ресурс <b>%s</b>!"; | ||||||
| $lang['delete']['remove_resource_details'] = "Ресурс будет <b>очищен навсегда</b>!"; | $lang['delete']['remove_resource_details'] = "Ресурс будет <b>очищен навсегда</b>!"; | ||||||
| $lang['delete']['remove_domain_details'] = "Это также удаляет псевдонимы доменов.<br /><br /><b>Домен должен быть пустым для удаления.</b>"; | $lang['delete']['remove_domain_details'] = "Это также удаляет псевдонимы доменов.<br><br><b>Домен должен быть пустым для удаления.</b>"; | ||||||
| $lang['delete']['remove_syncjob_details'] = "Объекты из этого задания синхронизации больше не будут извлекаться с удаленного сервера."; | $lang['delete']['remove_syncjob_details'] = "Объекты из этого задания синхронизации больше не будут извлекаться с удаленного сервера."; | ||||||
| $lang['delete']['remove_alias_details'] = "Пользователи больше не смогут получать почту или отправлять почту с этого адреса.</b>"; | $lang['delete']['remove_alias_details'] = "Пользователи больше не смогут получать почту или отправлять почту с этого адреса.</b>"; | ||||||
| $lang['delete']['remove_button'] = "Удалить"; | $lang['delete']['remove_button'] = "Удалить"; | ||||||
| @ -265,8 +264,8 @@ $lang['edit']['save'] = "Сохранить"; | |||||||
| $lang['edit']['username'] = "Логин"; | $lang['edit']['username'] = "Логин"; | ||||||
| $lang['edit']['hostname'] = "Имя хоста"; | $lang['edit']['hostname'] = "Имя хоста"; | ||||||
| $lang['edit']['encryption'] = "Шифрование"; | $lang['edit']['encryption'] = "Шифрование"; | ||||||
| $lang['edit']['maxage'] = 'Maximum age of messages in days that will be polled from remote<br /><small>(0 = ignore age)</small>'; | $lang['edit']['maxage'] = 'Maximum age of messages in days that will be polled from remote<br><small>(0 = ignore age)</small>'; | ||||||
| $lang['edit']['subfolder2'] = 'Sync into subfolder on destination<br /><small>(empty = do not use subfolder)</small>'; | $lang['edit']['subfolder2'] = 'Sync into subfolder on destination<br><small>(empty = do not use subfolder)</small>'; | ||||||
| $lang['edit']['mins_interval'] = "Интервал (минуты)"; | $lang['edit']['mins_interval'] = "Интервал (минуты)"; | ||||||
| $lang['edit']['exclude'] = 'Exclude objects (regex)'; | $lang['edit']['exclude'] = 'Exclude objects (regex)'; | ||||||
| $lang['edit']['save'] = "Сохранить"; | $lang['edit']['save'] = "Сохранить"; | ||||||
| @ -385,8 +384,8 @@ $lang['tfa']['confirm'] = "Подтвердить"; | |||||||
| $lang['tfa']['otp'] = "Одноразовый пароль"; | $lang['tfa']['otp'] = "Одноразовый пароль"; | ||||||
| $lang['tfa']['trash_login'] = "Некорректный логин"; | $lang['tfa']['trash_login'] = "Некорректный логин"; | ||||||
| $lang['tfa']['select'] = "Пожалуйста выберите"; | $lang['tfa']['select'] = "Пожалуйста выберите"; | ||||||
| $lang['tfa']['waiting_usb_auth'] = "<i>Ждем USB-устройства...</i><br /><br />Пожалуйста, нажмите кнопку на USB-устройстве U2F."; | $lang['tfa']['waiting_usb_auth'] = "<i>Ждем USB-устройства...</i><br><br>Пожалуйста, нажмите кнопку на USB-устройстве U2F."; | ||||||
| $lang['tfa']['waiting_usb_register'] = "<i>Ждем USB-устройства...</i><br /><br />Пожалуйста, введите свой пароль выше и подтвердите регистрацию U2F, нажав кнопку на USB-устройстве U2F."; | $lang['tfa']['waiting_usb_register'] = "<i>Ждем USB-устройства...</i><br><br>Пожалуйста, введите свой пароль выше и подтвердите регистрацию U2F, нажав кнопку на USB-устройстве U2F."; | ||||||
| $lang['admin']['search_domain_da'] = "Поиск домена"; | $lang['admin']['search_domain_da'] = "Поиск домена"; | ||||||
| $lang['admin']['restrictions'] = "Настройки Postfix"; | $lang['admin']['restrictions'] = "Настройки Postfix"; | ||||||
| $lang['admin']['rr'] = "Настройки получателя"; | $lang['admin']['rr'] = "Настройки получателя"; | ||||||
| @ -395,7 +394,7 @@ $lang['admin']['reset_defaults'] = "Сброс по умолчанию"; | |||||||
| $lang['admin']['sr'] = "Настройки отправителя"; | $lang['admin']['sr'] = "Настройки отправителя"; | ||||||
| $lang['admin']['r_inactive'] = "Неактивные элементы"; | $lang['admin']['r_inactive'] = "Неактивные элементы"; | ||||||
| $lang['admin']['r_active'] = "Активные элементы"; | $lang['admin']['r_active'] = "Активные элементы"; | ||||||
| $lang['admin']['r_info'] = "Выделенные серым цветом элементы в списке активных элементов заблокированы от перемещения в список неактивных элементов, так как их отключение может непредсказуемо повлиять на работу mailcow. Unknown restrictions will be set in order of appearance anyway. <br />Вы можете добавить новые элементы в <code>inc/vars.local.inc.php</code>, что бы иметь возможно переключать их."; | $lang['admin']['r_info'] = "Выделенные серым цветом элементы в списке активных элементов заблокированы от перемещения в список неактивных элементов, так как их отключение может непредсказуемо повлиять на работу mailcow. Unknown restrictions will be set in order of appearance anyway. <br>Вы можете добавить новые элементы в <code>inc/vars.local.inc.php</code>, что бы иметь возможно переключать их."; | ||||||
| $lang['admin']['public_folders'] = "Общие папки"; | $lang['admin']['public_folders'] = "Общие папки"; | ||||||
| $lang['admin']['public_folders_text'] = 'A namespace "Public" is created. Below\'s public folder name indicates the name of the first auto-created mailbox within this namespace.'; | $lang['admin']['public_folders_text'] = 'A namespace "Public" is created. Below\'s public folder name indicates the name of the first auto-created mailbox within this namespace.'; | ||||||
| $lang['admin']['public_folder_name'] = "Имя папки"; | $lang['admin']['public_folder_name'] = "Имя папки"; | ||||||
| @ -448,4 +447,3 @@ $lang['admin']['site_not_found'] = "Не удается найти конфиг | |||||||
| $lang['admin']['public_folder_empty'] = "Имя общей папки не может быть пустым"; | $lang['admin']['public_folder_empty'] = "Имя общей папки не может быть пустым"; | ||||||
| $lang['admin']['set_rr_failed'] = "Не установить настройки Postfix"; | $lang['admin']['set_rr_failed'] = "Не установить настройки Postfix"; | ||||||
| $lang['admin']['no_record'] = "Нет записей"; | $lang['admin']['no_record'] = "Нет записей"; | ||||||
| ?>
 |  | ||||||
|  | |||||||
| @ -152,7 +152,7 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI']; | |||||||
|                 <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="alias" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
 |                 <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="alias" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
 | ||||||
|                 <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
 |                 <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
 | ||||||
|                 <ul class="dropdown-menu"> |                 <ul class="dropdown-menu"> | ||||||
|                   <li><a id="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"active":"1","active1":"12"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
 |                   <li><a id="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
 | ||||||
|                   <li><a id="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
 |                   <li><a id="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
 | ||||||
|                   <li role="separator" class="divider"></li> |                   <li role="separator" class="divider"></li> | ||||||
|                   <li><a id="delete_selected" data-id="alias" data-api-url='delete/alias' href="#"><?=$lang['mailbox']['remove'];?></a></li>
 |                   <li><a id="delete_selected" data-id="alias" data-api-url='delete/alias' href="#"><?=$lang['mailbox']['remove'];?></a></li>
 | ||||||
|  | |||||||
| @ -408,70 +408,20 @@ elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == ' | |||||||
| 	</div> | 	</div> | ||||||
| 	<div role="tabpanel" class="tab-pane" id="Syncjobs"> | 	<div role="tabpanel" class="tab-pane" id="Syncjobs"> | ||||||
| 		<div class="table-responsive"> | 		<div class="table-responsive"> | ||||||
| 		<table class="table table-striped" id="timelimitedaliases"> |       <table class="table table-striped" id="sync_job_table"></table> | ||||||
| 			<thead> | 		</div> | ||||||
| 			<tr> |     <div class="mass-actions-user"> | ||||||
| 				<th class="sort-table" style="min-width: 96px;">Server:Port</th> |       <div class="btn-group"> | ||||||
| 				<th class="sort-table" style="min-width: 96px;"><?=$lang['user']['encryption'];?></th>
 |         <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="syncjob" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
 | ||||||
| 				<th class="sort-table" style="min-width: 96px;"><?=$lang['user']['username'];?></th>
 |         <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
 | ||||||
| 				<th class="sort-table" style="min-width: 96px;"><?=$lang['user']['excludes'];?></th>
 |         <ul class="dropdown-menu"> | ||||||
| 				<th class="sort-table" style="min-width: 35px;"><?=$lang['user']['interval'];?></th>
 |           <li><a id="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
 | ||||||
| 				<th class="sort-table" style="min-width: 35px;"><?=$lang['user']['last_run'];?></th>
 |           <li><a id="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
 | ||||||
| 				<th class="sort-table" style="min-width: 35px;">Log</th> |           <li role="separator" class="divider"></li> | ||||||
| 				<th class="sort-table" style="max-width: 95px;"><?=$lang['user']['active'];?></th>
 |           <li><a id="delete_selected" data-id="syncjob" data-api-url='delete/syncjob' href="#"><?=$lang['mailbox']['remove'];?></a></li>
 | ||||||
| 				<th style="text-align: right; min-width: 200px;"><?=$lang['user']['action'];?></th>
 |         </ul> | ||||||
| 			</tr> |         <a class="btn btn-sm btn-success" href="/add.php?syncjob"><?=$lang['user']['create_syncjob'];?></a>
 | ||||||
| 			</thead> |  | ||||||
| 			<tbody> |  | ||||||
| 			<?php |  | ||||||
|       $get_syncjobs = get_syncjobs($username); |  | ||||||
| 			if (!empty($get_syncjobs)): |  | ||||||
| 			foreach ($get_syncjobs as $row): |  | ||||||
| 			?>
 |  | ||||||
| 				<tr id="data"> |  | ||||||
| 				<td><?=htmlspecialchars($row['host1'] . ':' . $row['port1']);?></td>
 |  | ||||||
| 				<td><?=htmlspecialchars($row['enc1']);?></td>
 |  | ||||||
| 				<td><?=htmlspecialchars($row['user1']);?></td>
 |  | ||||||
| 				<td><?=($row['exclude'] == '') ? '✘' : '<code>' . $row['exclude'] . '</code>';?></td>
 |  | ||||||
| 				<td><?=htmlspecialchars($row['mins_interval']);?> min</td>
 |  | ||||||
| 				<td><?=(empty($row['last_run'])) ? '✘' : htmlspecialchars(date($lang['user']['syncjob_full_date'], strtotime($row['last_run'])));?></td>
 |  | ||||||
| 				<td> |  | ||||||
|         <?php |  | ||||||
|         if (empty($row['returned_text'])) { |  | ||||||
|           echo '✘'; |  | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|         ?>
 |  | ||||||
|           <a href="#logModal" data-toggle="modal" data-log-text="<?=htmlspecialchars($row['returned_text']);?>">Open logs</a> |  | ||||||
|         <?php |  | ||||||
|         } |  | ||||||
|         ?>
 |  | ||||||
|         </td> |  | ||||||
| 				<td><?=($row['active'] == '1') ? '✔' : '✘';?></td>
 |  | ||||||
|         <td style="text-align: right;"> |  | ||||||
|           <div class="btn-group"> |  | ||||||
|             <a href="/edit.php?syncjob=<?=urlencode($row['id']);?>" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> <?=$lang['user']['edit'];?></a>
 |  | ||||||
|             <a href="/delete.php?syncjob=<?=urlencode($row['id']);?>" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> <?=$lang['user']['remove'];?></a>
 |  | ||||||
|       </div> |       </div> | ||||||
|         </td> |  | ||||||
| 				</tr> |  | ||||||
| 			<?php |  | ||||||
| 			endforeach; |  | ||||||
| 			else: |  | ||||||
| 			?>
 |  | ||||||
| 				<tr id="no-data"><td colspan="9" style="text-align: center; font-style: italic;"><?=$lang['user']['no_record'];?></td></tr>
 |  | ||||||
| 			<?php |  | ||||||
| 			endif;	 |  | ||||||
| 			?>
 |  | ||||||
| 			</tbody> |  | ||||||
|       <tfoot> |  | ||||||
|         <tr id="no-data"> |  | ||||||
|           <td colspan="9" style="text-align: center; font-style: normal; border-top: 1px solid #e7e7e7;"> |  | ||||||
|             <a href="/add.php?syncjob"><?=$lang['user']['create_syncjob'];?></a>
 |  | ||||||
|           </td> |  | ||||||
|         </tr> |  | ||||||
|       </tfoot> |  | ||||||
| 		</table> |  | ||||||
|     </div> |     </div> | ||||||
| 		</div> | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| @ -533,7 +483,15 @@ if (isset($_SESSION['mailcow_cc_role']) && ($_SESSION['mailcow_cc_role'] == "use | |||||||
|   </div> |   </div> | ||||||
| </div> | </div> | ||||||
| </div> <!-- /container --> | </div> <!-- /container --> | ||||||
| <script src="js/sorttable.js"></script> | <script type='text/javascript'> | ||||||
|  | <?php | ||||||
|  | $lang_user = json_encode($lang['user']); | ||||||
|  | echo "var lang = ". $lang_user . ";\n"; | ||||||
|  | echo "var csrf_token = '". $_SESSION['CSRF']['TOKEN'] . "';\n"; | ||||||
|  | echo "var pagination_size = '". $PAGINATION_SIZE . "';\n"; | ||||||
|  | ?>
 | ||||||
|  | </script> | ||||||
|  | <script src="js/footable.min.js"></script> | ||||||
| <script src="js/user.js"></script> | <script src="js/user.js"></script> | ||||||
| <?php | <?php | ||||||
| require_once("inc/footer.inc.php"); | require_once("inc/footer.inc.php"); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 André Peters
						André Peters