Merge pull request #5922 from mailcow/staging

2024-06
This commit is contained in:
Niklas Meyer
2024-06-27 11:15:53 +02:00
committed by GitHub
73 changed files with 11377 additions and 1346 deletions

View File

@@ -26,7 +26,7 @@ jobs:
password: ${{ secrets.BACKUPIMAGEBUILD_ACTION_DOCKERHUB_TOKEN }} password: ${{ secrets.BACKUPIMAGEBUILD_ACTION_DOCKERHUB_TOKEN }}
- name: Build and push - name: Build and push
uses: docker/build-push-action@v5 uses: docker/build-push-action@v6
with: with:
context: . context: .
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64

View File

@@ -1,8 +1,8 @@
FROM alpine:3.18 FROM alpine:3.20
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"
ARG PIP_BREAK_SYSTEM_PACKAGES=1
RUN apk upgrade --no-cache \ RUN apk upgrade --no-cache \
&& apk add --update --no-cache \ && apk add --update --no-cache \
bash \ bash \
@@ -15,9 +15,7 @@ RUN apk upgrade --no-cache \
tini \ tini \
tzdata \ tzdata \
python3 \ python3 \
py3-pip \ acme-tiny --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community/
&& pip3 install --upgrade pip \
&& pip3 install acme-tiny
COPY acme.sh /srv/acme.sh COPY acme.sh /srv/acme.sh
COPY functions.sh /srv/functions.sh COPY functions.sh /srv/functions.sh

View File

@@ -33,6 +33,10 @@ if [[ "${ONLY_MAILCOW_HOSTNAME}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
ONLY_MAILCOW_HOSTNAME=y ONLY_MAILCOW_HOSTNAME=y
fi fi
if [[ "${AUTODISCOVER_SAN}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
AUTODISCOVER_SAN=y
fi
# Request individual certificate for every domain # Request individual certificate for every domain
if [[ "${ENABLE_SSL_SNI}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then if [[ "${ENABLE_SSL_SNI}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
ENABLE_SSL_SNI=y ENABLE_SSL_SNI=y
@@ -211,7 +215,11 @@ while true; do
ADDITIONAL_SAN_ARR+=($i) ADDITIONAL_SAN_ARR+=($i)
fi fi
done done
if [[ ${AUTODISCOVER_SAN} == "y" ]]; then
# Fetch certs for autoconfig and autodiscover subdomains
ADDITIONAL_WC_ARR+=('autodiscover' 'autoconfig') ADDITIONAL_WC_ARR+=('autodiscover' 'autoconfig')
fi
if [[ ${SKIP_IP_CHECK} != "y" ]]; then if [[ ${SKIP_IP_CHECK} != "y" ]]; then
# Start IP detection # Start IP detection

View File

@@ -1,3 +1,3 @@
FROM debian:bullseye-slim FROM debian:bookworm-slim
RUN apt update && apt install pigz RUN apt update && apt install pigz

View File

@@ -1,4 +1,4 @@
FROM alpine:3.19 FROM alpine:3.20
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"

View File

@@ -1,4 +1,4 @@
FROM alpine:3.19 FROM alpine:3.20
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"

View File

@@ -358,8 +358,8 @@ class DockerApi:
for line in cmd_response.split("\n"): for line in cmd_response.split("\n"):
if '$2$' in line: if '$2$' in line:
hash = line.strip() hash = line.strip()
hash_out = re.search('\$2\$.+$', hash).group(0) hash_out = re.search(r'\$2\$.+$', hash).group(0)
rspamd_passphrase_hash = re.sub('[^0-9a-zA-Z\$]+', '', hash_out.rstrip()) rspamd_passphrase_hash = re.sub(r'[^0-9a-zA-Z\$]+', '', hash_out.rstrip())
rspamd_password_filename = "/etc/rspamd/override.d/worker-controller-password.inc" rspamd_password_filename = "/etc/rspamd/override.d/worker-controller-password.inc"
cmd = '''/bin/echo 'enable_password = "%s";' > %s && cat %s''' % (rspamd_passphrase_hash, rspamd_password_filename, rspamd_password_filename) cmd = '''/bin/echo 'enable_password = "%s";' > %s && cat %s''' % (rspamd_passphrase_hash, rspamd_password_filename, rspamd_password_filename)
cmd_response = self.exec_cmd_container(container, cmd, user="_rspamd") cmd_response = self.exec_cmd_container(container, cmd, user="_rspamd")

View File

@@ -1,4 +1,4 @@
FROM alpine:3.19 FROM alpine:3.20
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"
# renovate: datasource=github-releases depName=tianon/gosu versioning=semver-coerced extractVersion=^(?<version>.*)$ # renovate: datasource=github-releases depName=tianon/gosu versioning=semver-coerced extractVersion=^(?<version>.*)$
@@ -24,6 +24,7 @@ RUN addgroup -g 5000 vmail \
envsubst \ envsubst \
ca-certificates \ ca-certificates \
curl \ curl \
coreutils \
jq \ jq \
lua \ lua \
lua-cjson \ lua-cjson \
@@ -62,7 +63,7 @@ RUN addgroup -g 5000 vmail \
perl-package-stash-xs \ perl-package-stash-xs \
perl-par-packer \ perl-par-packer \
perl-parse-recdescent \ perl-parse-recdescent \
perl-lockfile-simple --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community/ \ perl-lockfile-simple \
libproc \ libproc \
perl-readonly \ perl-readonly \
perl-regexp-common \ perl-regexp-common \
@@ -104,13 +105,12 @@ RUN addgroup -g 5000 vmail \
dovecot-pigeonhole-plugin \ dovecot-pigeonhole-plugin \
dovecot-pop3d \ dovecot-pop3d \
dovecot-fts-solr \ dovecot-fts-solr \
dovecot-fts-flatcurve \
&& arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \ && arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \
&& wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$arch" \ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$arch" \
&& chmod +x /usr/local/bin/gosu \ && chmod +x /usr/local/bin/gosu \
&& gosu nobody true && gosu nobody true
# RUN cpan LockFile::Simple
COPY trim_logs.sh /usr/local/bin/trim_logs.sh COPY trim_logs.sh /usr/local/bin/trim_logs.sh
COPY clean_q_aged.sh /usr/local/bin/clean_q_aged.sh COPY clean_q_aged.sh /usr/local/bin/clean_q_aged.sh
COPY syslog-ng.conf /etc/syslog-ng/syslog-ng.conf COPY syslog-ng.conf /etc/syslog-ng/syslog-ng.conf
@@ -129,6 +129,7 @@ COPY stop-supervisor.sh /usr/local/sbin/stop-supervisor.sh
COPY quarantine_notify.py /usr/local/bin/quarantine_notify.py COPY quarantine_notify.py /usr/local/bin/quarantine_notify.py
COPY quota_notify.py /usr/local/bin/quota_notify.py COPY quota_notify.py /usr/local/bin/quota_notify.py
COPY repl_health.sh /usr/local/bin/repl_health.sh COPY repl_health.sh /usr/local/bin/repl_health.sh
COPY optimize-fts.sh /usr/local/bin/optimize-fts.sh
ENTRYPOINT ["/docker-entrypoint.sh"] ENTRYPOINT ["/docker-entrypoint.sh"]
CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf

View File

@@ -29,6 +29,7 @@ ${REDIS_CMDLINE} SET DOVECOT_REPL_HEALTH 1 > /dev/null
# Create missing directories # Create missing directories
[[ ! -d /etc/dovecot/sql/ ]] && mkdir -p /etc/dovecot/sql/ [[ ! -d /etc/dovecot/sql/ ]] && mkdir -p /etc/dovecot/sql/
[[ ! -d /etc/dovecot/lua/ ]] && mkdir -p /etc/dovecot/lua/ [[ ! -d /etc/dovecot/lua/ ]] && mkdir -p /etc/dovecot/lua/
[[ ! -d /etc/dovecot/conf.d/ ]] && mkdir -p /etc/dovecot/conf.d/
[[ ! -d /var/vmail/_garbage ]] && mkdir -p /var/vmail/_garbage [[ ! -d /var/vmail/_garbage ]] && mkdir -p /var/vmail/_garbage
[[ ! -d /var/vmail/sieve ]] && mkdir -p /var/vmail/sieve [[ ! -d /var/vmail/sieve ]] && mkdir -p /var/vmail/sieve
[[ ! -d /etc/sogo ]] && mkdir -p /etc/sogo [[ ! -d /etc/sogo ]] && mkdir -p /etc/sogo
@@ -109,7 +110,14 @@ EOF
echo -n ${ACL_ANYONE} > /etc/dovecot/acl_anyone echo -n ${ACL_ANYONE} > /etc/dovecot/acl_anyone
if [[ "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then if [[ "${FLATCURVE_EXPERIMENTAL}" =~ ^([yY][eE][sS]|[yY]) ]]; then
echo -e "\e[33mActivating Flatcurve as FTS Backend...\e[0m"
echo -e "\e[33mDepending on your previous setup a full reindex might be needed... \e[0m"
echo -e "\e[34mVisit https://docs.mailcow.email/manual-guides/Dovecot/u_e-dovecot-fts/#fts-related-dovecot-commands to learn how to reindex\e[0m"
echo -n 'quota acl zlib mail_crypt mail_crypt_acl mail_log notify fts fts_flatcurve listescape replication' > /etc/dovecot/mail_plugins
echo -n 'quota imap_quota imap_acl acl zlib imap_zlib imap_sieve mail_crypt mail_crypt_acl notify mail_log fts fts_flatcurve listescape replication' > /etc/dovecot/mail_plugins_imap
echo -n 'quota sieve acl zlib mail_crypt mail_crypt_acl fts fts_flatcurve notify listescape replication' > /etc/dovecot/mail_plugins_lmtp
elif [[ "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
echo -n 'quota acl zlib mail_crypt mail_crypt_acl mail_log notify listescape replication' > /etc/dovecot/mail_plugins echo -n 'quota acl zlib mail_crypt mail_crypt_acl mail_log notify listescape replication' > /etc/dovecot/mail_plugins
echo -n 'quota imap_quota imap_acl acl zlib imap_zlib imap_sieve mail_crypt mail_crypt_acl notify listescape replication mail_log' > /etc/dovecot/mail_plugins_imap echo -n 'quota imap_quota imap_acl acl zlib imap_zlib imap_sieve mail_crypt mail_crypt_acl notify listescape replication mail_log' > /etc/dovecot/mail_plugins_imap
echo -n 'quota sieve acl zlib mail_crypt mail_crypt_acl notify listescape replication' > /etc/dovecot/mail_plugins_lmtp echo -n 'quota sieve acl zlib mail_crypt mail_crypt_acl notify listescape replication' > /etc/dovecot/mail_plugins_lmtp
@@ -239,6 +247,47 @@ function script_deinit()
end end
EOF EOF
# Temporarily set FTS depending on user choice inside mailcow.conf. Will be removed as soon as Solr is dropped
if [[ "${FLATCURVE_EXPERIMENTAL}" =~ ^([yY][eE][sS]|[yY])$ ]]; then
cat <<EOF > /etc/dovecot/conf.d/fts.conf
# Autogenerated by mailcow
plugin {
fts_autoindex = yes
fts_autoindex_exclude = \Junk
fts_autoindex_exclude2 = \Trash
fts = flatcurve
# These are not flatcurve settings, but required for Dovecot FTS. See
# Dovecot FTS Configuration link above for further information.
fts_languages = en es de
fts_tokenizer_generic = algorithm=simple
fts_tokenizers = generic email-address
# OPTIONAL: Recommended default FTS core configuration
fts_filters = normalizer-icu snowball stopwords
fts_filters_en = lowercase snowball english-possessive stopwords
}
EOF
elif [[ ! "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])$ ]]; then
cat <<EOF > /etc/dovecot/conf.d/fts.conf
# Autogenerated by mailcow
plugin {
fts = solr
fts_autoindex = yes
fts_autoindex_exclude = \Junk
fts_autoindex_exclude2 = \Trash
fts_solr = url=http://solr:8983/solr/dovecot-fts/
fts_tokenizers = generic email-address
fts_tokenizer_generic = algorithm=simple
fts_filters = normalizer-icu snowball stopwords
fts_filters_en = lowercase snowball english-possessive stopwords
}
EOF
fi
# Replace patterns in app-passdb.lua # Replace patterns in app-passdb.lua
sed -i "s/__DBUSER__/${DBUSER}/g" /etc/dovecot/lua/passwd-verify.lua sed -i "s/__DBUSER__/${DBUSER}/g" /etc/dovecot/lua/passwd-verify.lua
sed -i "s/__DBPASS__/${DBPASS}/g" /etc/dovecot/lua/passwd-verify.lua sed -i "s/__DBPASS__/${DBPASS}/g" /etc/dovecot/lua/passwd-verify.lua
@@ -343,7 +392,6 @@ mail_replica = tcp:${MAILCOW_REPLICA_IP}:${DOVEADM_REPLICA_PORT}
EOF EOF
fi fi
# 401 is user dovecot # 401 is user dovecot
if [[ ! -s /mail_crypt/ecprivkey.pem || ! -s /mail_crypt/ecpubkey.pem ]]; then if [[ ! -s /mail_crypt/ecprivkey.pem || ! -s /mail_crypt/ecpubkey.pem ]]; then
openssl ecparam -name prime256v1 -genkey | openssl pkey -out /mail_crypt/ecprivkey.pem openssl ecparam -name prime256v1 -genkey | openssl pkey -out /mail_crypt/ecprivkey.pem
@@ -387,7 +435,8 @@ chmod +x /usr/lib/dovecot/sieve/rspamd-pipe-ham \
/usr/local/bin/maildir_gc.sh \ /usr/local/bin/maildir_gc.sh \
/usr/local/sbin/stop-supervisor.sh \ /usr/local/sbin/stop-supervisor.sh \
/usr/local/bin/quota_notify.py \ /usr/local/bin/quota_notify.py \
/usr/local/bin/repl_health.sh /usr/local/bin/repl_health.sh \
/usr/local/bin/optimize-fts.sh
# Prepare environment file for cronjobs # Prepare environment file for cronjobs
printenv | sed 's/^\(.*\)$/export \1/g' > /source_env.sh printenv | sed 's/^\(.*\)$/export \1/g' > /source_env.sh

View File

@@ -0,0 +1,7 @@
#!/bin/bash
if [[ "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])+$ && ! "${FLATCURVE_EXPERIMENTAL}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
exit 0
else
doveadm fts optimize -A
fi

View File

@@ -11,7 +11,7 @@ else
fi fi
# Deploy # Deploy
curl --connect-timeout 15 --retry 10 --max-time 30 http://www.spamassassin.heinlein-support.de/$(dig txt 1.4.3.spamassassin.heinlein-support.de +short | tr -d '"' | tr -dc '0-9').tar.gz --output /tmp/sa-rules-heinlein.tar.gz curl --connect-timeout 15 --retry 10 --max-time 30 https://www.spamassassin.heinlein-support.de/$(dig txt 1.4.3.spamassassin.heinlein-support.de +short | tr -d '"' | tr -dc '0-9').tar.gz --output /tmp/sa-rules-heinlein.tar.gz
if gzip -t /tmp/sa-rules-heinlein.tar.gz; then if gzip -t /tmp/sa-rules-heinlein.tar.gz; then
tar xfvz /tmp/sa-rules-heinlein.tar.gz -C /tmp/sa-rules-heinlein tar xfvz /tmp/sa-rules-heinlein.tar.gz -C /tmp/sa-rules-heinlein
cat /tmp/sa-rules-heinlein/*cf > /etc/rspamd/custom/sa-rules cat /tmp/sa-rules-heinlein/*cf > /etc/rspamd/custom/sa-rules

View File

@@ -1,4 +1,4 @@
FROM alpine:3.19 FROM alpine:3.20
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"
WORKDIR /app WORKDIR /app

View File

@@ -80,16 +80,16 @@ def refreshF2bregex():
global exit_code global exit_code
if not r.get('F2B_REGEX'): if not r.get('F2B_REGEX'):
f2bregex = {} f2bregex = {}
f2bregex[1] = 'mailcow UI: Invalid password for .+ by ([0-9a-f\.:]+)' f2bregex[1] = r'mailcow UI: Invalid password for .+ by ([0-9a-f\.:]+)'
f2bregex[2] = 'Rspamd UI: Invalid password by ([0-9a-f\.:]+)' f2bregex[2] = r'Rspamd UI: Invalid password by ([0-9a-f\.:]+)'
f2bregex[3] = 'warning: .*\[([0-9a-f\.:]+)\]: SASL .+ authentication failed: (?!.*Connection lost to authentication server).+' f2bregex[3] = r'warning: .*\[([0-9a-f\.:]+)\]: SASL .+ authentication failed: (?!.*Connection lost to authentication server).+'
f2bregex[4] = 'warning: non-SMTP command from .*\[([0-9a-f\.:]+)]:.+' f2bregex[4] = r'warning: non-SMTP command from .*\[([0-9a-f\.:]+)]:.+'
f2bregex[5] = 'NOQUEUE: reject: RCPT from \[([0-9a-f\.:]+)].+Protocol error.+' f2bregex[5] = r'NOQUEUE: reject: RCPT from \[([0-9a-f\.:]+)].+Protocol error.+'
f2bregex[6] = '-login: Disconnected.+ \(auth failed, .+\): user=.*, method=.+, rip=([0-9a-f\.:]+),' f2bregex[6] = r'-login: Disconnected.+ \(auth failed, .+\): user=.*, method=.+, rip=([0-9a-f\.:]+),'
f2bregex[7] = '-login: Aborted login.+ \(auth failed .+\): user=.+, rip=([0-9a-f\.:]+), lip.+' f2bregex[7] = r'-login: Aborted login.+ \(auth failed .+\): user=.+, rip=([0-9a-f\.:]+), lip.+'
f2bregex[8] = '-login: Aborted login.+ \(tried to use disallowed .+\): user=.+, rip=([0-9a-f\.:]+), lip.+' f2bregex[8] = r'-login: Aborted login.+ \(tried to use disallowed .+\): user=.+, rip=([0-9a-f\.:]+), lip.+'
f2bregex[9] = 'SOGo.+ Login from \'([0-9a-f\.:]+)\' for user .+ might not have worked' f2bregex[9] = r'SOGo.+ Login from \'([0-9a-f\.:]+)\' for user .+ might not have worked'
f2bregex[10] = '([0-9a-f\.:]+) \"GET \/SOGo\/.* HTTP.+\" 403 .+' f2bregex[10] = r'([0-9a-f\.:]+) \"GET \/SOGo\/.* HTTP.+\" 403 .+'
r.set('F2B_REGEX', json.dumps(f2bregex, ensure_ascii=False)) r.set('F2B_REGEX', json.dumps(f2bregex, ensure_ascii=False))
else: else:
try: try:

View File

@@ -1,4 +1,4 @@
FROM alpine:3.19 FROM alpine:3.20
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"
ARG PIP_BREAK_SYSTEM_PACKAGES=1 ARG PIP_BREAK_SYSTEM_PACKAGES=1

View File

@@ -1,4 +1,4 @@
FROM php:8.2-fpm-alpine3.18 FROM php:8.2-fpm-alpine3.20
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"
# renovate: datasource=github-tags depName=krakjoe/apcu versioning=semver-coerced extractVersion=^v(?<version>.*)$ # renovate: datasource=github-tags depName=krakjoe/apcu versioning=semver-coerced extractVersion=^v(?<version>.*)$

View File

@@ -1,4 +1,4 @@
FROM debian:bullseye-slim FROM debian:bookworm-slim
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@@ -415,12 +415,6 @@ postscreen_dnsbl_sites = wl.mailspike.net=127.0.0.[18;19;20]*-2
b.barracudacentral.org=127.0.0.2*7 b.barracudacentral.org=127.0.0.2*7
bl.mailspike.net=127.0.0.2*5 bl.mailspike.net=127.0.0.2*5
bl.mailspike.net=127.0.0.[10;11;12]*4 bl.mailspike.net=127.0.0.[10;11;12]*4
dnsbl.sorbs.net=127.0.0.10*8
dnsbl.sorbs.net=127.0.0.5*6
dnsbl.sorbs.net=127.0.0.7*3
dnsbl.sorbs.net=127.0.0.8*2
dnsbl.sorbs.net=127.0.0.6*2
dnsbl.sorbs.net=127.0.0.9*2
EOF EOF
fi fi
DNSBL_CONFIG=$(grep -v '^#' /opt/postfix/conf/dns_blocklists.cf | grep '\S') DNSBL_CONFIG=$(grep -v '^#' /opt/postfix/conf/dns_blocklists.cf | grep '\S')

View File

@@ -1,4 +1,4 @@
@version: 3.28 @version: 3.38
@include "scl.conf" @include "scl.conf"
options { options {
chain_hostnames(off); chain_hostnames(off);

View File

@@ -1,4 +1,4 @@
@version: 3.28 @version: 3.38
@include "scl.conf" @include "scl.conf"
options { options {
chain_hostnames(off); chain_hostnames(off);

View File

@@ -2,6 +2,7 @@ FROM debian:bullseye-slim
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
ARG RSPAMD_VER=rspamd_3.7.5-2~8c86c1676
ARG CODENAME=bullseye ARG CODENAME=bullseye
ENV LC_ALL C ENV LC_ALL C
@@ -12,11 +13,14 @@ RUN apt-get update && apt-get install -y \
apt-transport-https \ apt-transport-https \
dnsutils \ dnsutils \
netcat \ netcat \
&& apt-key adv --fetch-keys https://rspamd.com/apt-stable/gpg.key \ wget \
&& echo "deb https://rspamd.com/apt-stable/ $CODENAME main" > /etc/apt/sources.list.d/rspamd.list \ redis-tools \
&& apt-get update \ procps \
&& apt-get --no-install-recommends -y install rspamd redis-tools procps nano \ nano \
&& rm -rf /var/lib/apt/lists/* \ && arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \
&& wget -P /tmp https://rspamd.com/apt-stable/pool/main/r/rspamd/${RSPAMD_VER}~${CODENAME}_${arch}.deb\
&& apt install -y /tmp/${RSPAMD_VER}~${CODENAME}_${arch}.deb \
&& rm -rf /var/lib/apt/lists/* /tmp/*\
&& apt-get autoremove --purge \ && apt-get autoremove --purge \
&& apt-get clean \ && apt-get clean \
&& mkdir -p /run/rspamd \ && mkdir -p /run/rspamd \
@@ -25,7 +29,6 @@ RUN apt-get update && apt-get install -y \
&& sed -i 's/#analysis_keyword_table > 0/analysis_cat_table.macro_exist == "M"/g' /usr/share/rspamd/lualib/lua_scanners/oletools.lua && sed -i 's/#analysis_keyword_table > 0/analysis_cat_table.macro_exist == "M"/g' /usr/share/rspamd/lualib/lua_scanners/oletools.lua
COPY settings.conf /etc/rspamd/settings.conf COPY settings.conf /etc/rspamd/settings.conf
COPY metadata_exporter.lua /usr/share/rspamd/plugins/metadata_exporter.lua
COPY set_worker_password.sh /set_worker_password.sh COPY set_worker_password.sh /set_worker_password.sh
COPY docker-entrypoint.sh /docker-entrypoint.sh COPY docker-entrypoint.sh /docker-entrypoint.sh

View File

@@ -1,632 +0,0 @@
--[[
Copyright (c) 2016, Andrew Lewis <nerf@judo.za.org>
Copyright (c) 2016, Vsevolod Stakhov <vsevolod@highsecure.ru>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
]]--
if confighelp then
return
end
-- A plugin that pushes metadata (or whole messages) to external services
local redis_params
local lua_util = require "lua_util"
local rspamd_http = require "rspamd_http"
local rspamd_util = require "rspamd_util"
local rspamd_logger = require "rspamd_logger"
local ucl = require "ucl"
local E = {}
local N = 'metadata_exporter'
local settings = {
pusher_enabled = {},
pusher_format = {},
pusher_select = {},
mime_type = 'text/plain',
defer = false,
mail_from = '',
mail_to = 'postmaster@localhost',
helo = 'rspamd',
email_template = [[From: "Rspamd" <$mail_from>
To: $mail_to
Subject: Spam alert
Date: $date
MIME-Version: 1.0
Message-ID: <$our_message_id>
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Authenticated username: $user
IP: $ip
Queue ID: $qid
SMTP FROM: $from
SMTP RCPT: $rcpt
MIME From: $header_from
MIME To: $header_to
MIME Date: $header_date
Subject: $header_subject
Message-ID: $message_id
Action: $action
Score: $score
Symbols: $symbols]],
}
local function get_general_metadata(task, flatten, no_content)
local r = {}
local ip = task:get_from_ip()
if ip and ip:is_valid() then
r.ip = tostring(ip)
else
r.ip = 'unknown'
end
r.user = task:get_user() or 'unknown'
r.qid = task:get_queue_id() or 'unknown'
r.subject = task:get_subject() or 'unknown'
r.action = task:get_metric_action('default')
local s = task:get_metric_score('default')[1]
r.score = flatten and string.format('%.2f', s) or s
local fuzzy = task:get_mempool():get_variable("fuzzy_hashes", "fstrings")
if fuzzy and #fuzzy > 0 then
local fz = {}
for _,h in ipairs(fuzzy) do
table.insert(fz, h)
end
if not flatten then
r.fuzzy = fz
else
r.fuzzy = table.concat(fz, ', ')
end
else
r.fuzzy = 'unknown'
end
local rcpt = task:get_recipients('smtp')
if rcpt then
local l = {}
for _, a in ipairs(rcpt) do
table.insert(l, a['addr'])
end
if not flatten then
r.rcpt = l
else
r.rcpt = table.concat(l, ', ')
end
else
r.rcpt = 'unknown'
end
local from = task:get_from('smtp')
if ((from or E)[1] or E).addr then
r.from = from[1].addr
else
r.from = 'unknown'
end
local syminf = task:get_symbols_all()
if flatten then
local l = {}
for _, sym in ipairs(syminf) do
local txt
if sym.options then
local topt = table.concat(sym.options, ', ')
txt = sym.name .. '(' .. string.format('%.2f', sym.score) .. ')' .. ' [' .. topt .. ']'
else
txt = sym.name .. '(' .. string.format('%.2f', sym.score) .. ')'
end
table.insert(l, txt)
end
r.symbols = table.concat(l, '\n\t')
else
r.symbols = syminf
end
local function process_header(name)
local hdr = task:get_header_full(name)
if hdr then
local l = {}
for _, h in ipairs(hdr) do
table.insert(l, h.decoded)
end
if not flatten then
return l
else
return table.concat(l, '\n')
end
else
return 'unknown'
end
end
if not no_content then
r.header_from = process_header('from')
r.header_to = process_header('to')
r.header_subject = process_header('subject')
r.header_date = process_header('date')
r.message_id = task:get_message_id()
end
return r
end
local formatters = {
default = function(task)
return task:get_content(), {}
end,
email_alert = function(task, rule, extra)
local meta = get_general_metadata(task, true)
local display_emails = {}
local mail_targets = {}
meta.mail_from = rule.mail_from or settings.mail_from
local mail_rcpt = rule.mail_to or settings.mail_to
if type(mail_rcpt) ~= 'table' then
table.insert(display_emails, string.format('<%s>', mail_rcpt))
table.insert(mail_targets, mail_rcpt)
else
for _, e in ipairs(mail_rcpt) do
table.insert(display_emails, string.format('<%s>', e))
table.insert(mail_targets, mail_rcpt)
end
end
if rule.email_alert_sender then
local x = task:get_from('smtp')
if x and string.len(x[1].addr) > 0 then
table.insert(mail_targets, x)
table.insert(display_emails, string.format('<%s>', x[1].addr))
end
end
if rule.email_alert_user then
local x = task:get_user()
if x then
table.insert(mail_targets, x)
table.insert(display_emails, string.format('<%s>', x))
end
end
if rule.email_alert_recipients then
local x = task:get_recipients('smtp')
if x then
for _, e in ipairs(x) do
if string.len(e.addr) > 0 then
table.insert(mail_targets, e.addr)
table.insert(display_emails, string.format('<%s>', e.addr))
end
end
end
end
meta.mail_to = table.concat(display_emails, ', ')
meta.our_message_id = rspamd_util.random_hex(12) .. '@rspamd'
meta.date = rspamd_util.time_to_string(rspamd_util.get_time())
return lua_util.template(rule.email_template or settings.email_template, meta), { mail_targets = mail_targets}
end,
json = function(task)
return ucl.to_format(get_general_metadata(task), 'json-compact')
end
}
local function is_spam(action)
return (action == 'reject' or action == 'add header' or action == 'rewrite subject')
end
local selectors = {
default = function(task)
return true
end,
is_spam = function(task)
local action = task:get_metric_action('default')
return is_spam(action)
end,
is_spam_authed = function(task)
if not task:get_user() then
return false
end
local action = task:get_metric_action('default')
return is_spam(action)
end,
is_reject = function(task)
local action = task:get_metric_action('default')
return (action == 'reject')
end,
is_reject_authed = function(task)
if not task:get_user() then
return false
end
local action = task:get_metric_action('default')
return (action == 'reject')
end,
}
local function maybe_defer(task, rule)
if rule.defer then
rspamd_logger.warnx(task, 'deferring message')
task:set_pre_result('soft reject', 'deferred', N)
end
end
local pushers = {
redis_pubsub = function(task, formatted, rule)
local _,ret,upstream
local function redis_pub_cb(err)
if err then
rspamd_logger.errx(task, 'got error %s when publishing on server %s',
err, upstream:get_addr())
return maybe_defer(task, rule)
end
return true
end
ret,_,upstream = rspamd_redis_make_request(task,
redis_params, -- connect params
nil, -- hash key
true, -- is write
redis_pub_cb, --callback
'PUBLISH', -- command
{rule.channel, formatted} -- arguments
)
if not ret then
rspamd_logger.errx(task, 'error connecting to redis')
maybe_defer(task, rule)
end
end,
http = function(task, formatted, rule)
local function http_callback(err, code)
if err then
rspamd_logger.errx(task, 'got error %s in http callback', err)
return maybe_defer(task, rule)
end
if code ~= 200 then
rspamd_logger.errx(task, 'got unexpected http status: %s', code)
return maybe_defer(task, rule)
end
return true
end
local hdrs = {}
if rule.meta_headers then
local gm = get_general_metadata(task, false, true)
local pfx = rule.meta_header_prefix or 'X-Rspamd-'
for k, v in pairs(gm) do
if type(v) == 'table' then
hdrs[pfx .. k] = ucl.to_format(v, 'json-compact')
else
hdrs[pfx .. k] = v
end
end
end
rspamd_http.request({
task=task,
url=rule.url,
body=formatted,
callback=http_callback,
mime_type=rule.mime_type or settings.mime_type,
headers=hdrs,
})
end,
send_mail = function(task, formatted, rule, extra)
local lua_smtp = require "lua_smtp"
local function sendmail_cb(ret, err)
if not ret then
rspamd_logger.errx(task, 'SMTP export error: %s', err)
maybe_defer(task, rule)
end
end
lua_smtp.sendmail({
task = task,
host = rule.smtp,
port = rule.smtp_port or settings.smtp_port or 25,
from = rule.mail_from or settings.mail_from,
recipients = extra.mail_targets or rule.mail_to or settings.mail_to,
helo = rule.helo or settings.helo,
timeout = rule.timeout or settings.timeout,
}, formatted, sendmail_cb)
end,
}
local opts = rspamd_config:get_all_opt(N)
if not opts then return end
local process_settings = {
select = function(val)
selectors.custom = assert(load(val))()
end,
format = function(val)
formatters.custom = assert(load(val))()
end,
push = function(val)
pushers.custom = assert(load(val))()
end,
custom_push = function(val)
if type(val) == 'table' then
for k, v in pairs(val) do
pushers[k] = assert(load(v))()
end
end
end,
custom_select = function(val)
if type(val) == 'table' then
for k, v in pairs(val) do
selectors[k] = assert(load(v))()
end
end
end,
custom_format = function(val)
if type(val) == 'table' then
for k, v in pairs(val) do
formatters[k] = assert(load(v))()
end
end
end,
pusher_enabled = function(val)
if type(val) == 'string' then
if pushers[val] then
settings.pusher_enabled[val] = true
else
rspamd_logger.errx(rspamd_config, 'Pusher type: %s is invalid', val)
end
elseif type(val) == 'table' then
for _, v in ipairs(val) do
if pushers[v] then
settings.pusher_enabled[v] = true
else
rspamd_logger.errx(rspamd_config, 'Pusher type: %s is invalid', val)
end
end
end
end,
}
for k, v in pairs(opts) do
local f = process_settings[k]
if f then
f(opts[k])
else
settings[k] = v
end
end
if type(settings.rules) ~= 'table' then
-- Legacy config
settings.rules = {}
if not next(settings.pusher_enabled) then
if pushers.custom then
rspamd_logger.infox(rspamd_config, 'Custom pusher implicitly enabled')
settings.pusher_enabled.custom = true
else
-- Check legacy options
if settings.url then
rspamd_logger.warnx(rspamd_config, 'HTTP pusher implicitly enabled')
settings.pusher_enabled.http = true
end
if settings.channel then
rspamd_logger.warnx(rspamd_config, 'Redis Pubsub pusher implicitly enabled')
settings.pusher_enabled.redis_pubsub = true
end
if settings.smtp and settings.mail_to then
rspamd_logger.warnx(rspamd_config, 'SMTP pusher implicitly enabled')
settings.pusher_enabled.send_mail = true
end
end
end
if not next(settings.pusher_enabled) then
rspamd_logger.errx(rspamd_config, 'No push backend enabled')
return
end
if settings.formatter then
settings.format = formatters[settings.formatter]
if not settings.format then
rspamd_logger.errx(rspamd_config, 'No such formatter: %s', settings.formatter)
return
end
end
if settings.selector then
settings.select = selectors[settings.selector]
if not settings.select then
rspamd_logger.errx(rspamd_config, 'No such selector: %s', settings.selector)
return
end
end
for k in pairs(settings.pusher_enabled) do
local formatter = settings.pusher_format[k]
local selector = settings.pusher_select[k]
if not formatter then
settings.pusher_format[k] = settings.formatter or 'default'
rspamd_logger.infox(rspamd_config, 'Using default formatter for %s pusher', k)
else
if not formatters[formatter] then
rspamd_logger.errx(rspamd_config, 'No such formatter: %s - disabling %s', formatter, k)
settings.pusher_enabled.k = nil
end
end
if not selector then
settings.pusher_select[k] = settings.selector or 'default'
rspamd_logger.infox(rspamd_config, 'Using default selector for %s pusher', k)
else
if not selectors[selector] then
rspamd_logger.errx(rspamd_config, 'No such selector: %s - disabling %s', selector, k)
settings.pusher_enabled.k = nil
end
end
end
if settings.pusher_enabled.redis_pubsub then
redis_params = rspamd_parse_redis_server(N)
if not redis_params then
rspamd_logger.errx(rspamd_config, 'No redis servers are specified')
settings.pusher_enabled.redis_pubsub = nil
else
local r = {}
r.backend = 'redis_pubsub'
r.channel = settings.channel
r.defer = settings.defer
r.selector = settings.pusher_select.redis_pubsub
r.formatter = settings.pusher_format.redis_pubsub
settings.rules[r.backend:upper()] = r
end
end
if settings.pusher_enabled.http then
if not settings.url then
rspamd_logger.errx(rspamd_config, 'No URL is specified')
settings.pusher_enabled.http = nil
else
local r = {}
r.backend = 'http'
r.url = settings.url
r.mime_type = settings.mime_type
r.defer = settings.defer
r.selector = settings.pusher_select.http
r.formatter = settings.pusher_format.http
settings.rules[r.backend:upper()] = r
end
end
if settings.pusher_enabled.send_mail then
if not (settings.mail_to and settings.smtp) then
rspamd_logger.errx(rspamd_config, 'No mail_to and/or smtp setting is specified')
settings.pusher_enabled.send_mail = nil
else
local r = {}
r.backend = 'send_mail'
r.mail_to = settings.mail_to
r.mail_from = settings.mail_from
r.helo = settings.hello
r.smtp = settings.smtp
r.smtp_port = settings.smtp_port
r.email_template = settings.email_template
r.defer = settings.defer
r.selector = settings.pusher_select.send_mail
r.formatter = settings.pusher_format.send_mail
settings.rules[r.backend:upper()] = r
end
end
if not next(settings.pusher_enabled) then
rspamd_logger.errx(rspamd_config, 'No push backend enabled')
return
end
elseif not next(settings.rules) then
lua_util.debugm(N, rspamd_config, 'No rules enabled')
return
end
if not settings.rules or not next(settings.rules) then
rspamd_logger.errx(rspamd_config, 'No rules enabled')
return
end
local backend_required_elements = {
http = {
'url',
},
smtp = {
'mail_to',
'smtp',
},
redis_pubsub = {
'channel',
},
}
local check_element = {
selector = function(k, v)
if not selectors[v] then
rspamd_logger.errx(rspamd_config, 'Rule %s has invalid selector %s', k, v)
return false
else
return true
end
end,
formatter = function(k, v)
if not formatters[v] then
rspamd_logger.errx(rspamd_config, 'Rule %s has invalid formatter %s', k, v)
return false
else
return true
end
end,
}
local backend_check = {
default = function(k, rule)
local reqset = backend_required_elements[rule.backend]
if reqset then
for _, e in ipairs(reqset) do
if not rule[e] then
rspamd_logger.errx(rspamd_config, 'Rule %s misses required setting %s', k, e)
settings.rules[k] = nil
end
end
end
for sett, v in pairs(rule) do
local f = check_element[sett]
if f then
if not f(sett, v) then
settings.rules[k] = nil
end
end
end
end,
}
backend_check.redis_pubsub = function(k, rule)
if not redis_params then
redis_params = rspamd_parse_redis_server(N)
end
if not redis_params then
rspamd_logger.errx(rspamd_config, 'No redis servers are specified')
settings.rules[k] = nil
else
backend_check.default(k, rule)
end
end
setmetatable(backend_check, {
__index = function()
return backend_check.default
end,
})
for k, v in pairs(settings.rules) do
if type(v) == 'table' then
local backend = v.backend
if not backend then
rspamd_logger.errx(rspamd_config, 'Rule %s has no backend', k)
settings.rules[k] = nil
elseif not pushers[backend] then
rspamd_logger.errx(rspamd_config, 'Rule %s has invalid backend %s', k, backend)
settings.rules[k] = nil
else
local f = backend_check[backend]
f(k, v)
end
else
rspamd_logger.errx(rspamd_config, 'Rule %s has bad type: %s', k, type(v))
settings.rules[k] = nil
end
end
local function gen_exporter(rule)
return function (task)
if task:has_flag('skip') then return end
local selector = rule.selector or 'default'
local selected = selectors[selector](task)
if selected then
lua_util.debugm(N, task, 'Message selected for processing')
local formatter = rule.formatter or 'default'
local formatted, extra = formatters[formatter](task, rule)
if formatted then
pushers[rule.backend](task, formatted, rule, extra)
else
lua_util.debugm(N, task, 'Formatter [%s] returned non-truthy value [%s]', formatter, formatted)
end
else
lua_util.debugm(N, task, 'Selector [%s] returned non-truthy value [%s]', selector, selected)
end
end
end
if not next(settings.rules) then
rspamd_logger.errx(rspamd_config, 'No rules enabled')
lua_util.disable_module(N, "config")
end
for k, r in pairs(settings.rules) do
rspamd_config:register_symbol({
name = 'EXPORT_METADATA_' .. k,
type = 'idempotent',
callback = gen_exporter(r),
priority = 10,
flags = 'empty,explicit_disable,ignore_passthrough',
})
end

View File

@@ -1,7 +1,15 @@
#!/bin/bash #!/bin/bash
if [[ "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then if [[ "${FLATCURVE_EXPERIMENTAL}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
echo "FLATCURVE_EXPERIMENTAL=y, skipping Solr but enabling Flatcurve as FTS for Dovecot!"
echo "Solr will be removed in the future!"
sleep 365d
exit 0
elif [[ "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
echo "SKIP_SOLR=y, skipping Solr..." echo "SKIP_SOLR=y, skipping Solr..."
echo "HINT: You could try the newer FTS Backend Flatcurve, which is currently in experimental state..."
echo "Simply set FLATCURVE_EXPERIMENTAL=y inside your mailcow.conf and restart the stack afterwards!"
echo "Solr will be removed in the future!"
sleep 365d sleep 365d
exit 0 exit 0
fi fi
@@ -57,5 +65,11 @@ if [[ "${1}" == "--bootstrap" ]]; then
exit 0 exit 0
fi fi
echo "Starting up Solr..."
echo -e "\e[31mSolr is deprecated! You can try the new FTS System now by enabling FLATCURVE_EXPERIMENTAL=y inside mailcow.conf and restarting the stack\e[0m"
echo -e "\e[31mSolr will be removed completely soon!\e[0m"
sleep 15
exec gosu solr solr-foreground exec gosu solr solr-foreground

View File

@@ -1,4 +1,4 @@
FROM alpine:3.18 FROM alpine:3.20
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"

View File

@@ -5,9 +5,13 @@ if [[ "${SKIP_UNBOUND_HEALTHCHECK}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
SKIP_UNBOUND_HEALTHCHECK=y SKIP_UNBOUND_HEALTHCHECK=y
fi fi
# Reset logfile
echo "$(date +"%Y-%m-%d %H:%M:%S"): Starting health check - logs can be found in /var/log/healthcheck.log"
echo "$(date +"%Y-%m-%d %H:%M:%S"): Starting health check" > /var/log/healthcheck.log
# Declare log function for logfile inside container # Declare log function for logfile inside container
function log_to_file() { function log_to_file() {
echo "$(date +"%Y-%m-%d %H:%M:%S"): $1" > /var/log/healthcheck.log echo "$(date +"%Y-%m-%d %H:%M:%S"): $1" >> /var/log/healthcheck.log
} }
# General Ping function to check general pingability # General Ping function to check general pingability

View File

@@ -1,4 +1,4 @@
FROM alpine:3.18 FROM alpine:3.20
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"
# Installation # Installation

View File

@@ -10,6 +10,7 @@
auth_mechanisms = plain login auth_mechanisms = plain login
#mail_debug = yes #mail_debug = yes
#auth_debug = yes #auth_debug = yes
#log_debug = category=fts-flatcurve # Activate Logging for Flatcurve FTS Searchings
log_path = syslog log_path = syslog
disable_plaintext_auth = yes disable_plaintext_auth = yes
# Uncomment on NFS share # Uncomment on NFS share
@@ -194,9 +195,6 @@ plugin {
acl_shared_dict = file:/var/vmail/shared-mailboxes.db acl_shared_dict = file:/var/vmail/shared-mailboxes.db
acl = vfile acl = vfile
acl_user = %u acl_user = %u
fts = solr
fts_autoindex = yes
fts_solr = url=http://solr:8983/solr/dovecot-fts/
quota = dict:Userquota::proxy::sqlquota quota = dict:Userquota::proxy::sqlquota
quota_rule2 = Trash:storage=+100%% quota_rule2 = Trash:storage=+100%%
sieve = /var/vmail/sieve/%u.sieve sieve = /var/vmail/sieve/%u.sieve
@@ -305,6 +303,7 @@ replication_dsync_parameters = -d -l 30 -U -n INBOX
!include_try /etc/dovecot/extra.conf !include_try /etc/dovecot/extra.conf
!include_try /etc/dovecot/sogo-sso.conf !include_try /etc/dovecot/sogo-sso.conf
!include_try /etc/dovecot/shared_namespace.conf !include_try /etc/dovecot/shared_namespace.conf
!include_try /etc/dovecot/conf.d/fts.conf
# </Includes> # </Includes>
default_client_limit = 10400 default_client_limit = 10400
default_vsz_limit = 1024 M default_vsz_limit = 1024 M

View File

@@ -1,6 +1,6 @@
if /^\s*Received:.*Authenticated sender.*\(Postcow\)/ if /^\s*Received:.*Authenticated sender.*\(Postcow\)/
#/^Received: from .*? \([\w-.]* \[.*?\]\)\s+\(Authenticated sender: (.+)\)\s+by.+\(Postcow\) with (E?SMTPS?A?) id ([A-F0-9]+).+;.*?/ #/^Received: from .*? \([\w-.]* \[.*?\]\)\s+\(Authenticated sender: (.+)\)\s+by.+\(Postcow\) with (E?SMTPS?A?) id ([A-F0-9]+).+;.*?/
/^Received: from .*? \([\w-.]* \[.*?\]\)(.*|\n.*)\(Authenticated sender: (.+)\)\s+by.+\(Postcow\) with (.*)/ /^Received: from .*? \([\w\-.]* \[.*?\]\)(.*|\n.*)\(Authenticated sender: (.+)\)\s+by.+\(Postcow\) with (.*)/
REPLACE Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with $3 REPLACE Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with $3
endif endif
if /^\s*Received: from.* \(.*dovecot-mailcow.*mailcow-network.*\).*\(Postcow\)/ if /^\s*Received: from.* \(.*dovecot-mailcow.*mailcow-network.*\).*\(Postcow\)/

View File

@@ -114,14 +114,14 @@ smtpd_tls_loglevel = 1
# Mandatory protocols and ciphers are used when a connections is enforced to use TLS # Mandatory protocols and ciphers are used when a connections is enforced to use TLS
# Does _not_ apply to enforced incoming TLS settings per mailbox # Does _not_ apply to enforced incoming TLS settings per mailbox
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 smtp_tls_mandatory_protocols = >=TLSv1.2
lmtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 lmtp_tls_mandatory_protocols = >=TLSv1.2
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 smtpd_tls_mandatory_protocols = >=TLSv1.2
smtpd_tls_mandatory_ciphers = high smtpd_tls_mandatory_ciphers = high
smtp_tls_protocols = !SSLv2, !SSLv3 smtp_tls_protocols = >=TLSv1.2
lmtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 lmtp_tls_protocols = >=TLSv1.2
smtpd_tls_protocols = !SSLv2, !SSLv3 smtpd_tls_protocols = >=TLSv1.2
smtpd_tls_security_level = may smtpd_tls_security_level = may
tls_preempt_cipherlist = yes tls_preempt_cipherlist = yes
@@ -163,12 +163,12 @@ transport_maps = pcre:/opt/postfix/conf/custom_transport.pcre,
proxy:mysql:/opt/postfix/conf/sql/mysql_transport_maps.cf proxy:mysql:/opt/postfix/conf/sql/mysql_transport_maps.cf
smtp_sasl_auth_soft_bounce = no smtp_sasl_auth_soft_bounce = no
postscreen_discard_ehlo_keywords = silent-discard, dsn, chunking postscreen_discard_ehlo_keywords = silent-discard, dsn, chunking
smtpd_discard_ehlo_keywords = chunking smtpd_discard_ehlo_keywords = chunking, silent-discard
compatibility_level = 2 compatibility_level = 3.7
smtputf8_enable = no smtputf8_enable = no
# Define protocols for SMTPS and submission service # Define protocols for SMTPS and submission service
submission_smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 submission_smtpd_tls_mandatory_protocols = >=TLSv1.2
smtps_smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 smtps_smtpd_tls_mandatory_protocols = >=TLSv1.2
parent_domain_matches_subdomains = debug_peer_list,fast_flush_domains,mynetworks,qmqpd_authorized_clients parent_domain_matches_subdomains = debug_peer_list,fast_flush_domains,mynetworks,qmqpd_authorized_clients
# DO NOT EDIT ANYTHING BELOW # # DO NOT EDIT ANYTHING BELOW #

View File

@@ -1,6 +1,6 @@
# Whitelist generated by Postwhite v3.4 on Mon Apr 1 00:15:02 UTC 2024 # Whitelist generated by Postwhite v3.4 on Sat Jun 1 00:15:02 UTC 2024
# https://github.com/stevejenkins/postwhite/ # https://github.com/stevejenkins/postwhite/
# 2009 total rules # 2000 total rules
2a00:1450:4000::/36 permit 2a00:1450:4000::/36 permit
2a01:111:f400::/48 permit 2a01:111:f400::/48 permit
2a01:111:f403:8000::/50 permit 2a01:111:f403:8000::/50 permit
@@ -13,14 +13,15 @@
2.207.151.53 permit 2.207.151.53 permit
3.70.123.177 permit 3.70.123.177 permit
3.93.157.0/24 permit 3.93.157.0/24 permit
3.94.40.108 permit
3.129.120.190 permit 3.129.120.190 permit
3.137.16.58 permit
3.210.190.0/24 permit 3.210.190.0/24 permit
8.20.114.31 permit 8.20.114.31 permit
8.25.194.0/23 permit 8.25.194.0/23 permit
8.25.196.0/23 permit 8.25.196.0/23 permit
8.39.54.0/23 permit 8.39.54.0/23 permit
8.40.222.0/23 permit 8.40.222.0/23 permit
10.162.0.0/16 permit
12.130.86.238 permit 12.130.86.238 permit
13.70.32.43 permit 13.70.32.43 permit
13.72.50.45 permit 13.72.50.45 permit
@@ -32,12 +33,15 @@
13.110.216.0/22 permit 13.110.216.0/22 permit
13.110.224.0/20 permit 13.110.224.0/20 permit
13.111.0.0/16 permit 13.111.0.0/16 permit
13.111.191.0/24 permit
15.200.21.50 permit 15.200.21.50 permit
15.200.44.248 permit 15.200.44.248 permit
15.200.201.185 permit 15.200.201.185 permit
17.41.0.0/16 permit
17.57.155.0/24 permit 17.57.155.0/24 permit
17.57.156.0/24 permit 17.57.156.0/24 permit
17.58.0.0/16 permit 17.58.0.0/16 permit
17.142.0.0/15 permit
18.156.89.250 permit 18.156.89.250 permit
18.157.243.190 permit 18.157.243.190 permit
18.194.95.56 permit 18.194.95.56 permit
@@ -65,10 +69,9 @@
20.107.239.64/30 permit 20.107.239.64/30 permit
20.112.250.133 permit 20.112.250.133 permit
20.118.139.208/30 permit 20.118.139.208/30 permit
20.185.213.160/27 permit 20.141.10.196 permit
20.185.213.224/27 permit 20.185.213.0/24 permit
20.185.214.0/27 permit 20.185.214.0/27 permit
20.185.214.2 permit
20.185.214.32/27 permit 20.185.214.32/27 permit
20.185.214.64/27 permit 20.185.214.64/27 permit
20.231.239.246 permit 20.231.239.246 permit
@@ -121,7 +124,6 @@
44.206.138.57 permit 44.206.138.57 permit
44.236.56.93 permit 44.236.56.93 permit
44.238.220.251 permit 44.238.220.251 permit
46.19.168.0/23 permit
46.19.170.16 permit 46.19.170.16 permit
46.226.48.0/21 permit 46.226.48.0/21 permit
46.228.36.37 permit 46.228.36.37 permit
@@ -182,11 +184,9 @@
50.18.125.237 permit 50.18.125.237 permit
50.18.126.162 permit 50.18.126.162 permit
50.31.32.0/19 permit 50.31.32.0/19 permit
50.56.130.220 permit 50.56.130.220/30 permit
50.56.130.221 permit
51.137.58.21 permit 51.137.58.21 permit
51.140.75.55 permit 51.140.75.55 permit
51.144.100.179 permit
52.1.14.157 permit 52.1.14.157 permit
52.5.230.59 permit 52.5.230.59 permit
52.27.5.72 permit 52.27.5.72 permit
@@ -194,18 +194,19 @@
52.28.63.81 permit 52.28.63.81 permit
52.36.138.31 permit 52.36.138.31 permit
52.37.142.146 permit 52.37.142.146 permit
52.50.24.208 permit
52.58.216.183 permit 52.58.216.183 permit
52.59.143.3 permit 52.59.143.3 permit
52.60.41.5 permit 52.60.41.5 permit
52.60.115.116 permit 52.60.115.116 permit
52.61.91.9 permit 52.61.91.9 permit
52.71.0.205 permit 52.71.0.205 permit
52.82.172.0/22 permit
52.94.124.0/28 permit 52.94.124.0/28 permit
52.95.48.152/29 permit 52.95.48.152/29 permit
52.95.49.88/29 permit 52.95.49.88/29 permit
52.96.91.34 permit 52.96.91.34 permit
52.96.111.82 permit 52.96.111.82 permit
52.96.172.98 permit
52.96.214.50 permit 52.96.214.50 permit
52.96.222.194 permit 52.96.222.194 permit
52.96.222.226 permit 52.96.222.226 permit
@@ -215,7 +216,6 @@
52.100.0.0/14 permit 52.100.0.0/14 permit
52.103.0.0/17 permit 52.103.0.0/17 permit
52.119.213.144/28 permit 52.119.213.144/28 permit
52.160.39.140 permit
52.165.175.144 permit 52.165.175.144 permit
52.185.106.240/28 permit 52.185.106.240/28 permit
52.200.59.0/24 permit 52.200.59.0/24 permit
@@ -227,15 +227,16 @@
52.222.75.85 permit 52.222.75.85 permit
52.222.89.228 permit 52.222.89.228 permit
52.234.172.96/28 permit 52.234.172.96/28 permit
52.235.253.128 permit
52.236.28.240/28 permit 52.236.28.240/28 permit
52.244.206.214 permit 52.244.206.214 permit
52.247.53.144 permit 52.247.53.144 permit
52.250.107.196 permit 52.250.107.196 permit
52.250.126.174 permit 52.250.126.174 permit
54.90.148.255 permit 54.90.148.255 permit
54.165.19.38 permit
54.172.97.247 permit 54.172.97.247 permit
54.174.52.0/24 permit 54.174.52.0/24 permit
54.174.53.128/30 permit
54.174.57.0/24 permit 54.174.57.0/24 permit
54.174.59.0/24 permit 54.174.59.0/24 permit
54.174.60.0/23 permit 54.174.60.0/23 permit
@@ -267,7 +268,6 @@
62.201.172.32/27 permit 62.201.172.32/27 permit
62.253.227.114 permit 62.253.227.114 permit
63.80.14.0/23 permit 63.80.14.0/23 permit
63.111.28.137 permit
63.128.21.0/24 permit 63.128.21.0/24 permit
63.143.57.128/25 permit 63.143.57.128/25 permit
63.143.59.128/25 permit 63.143.59.128/25 permit
@@ -283,17 +283,6 @@
64.127.115.252 permit 64.127.115.252 permit
64.132.88.0/23 permit 64.132.88.0/23 permit
64.132.92.0/24 permit 64.132.92.0/24 permit
64.147.123.17 permit
64.147.123.18 permit
64.147.123.19 permit
64.147.123.20 permit
64.147.123.21 permit
64.147.123.24 permit
64.147.123.25 permit
64.147.123.26 permit
64.147.123.27 permit
64.147.123.28 permit
64.147.123.29 permit
64.147.123.128/27 permit 64.147.123.128/27 permit
64.207.219.7 permit 64.207.219.7 permit
64.207.219.8 permit 64.207.219.8 permit
@@ -351,21 +340,7 @@
65.154.166.0/24 permit 65.154.166.0/24 permit
65.212.180.36 permit 65.212.180.36 permit
66.102.0.0/20 permit 66.102.0.0/20 permit
66.111.4.25 permit
66.111.4.26 permit
66.111.4.27 permit
66.111.4.28 permit
66.111.4.29 permit
66.111.4.221 permit
66.111.4.222 permit
66.111.4.224 permit
66.111.4.225 permit
66.111.4.229 permit
66.111.4.230 permit
66.119.150.192/26 permit 66.119.150.192/26 permit
66.135.202.0/27 permit
66.135.215.0/24 permit
66.135.222.1 permit
66.162.193.226/31 permit 66.162.193.226/31 permit
66.163.184.0/24 permit 66.163.184.0/24 permit
66.163.185.0/24 permit 66.163.185.0/24 permit
@@ -471,6 +446,10 @@
69.65.42.195 permit 69.65.42.195 permit
69.65.49.192/29 permit 69.65.49.192/29 permit
69.72.32.0/20 permit 69.72.32.0/20 permit
69.72.40.93 permit
69.72.40.94/31 permit
69.72.40.96/30 permit
69.72.47.205 permit
69.147.84.227 permit 69.147.84.227 permit
69.162.98.0/24 permit 69.162.98.0/24 permit
69.169.224.0/20 permit 69.169.224.0/20 permit
@@ -479,7 +458,6 @@
70.37.151.128/25 permit 70.37.151.128/25 permit
70.42.149.0/24 permit 70.42.149.0/24 permit
70.42.149.35 permit 70.42.149.35 permit
72.3.237.64/28 permit
72.14.192.0/18 permit 72.14.192.0/18 permit
72.21.192.0/19 permit 72.21.192.0/19 permit
72.21.217.142 permit 72.21.217.142 permit
@@ -1297,6 +1275,7 @@
108.175.30.45 permit 108.175.30.45 permit
108.177.8.0/21 permit 108.177.8.0/21 permit
108.177.96.0/19 permit 108.177.96.0/19 permit
108.179.144.0/20 permit
109.237.142.0/24 permit 109.237.142.0/24 permit
111.221.23.128/25 permit 111.221.23.128/25 permit
111.221.26.0/27 permit 111.221.26.0/27 permit
@@ -1406,6 +1385,12 @@
139.180.17.0/24 permit 139.180.17.0/24 permit
141.148.159.229 permit 141.148.159.229 permit
141.193.32.0/23 permit 141.193.32.0/23 permit
141.193.184.32/27 permit
141.193.184.64/26 permit
141.193.184.128/25 permit
141.193.185.32/27 permit
141.193.185.64/26 permit
141.193.185.128/25 permit
143.55.224.0/21 permit 143.55.224.0/21 permit
143.55.232.0/22 permit 143.55.232.0/22 permit
143.55.236.0/22 permit 143.55.236.0/22 permit
@@ -1419,8 +1404,7 @@
144.178.38.0/24 permit 144.178.38.0/24 permit
145.253.228.160/29 permit 145.253.228.160/29 permit
145.253.239.128/29 permit 145.253.239.128/29 permit
146.20.14.105 permit 146.20.14.104/30 permit
146.20.14.107 permit
146.20.112.0/26 permit 146.20.112.0/26 permit
146.20.113.0/24 permit 146.20.113.0/24 permit
146.20.191.0/24 permit 146.20.191.0/24 permit
@@ -1495,10 +1479,9 @@
163.47.180.0/22 permit 163.47.180.0/22 permit
163.114.130.16 permit 163.114.130.16 permit
163.114.132.120 permit 163.114.132.120 permit
164.177.132.168 permit 163.114.134.16 permit
164.177.132.169 permit 163.114.135.16 permit
164.177.132.170 permit 164.177.132.168/30 permit
164.177.132.171 permit
165.173.128.0/24 permit 165.173.128.0/24 permit
166.78.68.0/22 permit 166.78.68.0/22 permit
166.78.68.221 permit 166.78.68.221 permit
@@ -1575,9 +1558,13 @@
185.80.93.227 permit 185.80.93.227 permit
185.80.95.31 permit 185.80.95.31 permit
185.90.20.0/22 permit 185.90.20.0/22 permit
185.138.56.128/25 permit
185.189.236.0/22 permit 185.189.236.0/22 permit
185.211.120.0/22 permit 185.211.120.0/22 permit
185.250.236.0/22 permit 185.250.236.0/22 permit
185.250.239.148 permit
185.250.239.168 permit
185.250.239.190 permit
188.125.68.132 permit 188.125.68.132 permit
188.125.68.152/31 permit 188.125.68.152/31 permit
188.125.68.156 permit 188.125.68.156 permit
@@ -1645,7 +1632,6 @@
193.122.128.100 permit 193.122.128.100 permit
193.123.56.63 permit 193.123.56.63 permit
194.19.134.0/25 permit 194.19.134.0/25 permit
194.64.234.128/27 permit
194.64.234.129 permit 194.64.234.129 permit
194.106.220.0/23 permit 194.106.220.0/23 permit
194.113.24.0/22 permit 194.113.24.0/22 permit
@@ -1667,9 +1653,13 @@
198.37.144.0/20 permit 198.37.144.0/20 permit
198.37.152.186 permit 198.37.152.186 permit
198.61.254.0/23 permit 198.61.254.0/23 permit
198.61.254.21 permit
198.61.254.231 permit 198.61.254.231 permit
198.178.234.57 permit 198.178.234.57 permit
198.244.48.0/20 permit 198.244.48.0/20 permit
198.244.59.30 permit
198.244.59.33 permit
198.244.59.35 permit
198.244.60.0/22 permit 198.244.60.0/22 permit
198.245.80.0/20 permit 198.245.80.0/20 permit
198.245.81.0/24 permit 198.245.81.0/24 permit
@@ -1681,7 +1671,9 @@
199.34.22.36 permit 199.34.22.36 permit
199.59.148.0/22 permit 199.59.148.0/22 permit
199.67.80.2 permit 199.67.80.2 permit
199.67.80.20 permit
199.67.82.2 permit 199.67.82.2 permit
199.67.82.20 permit
199.67.84.0/24 permit 199.67.84.0/24 permit
199.67.86.0/24 permit 199.67.86.0/24 permit
199.67.88.0/24 permit 199.67.88.0/24 permit
@@ -1733,7 +1725,6 @@
203.209.230.76/31 permit 203.209.230.76/31 permit
204.11.168.0/21 permit 204.11.168.0/21 permit
204.13.11.48/29 permit 204.13.11.48/29 permit
204.13.11.48/30 permit
204.14.232.0/21 permit 204.14.232.0/21 permit
204.14.232.64/28 permit 204.14.232.64/28 permit
204.14.234.64/28 permit 204.14.234.64/28 permit
@@ -1742,7 +1733,6 @@
204.92.114.187 permit 204.92.114.187 permit
204.92.114.203 permit 204.92.114.203 permit
204.92.114.204/31 permit 204.92.114.204/31 permit
204.132.224.66 permit
204.141.32.0/23 permit 204.141.32.0/23 permit
204.141.42.0/23 permit 204.141.42.0/23 permit
204.220.160.0/20 permit 204.220.160.0/20 permit
@@ -1786,8 +1776,7 @@
207.67.98.192/27 permit 207.67.98.192/27 permit
207.68.176.0/26 permit 207.68.176.0/26 permit
207.68.176.96/27 permit 207.68.176.96/27 permit
207.97.204.96 permit 207.97.204.96/29 permit
207.97.204.97 permit
207.126.144.0/20 permit 207.126.144.0/20 permit
207.171.160.0/19 permit 207.171.160.0/19 permit
207.211.30.64/26 permit 207.211.30.64/26 permit
@@ -1826,7 +1815,6 @@
208.71.42.212/31 permit 208.71.42.212/31 permit
208.71.42.214 permit 208.71.42.214 permit
208.72.249.240/29 permit 208.72.249.240/29 permit
208.74.204.0/22 permit
208.74.204.5 permit 208.74.204.5 permit
208.74.204.9 permit 208.74.204.9 permit
208.75.120.0/22 permit 208.75.120.0/22 permit
@@ -1842,6 +1830,9 @@
209.46.117.168 permit 209.46.117.168 permit
209.46.117.179 permit 209.46.117.179 permit
209.61.151.0/24 permit 209.61.151.0/24 permit
209.61.151.236 permit
209.61.151.249 permit
209.61.151.251 permit
209.67.98.46 permit 209.67.98.46 permit
209.67.98.59 permit 209.67.98.59 permit
209.85.128.0/17 permit 209.85.128.0/17 permit
@@ -1951,7 +1942,6 @@
216.39.62.60/31 permit 216.39.62.60/31 permit
216.39.62.136/29 permit 216.39.62.136/29 permit
216.39.62.144/31 permit 216.39.62.144/31 permit
216.46.168.0/24 permit
216.58.192.0/19 permit 216.58.192.0/19 permit
216.66.217.240/29 permit 216.66.217.240/29 permit
216.71.138.33 permit 216.71.138.33 permit
@@ -1966,9 +1956,6 @@
216.99.5.68 permit 216.99.5.68 permit
216.109.114.32/27 permit 216.109.114.32/27 permit
216.109.114.64/29 permit 216.109.114.64/29 permit
216.113.160.0/24 permit
216.113.172.0/25 permit
216.113.175.0/24 permit
216.128.126.97 permit 216.128.126.97 permit
216.136.162.65 permit 216.136.162.65 permit
216.136.162.120/29 permit 216.136.162.120/29 permit
@@ -1999,6 +1986,8 @@
2603:1030:20e:3::23c permit 2603:1030:20e:3::23c permit
2603:1030:b:3::152 permit 2603:1030:b:3::152 permit
2603:1030:c02:8::14 permit 2603:1030:c02:8::14 permit
2607:13c0:0001:0000:0000:0000:0000:7000/116 permit
2607:13c0:0002:0000:0000:0000:0000:1000/116 permit
2607:f8b0:4000::/36 permit 2607:f8b0:4000::/36 permit
2620:109:c003:104::/64 permit 2620:109:c003:104::/64 permit
2620:109:c003:104::215 permit 2620:109:c003:104::215 permit
@@ -2007,6 +1996,8 @@
2620:109:c00d:104::/64 permit 2620:109:c00d:104::/64 permit
2620:10d:c090:400::8:1 permit 2620:10d:c090:400::8:1 permit
2620:10d:c091:400::8:1 permit 2620:10d:c091:400::8:1 permit
2620:10d:c09b:400::8:1 permit
2620:10d:c09c:400::8:1 permit
2620:119:50c0:207::/64 permit 2620:119:50c0:207::/64 permit
2620:119:50c0:207::215 permit 2620:119:50c0:207::215 permit
2800:3f0:4000::/36 permit 2800:3f0:4000::/36 permit

View File

@@ -1,20 +1,4 @@
rbls { rbls {
sorbs {
symbol = "RBL_SORBS";
rbl = "dnsbl.sorbs.net";
returncodes {
# http:// www.sorbs.net/general/using.shtml
RBL_SORBS_HTTP = "127.0.0.2";
RBL_SORBS_SOCKS = "127.0.0.3";
RBL_SORBS_MISC = "127.0.0.4";
RBL_SORBS_SMTP = "127.0.0.5";
RBL_SORBS_RECENT = "127.0.0.6";
RBL_SORBS_WEB = "127.0.0.7";
RBL_SORBS_DUL = "127.0.0.10";
RBL_SORBS_BLOCK = "127.0.0.8";
RBL_SORBS_ZOMBIE = "127.0.0.9";
}
}
interserver_ip { interserver_ip {
symbol = "RBL_INTERSERVER_IP"; symbol = "RBL_INTERSERVER_IP";
rbl = "rbl.interserver.net"; rbl = "rbl.interserver.net";

View File

@@ -5,46 +5,6 @@ symbols = {
"RBL_UCEPROTECT_LEVEL2" { "RBL_UCEPROTECT_LEVEL2" {
score = 1.5; score = 1.5;
} }
"RBL_SORBS" {
score = 0.0;
description = "Unrecognised result from SORBS RBL";
}
"RBL_SORBS_HTTP" {
score = 2.5;
description = "List of Open HTTP Proxy Servers.";
}
"RBL_SORBS_SOCKS" {
score = 2.5;
description = "List of Open SOCKS Proxy Servers.";
}
"RBL_SORBS_MISC" {
score = 1.0;
description = "List of open Proxy Servers not listed in the SOCKS or HTTP lists.";
}
"RBL_SORBS_SMTP" {
score = 4.0;
description = "List of Open SMTP relay servers.";
}
"RBL_SORBS_RECENT" {
score = 2.0;
description = "List of hosts that have been noted as sending spam/UCE/UBE to the admins of SORBS within the last 28 days (includes new.spam.dnsbl.sorbs.net).";
}
"RBL_SORBS_WEB" {
score = 2.0;
description = "List of web (WWW) servers which have spammer abusable vulnerabilities (e.g. FormMail scripts)";
}
"RBL_SORBS_DUL" {
score = 2.0;
description = "Dynamic IP Address ranges (NOT a Dial Up list!)";
}
"RBL_SORBS_BLOCK" {
score = 0.5;
description = "List of hosts demanding that they never be tested by SORBS.";
}
"RBL_SORBS_ZOMBIE" {
score = 2.0;
description = "List of networks hijacked from their original owners, some of which have already used for spamming.";
}
"RECEIVED_SPAMHAUS_XBL" { "RECEIVED_SPAMHAUS_XBL" {
weight = 0.0; weight = 0.0;
description = "Received address is listed in ZEN XBL"; description = "Received address is listed in ZEN XBL";

View File

@@ -1,4 +1,11 @@
<?php <?php
// Block requests by checking the 'Sec-Fetch-Dest' header.
if (isset($_SERVER['HTTP_SEC_FETCH_DEST']) && $_SERVER['HTTP_SEC_FETCH_DEST'] !== 'empty') {
header('HTTP/1.1 403 Forbidden');
exit;
}
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/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') {
exit(); exit();

View File

@@ -284,17 +284,17 @@ function last_login($action, $username, $sasl_limit_days = 7, $ui_offset = 1) {
} }
if (!$sasl[$k]['location']) { if (!$sasl[$k]['location']) {
$curl = curl_init(); $curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"https://dfdata.bella.network/lookup/" . $sasl[$k]['real_rip']); curl_setopt($curl, CURLOPT_URL,"https://dfdata.bella.network/country/" . $sasl[$k]['real_rip']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Moocow'); curl_setopt($curl, CURLOPT_USERAGENT, 'Moocow');
curl_setopt($curl, CURLOPT_TIMEOUT, 5); curl_setopt($curl, CURLOPT_TIMEOUT, 5);
$ip_data = curl_exec($curl); $ip_data = curl_exec($curl);
if (!curl_errno($curl)) { if (!curl_errno($curl)) {
$ip_data_array = json_decode($ip_data, true); $ip_data_array = json_decode($ip_data, true);
if ($ip_data_array !== false and !empty($ip_data_array['location']['shortcountry'])) { if ($ip_data_array !== false and !empty($ip_data_array['shortcountry'])) {
$sasl[$k]['location'] = $ip_data_array['location']['shortcountry']; $sasl[$k]['location'] = $ip_data_array['shortcountry'];
try { try {
$redis->hSet('IP_SHORTCOUNTRY', $sasl[$k]['real_rip'], $ip_data_array['location']['shortcountry']); $redis->hSet('IP_SHORTCOUNTRY', $sasl[$k]['real_rip'], $ip_data_array['shortcountry']);
} }
catch (RedisException $e) { catch (RedisException $e) {
$_SESSION['return'][] = array( $_SESSION['return'][] = array(

View File

@@ -145,17 +145,22 @@ function rspamd_maps($_action, $_data = null) {
$maps = (array)$_data['map']; $maps = (array)$_data['map'];
$valid_maps = array(); $valid_maps = array();
foreach ($maps as $map) { foreach ($maps as $map) {
$is_valid = false;
foreach ($RSPAMD_MAPS as $rspamd_map_type) { foreach ($RSPAMD_MAPS as $rspamd_map_type) {
if (!in_array($map, $rspamd_map_type)) { if (in_array($map, $rspamd_map_type)) {
$_SESSION['return'][] = array( $is_valid = true;
'type' => 'danger', break;
'log' => array(__FUNCTION__, $_action, '-'),
'msg' => array('global_map_invalid', $map)
);
} else {
array_push($valid_maps, $map);
} }
} }
if ($is_valid) {
array_push($valid_maps, $map);
} else {
$_SESSION['return'][] = array(
'type' => 'danger',
'log' => array(__FUNCTION__, $_action, '-'),
'msg' => array('global_map_invalid', $map)
);
}
} }
foreach ($valid_maps as $map) { foreach ($valid_maps as $map) {
try { try {

View File

@@ -49,7 +49,6 @@ $globalVariables = [
'app_links' => customize('get', 'app_links'), 'app_links' => customize('get', 'app_links'),
'is_root_uri' => (parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) == '/'), 'is_root_uri' => (parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) == '/'),
'uri' => $_SERVER['REQUEST_URI'], 'uri' => $_SERVER['REQUEST_URI'],
'last_login' => last_login('get', $_SESSION['mailcow_cc_username'], 7, 0)['ui']['time']
]; ];
foreach ($globalVariables as $globalVariableName => $globalVariableValue) { foreach ($globalVariables as $globalVariableName => $globalVariableValue) {

View File

@@ -1,7 +1,7 @@
headline: lang.sieve_preset_1 headline: lang.sieve_preset_1
content: | content: |
require ["reject","body","regex"]; require ["reject","body","regex"];
if anyof (body :raw :regex ["filename=.*\.doc","filename=.*\.exe","filename=.*\.moo"]) { if anyof (body :raw :regex ["filename=\".*\\.(doc|exe|moo)\""]) {
reject text: reject text:
doc, exe and moo are dangerous file extensions. doc, exe and moo are dangerous file extensions.
Why would you do that? I am a sad cow. Why would you do that? I am a sad cow.

View File

@@ -676,5 +676,5 @@ jQuery(function($){
onVisible("[id^=wl_policy_mailbox_table]", () => draw_wl_policy_mailbox_table()); onVisible("[id^=wl_policy_mailbox_table]", () => draw_wl_policy_mailbox_table());
onVisible("[id^=sync_job_table]", () => draw_sync_job_table()); onVisible("[id^=sync_job_table]", () => draw_sync_job_table());
onVisible("[id^=app_passwd_table]", () => draw_app_passwd_table()); onVisible("[id^=app_passwd_table]", () => draw_app_passwd_table());
last_logins('get'); onVisible("[id^=recent-logins]", () => last_logins('get'));
}); });

View File

@@ -19,7 +19,16 @@
"spam_alias": "Àlies temporals", "spam_alias": "Àlies temporals",
"spam_score": "Puntuació de correu brossa", "spam_score": "Puntuació de correu brossa",
"tls_policy": "Política TLS", "tls_policy": "Política TLS",
"unlimited_quota": "Quota ilimitada per bústies de correo" "unlimited_quota": "Quota ilimitada per bústies de correo",
"delimiter_action": "",
"ratelimit": "",
"smtp_ip_access": "",
"sogo_access": "",
"domain_relayhost": "",
"extend_sender_acl": "",
"mailbox_relayhost": "",
"pushover": "",
"spam_policy": ""
}, },
"add": { "add": {
"activate_filter_warn": "All other filters will be deactivated, when active is checked.", "activate_filter_warn": "All other filters will be deactivated, when active is checked.",
@@ -73,7 +82,33 @@
"validate": "Validar", "validate": "Validar",
"validation_success": "Validated successfully", "validation_success": "Validated successfully",
"app_name": "Nom de l'aplicació", "app_name": "Nom de l'aplicació",
"app_password": "Afegir contrasenya a l'aplicació" "app_password": "Afegir contrasenya a l'aplicació",
"dry": "",
"inactive": "",
"disable_login": "",
"goto_ham": "",
"goto_spam": "",
"mailbox_quota_def": "",
"private_comment": "",
"public_comment": "",
"relay_unknown_only": "",
"relayhost_wrapped_tls_info": "",
"subscribeall": "",
"tags": "",
"timeout1": "",
"timeout2": "",
"relay_transport_info": "",
"domain_matches_hostname": "",
"gal": "",
"gal_info": "",
"generate": "",
"nexthop": "",
"app_passwd_protocols": "",
"bcc_dest_format": "",
"comment_info": "",
"custom_params": "",
"custom_params_hint": "",
"destination": ""
}, },
"admin": { "admin": {
"access": "Accés", "access": "Accés",
@@ -156,7 +191,167 @@
"ui_texts": "Etiquetes i textos de la UI", "ui_texts": "Etiquetes i textos de la UI",
"unchanged_if_empty": "Si no hi ha canvis, deixa'l en blanc", "unchanged_if_empty": "Si no hi ha canvis, deixa'l en blanc",
"upload": "Pujar", "upload": "Pujar",
"username": "Nom d'usuari" "username": "Nom d'usuari",
"lookup_mx": "",
"logo_dark_label": "",
"optional": "",
"copy_to_clipboard": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"license_info": "",
"message": "",
"message_size": "",
"nexthop": "",
"no": "",
"no_active_bans": "",
"oauth2_apps": "",
"oauth2_client_secret": "",
"oauth2_info": "",
"password_policy_chars": "",
"password_policy_numbers": "",
"password_policy_special_chars": "",
"priority": "",
"quarantine_bcc": "",
"quarantine_max_size": "",
"quarantine_notification_html": "",
"quarantine_redirect": "",
"quarantine_release_format_att": "",
"quarantine_retention_size": "",
"quota_notification_html": "",
"quota_notification_subject": "",
"quota_notifications": "",
"relay_rcpt": "",
"relay_run": "",
"routing": "",
"rspamd_global_filters_regex": "",
"title": "",
"transport_maps": "",
"transport_test_rcpt_info": "",
"transports_hint": "",
"ui_header_announcement_active": "",
"validate_license_now": "",
"verify": "",
"yes": "",
"password_length": "",
"password_policy": "",
"logo_normal_label": "",
"f2b_max_ban_time": "",
"f2b_ban_time_increment": "",
"add_relayhost_hint": "",
"add_transport": "",
"add_transports_hint": "",
"admins": "",
"quarantine_exclude_domains": "",
"quarantine_max_age": "",
"quarantine_release_format_raw": "",
"quota_notification_sender": "",
"quota_notifications_info": "",
"quota_notifications_vars": "",
"r_active": "",
"r_inactive": "",
"rate_name": "",
"regex_maps": "",
"ui_header_announcement": "",
"cors_settings": "",
"allowed_methods": "",
"allowed_origins": "",
"oauth2_renew_secret": "",
"oauth2_revoke_tokens": "",
"send": "",
"success": "",
"sys_mails": "",
"text": "",
"time": "",
"unban_pending": "",
"ip_check": "",
"quarantine_notification_sender": "",
"dkim_domains_wo_keys": "",
"dkim_to": "",
"duplicate": "",
"excludes": "",
"f2b_blacklist": "",
"f2b_filter": "",
"guid": "",
"oauth2_add_client": "",
"rsetting_content": "",
"queue_unban": "",
"ip_check_disabled": "",
"ip_check_opt_in": "",
"options": "",
"relayhosts": "",
"reset_limit": "",
"rsetting_add_rule": "",
"rspamd_com_settings": "",
"ui_footer": "",
"dkim_from": "",
"admins_ldap": "",
"advanced_settings": "",
"api_info": "",
"api_read_only": "",
"api_read_write": "",
"api_skip_ip_check": "",
"arrival_time": "",
"authed_user": "",
"ays": "",
"activate_send": "",
"active_rspamd_settings_map": "",
"add_admin": "",
"add_settings_rule": "",
"oauth2_redirect_uri": "",
"domain_admin": "",
"password_policy_length": "",
"password_policy_lowerupper": "",
"quarantine_release_format": "",
"rsetting_none": "",
"rsettings_insert_preset": "",
"transport_dest_format": "",
"ban_list_info": "",
"convert_html_to_text": "",
"credentials_transport_warning": "",
"customer_id": "",
"destination": "",
"dkim_domains_selector": "",
"dkim_from_title": "",
"dkim_overwrite_key": "",
"dkim_to_title": "",
"domain_s": "",
"f2b_list_info": "",
"f2b_regex_info": "",
"from": "",
"generate": "",
"guid_and_license": "",
"hash_remove_info": "",
"html": "",
"include_exclude": "",
"include_exclude_info": "",
"includes": "",
"is_mx_based": "",
"last_applied": "",
"login_time": "",
"oauth2_client_id": "",
"quarantine_max_score": "",
"quarantine_notification_subject": "",
"rsetting_no_selection": "",
"rsettings_preset_1": "",
"rsettings_preset_2": "",
"rsettings_preset_3": "",
"rsettings_preset_4": "",
"rspamd_global_filters": "",
"rspamd_global_filters_agree": "",
"rspamd_global_filters_info": "",
"rspamd_settings_map": "",
"sal_level": "",
"service": "",
"service_id": "",
"ui_header_announcement_content": "",
"ui_header_announcement_help": "",
"ui_header_announcement_select": "",
"ui_header_announcement_type": "",
"ui_header_announcement_type_danger": "",
"ui_header_announcement_type_info": "",
"ui_header_announcement_type_warning": "",
"duplicate_dkim": "",
"r_info": ""
}, },
"danger": { "danger": {
"access_denied": "Accés denegat o dades incorrectes", "access_denied": "Accés denegat o dades incorrectes",
@@ -207,7 +402,87 @@
"target_domain_invalid": "El domini \"goto\" no és vàlid", "target_domain_invalid": "El domini \"goto\" no és vàlid",
"targetd_not_found": "No s'ha trobat el domini destí", "targetd_not_found": "No s'ha trobat el domini destí",
"username_invalid": "El nom d'usuari no es pot fer servir", "username_invalid": "El nom d'usuari no es pot fer servir",
"validity_missing": "Si et plau posa un període de validesa" "validity_missing": "Si et plau posa un període de validesa",
"webauthn_authenticator_failed": "",
"webauthn_publickey_failed": "",
"value_missing": "",
"unknown": "",
"app_name_empty": "",
"app_passwd_id_invalid": "",
"bcc_empty": "",
"invalid_bcc_map_type": "",
"invalid_filter_type": "",
"invalid_host": "",
"bcc_exists": "",
"bcc_must_be_email": "",
"comment_too_long": "",
"cors_invalid_method": "",
"cors_invalid_origin": "",
"defquota_empty": "",
"extended_sender_acl_denied": "",
"extra_acl_invalid": "",
"extra_acl_invalid_domain": "",
"fido2_verification_failed": "",
"file_open_error": "",
"filter_type": "",
"from_invalid": "",
"global_filter_write_error": "",
"global_map_invalid": "",
"global_map_write_error": "",
"ham_learn_error": "",
"invalid_nexthop": "",
"invalid_recipient_map_new": "",
"invalid_destination": "",
"tfa_token_invalid": "",
"tls_policy_map_dest_invalid": "",
"rl_timeframe": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": "",
"invalid_nexthop_authenticated": "",
"invalid_recipient_map_old": "",
"private_key_error": "",
"pushover_credentials_missing": "",
"pushover_key": "",
"pushover_token": "",
"recipient_map_entry_exists": "",
"redis_error": "",
"relayhost_invalid": "",
"reset_f2b_regex": "",
"rspamd_ui_pw_length": "",
"script_empty": "",
"set_acl_failed": "",
"targetd_relay_domain": "",
"template_exists": "",
"template_id_invalid": "",
"template_name_invalid": "",
"temp_error": "",
"text_empty": "",
"tls_policy_map_entry_exists": "",
"tls_policy_map_parameter_invalid": "",
"totp_verification_failed": "",
"transport_dest_exists": "",
"webauthn_verification_failed": "",
"webauthn_username_failed": "",
"unknown_tfa_method": "",
"unlimited_quota_acl": "",
"yotp_verification_failed": "",
"no_user_defined": "",
"demo_mode_enabled": "",
"dkim_domain_or_sel_exists": "",
"domain_cannot_match_hostname": "",
"ip_list_empty": "",
"settings_map_invalid": "",
"sieve_error": "",
"spam_learn_error": "",
"subject_empty": "",
"mailbox_defquota_exceeds_mailbox_maxquota": "",
"malformed_username": "",
"map_content_empty": "",
"mysql_error": "",
"network_host_invalid": "",
"next_hop_interferes": "",
"next_hop_interferes_any": "",
"nginx_reload_failed": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Valor derivat de registre A/AAAA. Això és compatible sempre que el registre assenyali el recurs correcte.", "cname_from_a": "Valor derivat de registre A/AAAA. Això és compatible sempre que el registre assenyali el recurs correcte.",
@@ -217,7 +492,8 @@
"dns_records_name": "Nom", "dns_records_name": "Nom",
"dns_records_status": "Valor actual", "dns_records_status": "Valor actual",
"dns_records_type": "Tipus", "dns_records_type": "Tipus",
"optional": "Aquest registre és opcional." "optional": "Aquest registre és opcional.",
"dns_records_docs": ""
}, },
"edit": { "edit": {
"active": "Actiu", "active": "Actiu",
@@ -273,7 +549,82 @@
"title": "Editar l'objecte", "title": "Editar l'objecte",
"unchanged_if_empty": "Si no hay cambios dejalo en blanco", "unchanged_if_empty": "Si no hay cambios dejalo en blanco",
"username": "Usuari", "username": "Usuari",
"validate_save": "Validar i desar" "validate_save": "Validar i desar",
"lookup_mx": "",
"acl": "",
"admin": "",
"allow_from_smtp": "",
"footer_exclude": "",
"domain_footer_skip_replies": "",
"domain_footer_plain": "",
"gal_info": "",
"grant_types": "",
"pushover": "",
"scope": "",
"custom_attributes": "",
"disable_login": "",
"none_inherit": "",
"pushover_info": "",
"domain_footer": "",
"domain_footer_html": "",
"domain_footer_info_vars": {
"from_name": "",
"from_addr": "",
"from_domain": "",
"auth_user": "",
"from_user": "",
"custom": ""
},
"gal": "",
"mbox_rl_info": "",
"nexthop": "",
"private_comment": "",
"public_comment": "",
"pushover_evaluate_x_prio": "",
"pushover_only_x_prio": "",
"pushover_sender_array": "",
"pushover_sender_regex": "",
"sogo_visible": "",
"allow_from_smtp_info": "",
"allowed_protocols": "",
"app_name": "",
"app_passwd": "",
"bcc_dest_format": "",
"client_id": "",
"client_secret": "",
"comment_info": "",
"created_on": "",
"delete_ays": "",
"domain_footer_info": "",
"inactive": "",
"extended_sender_acl": "",
"extended_sender_acl_info": "",
"last_modified": "",
"mailbox_quota_def": "",
"mailbox_relayhost_info": "",
"pushover_text": "",
"pushover_title": "",
"sender_acl_disabled": "",
"sender_acl_info": "",
"sogo_access_info": "",
"sogo_visible_info": "",
"timeout1": "",
"timeout2": "",
"generate": "",
"app_passwd_protocols": "",
"ratelimit": "",
"relayhost": "",
"pushover_sound": "",
"pushover_vars": "",
"pushover_verify": "",
"quota_warning_bcc": "",
"quota_warning_bcc_info": "",
"relay_transport_info": "",
"relay_unknown_only": "",
"spam_filter": "",
"advanced_settings": "",
"redirect_uri": "",
"sogo_access": ""
}, },
"footer": { "footer": {
"cancel": "Cancel·lar", "cancel": "Cancel·lar",
@@ -282,7 +633,13 @@
"delete_these_items": "Si et plau confirma els canvis al objecte amb id:", "delete_these_items": "Si et plau confirma els canvis al objecte amb id:",
"loading": "Si et plau espera ...", "loading": "Si et plau espera ...",
"restart_container_info": "<b>Important:</b> Un reinici pot trigar una estona, si et plau espera a que acabi.", "restart_container_info": "<b>Important:</b> Un reinici pot trigar una estona, si et plau espera a que acabi.",
"restart_now": "Reiniciar ara" "restart_now": "Reiniciar ara",
"hibp_check": "",
"hibp_nok": "",
"hibp_ok": "",
"nothing_selected": "",
"restart_container": "",
"restarting_container": ""
}, },
"header": { "header": {
"administration": "Administració", "administration": "Administració",
@@ -291,16 +648,24 @@
"mailcow_config": "Configuració", "mailcow_config": "Configuració",
"quarantine": "Quarantena", "quarantine": "Quarantena",
"restart_sogo": "Reiniciar SOGo", "restart_sogo": "Reiniciar SOGo",
"user_settings": "Preferències d'usuari" "user_settings": "Preferències d'usuari",
"restart_netfilter": "",
"apps": "",
"mailcow_system": ""
}, },
"info": { "info": {
"no_action": "No hi ha cap acció aplicable" "no_action": "No hi ha cap acció aplicable",
"awaiting_tfa_confirmation": "",
"session_expires": ""
}, },
"login": { "login": {
"delayed": "Pots iniciar de sessió passats %s segons.", "delayed": "Pots iniciar de sessió passats %s segons.",
"login": "Inici de sessió", "login": "Inici de sessió",
"password": "Contrasenya", "password": "Contrasenya",
"username": "Nom d'usuari" "username": "Nom d'usuari",
"fido2_webauthn": "",
"mobileconfig_info": "",
"other_logins": ""
}, },
"mailbox": { "mailbox": {
"action": "Acció", "action": "Acció",
@@ -385,7 +750,97 @@
"tls_enforce_out": "Forçar TLS al enviar", "tls_enforce_out": "Forçar TLS al enviar",
"toggle_all": "Tots", "toggle_all": "Tots",
"username": "Nom d'usuari", "username": "Nom d'usuari",
"waiting": "Esperant" "waiting": "Esperant",
"booking_0_short": "",
"booking_null": "",
"booking_custom": "",
"sieve_preset_8": "",
"sieve_preset_header": "",
"sogo_visible": "",
"stats": "",
"tls_policy_maps_long": "",
"quarantine_notification": "",
"recipient_map_old_info": "",
"table_size_show_n": "",
"tls_map_dest": "",
"tls_map_dest_info": "",
"sieve_preset_2": "",
"add_tls_policy_map": "",
"sieve_preset_3": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"table_size": "",
"tls_map_parameters": "",
"disable_x": "",
"domain_templates": "",
"last_pw_change": "",
"no": "",
"public_comment": "",
"q_add_header": "",
"q_reject": "",
"recipient": "",
"relay_unknown": "",
"sieve_preset_1": "",
"sieve_preset_7": "",
"tls_map_parameters_info": "",
"tls_map_policy": "",
"tls_policy_maps": "",
"dkim_domains_selector": "",
"templates": "",
"never": "",
"add_template": "",
"all_domains": "",
"allowed_protocols": "",
"bcc_map": "",
"booking_custom_short": "",
"booking_ltnull": "",
"booking_lt0_short": "",
"catch_all": "",
"created_on": "",
"daily": "",
"disable_login": "",
"domain_quota_total": "",
"enable_x": "",
"gal": "",
"goto_ham": "",
"goto_spam": "",
"hourly": "",
"insert_preset": "",
"last_mail_login": "",
"last_modified": "",
"mailbox": "",
"mailbox_defaults": "",
"mailbox_defaults_info": "",
"mailbox_defquota": "",
"mailbox_templates": "",
"open_logs": "",
"private_comment": "",
"q_all": "",
"quarantine_category": "",
"recipient_map_new_info": "",
"sender": "",
"sieve_preset_4": "",
"sieve_preset_5": "",
"syncjob_last_run_result": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"template": "",
"tls_policy_maps_enforced_tls": "",
"tls_policy_maps_info": "",
"weekly": "",
"yes": "",
"sogo_visible_n": "",
"add_alias_expand": "",
"alias_domain_alias_hint": "",
"alias_domain_backupmx": "",
"allow_from_smtp": "",
"allow_from_smtp_info": "",
"sogo_visible_y": "",
"syncjob_check_log": "",
"syncjob_EX_OK": "",
"sieve_preset_6": ""
}, },
"quarantine": { "quarantine": {
"action": "Acció", "action": "Acció",
@@ -408,15 +863,59 @@
"subj": "Assumpte", "subj": "Assumpte",
"text_from_html_content": "Contingut (a partir del HTML)", "text_from_html_content": "Contingut (a partir del HTML)",
"text_plain_content": "Contingut (text/plain)", "text_plain_content": "Contingut (text/plain)",
"toggle_all": "Marcar tots" "toggle_all": "Marcar tots",
"deliver_inbox": "",
"spam_score": "",
"table_size": "",
"type": "",
"learn_spam_delete": "",
"confirm": "",
"confirm_delete": "",
"danger": "",
"disabled_by_config": "",
"spam": "",
"download_eml": "",
"high_danger": "",
"info": "",
"junk_folder": "",
"low_danger": "",
"medium_danger": "",
"neutral_danger": "",
"notified": "",
"qhandler_success": "",
"qinfo": "",
"quick_delete_link": "",
"quick_info_link": "",
"quick_release_link": "",
"rspamd_result": "",
"sender_header": "",
"settings_info": "",
"table_size_show_n": "",
"refresh": "",
"rejected": "",
"rewrite_subject": ""
}, },
"queue": { "queue": {
"queue_manager": "Queue Manager" "queue_manager": "Queue Manager",
"delete": "",
"flush": "",
"info": "",
"legend": "",
"ays": "",
"hold_mail": "",
"hold_mail_legend": "",
"unhold_mail": "",
"unhold_mail_legend": "",
"deliver_mail": "",
"deliver_mail_legend": "",
"show_message": "",
"unban": ""
}, },
"start": { "start": {
"help": "Mostrar/Ocultar panell d'ajuda", "help": "Mostrar/Ocultar panell d'ajuda",
"mailcow_apps_detail": "Tria una aplicació (de moment només SOGo) per a accedir als teus correus, calendari, contactes i més.", "mailcow_apps_detail": "Tria una aplicació (de moment només SOGo) per a accedir als teus correus, calendari, contactes i més.",
"mailcow_panel_detail": "Els <b>administradors del domini</b> poden crear, modificar o esborrar bústies i àlies, configurar i obtenir informació detallada sobre els seus dominis<br>\r\n\tEls <b>usuaris d'e-mail</b> poden crear àlies temporals (spam àlies), canviar la seva contrasenya i la configuració del seu filtre anti-spam." "mailcow_panel_detail": "Els <b>administradors del domini</b> poden crear, modificar o esborrar bústies i àlies, configurar i obtenir informació detallada sobre els seus dominis<br>\r\n\tEls <b>usuaris d'e-mail</b> poden crear àlies temporals (spam àlies), canviar la seva contrasenya i la configuració del seu filtre anti-spam.",
"imap_smtp_server_auth_info": ""
}, },
"success": { "success": {
"admin_modified": "Els canvis fets a l'administrador s'han desat", "admin_modified": "Els canvis fets a l'administrador s'han desat",
@@ -453,7 +952,56 @@
"resource_modified": "S'han desat els canvis fets al recurs %s", "resource_modified": "S'han desat els canvis fets al recurs %s",
"resource_removed": "S'ha esborrat el recurs %s", "resource_removed": "S'ha esborrat el recurs %s",
"ui_texts": "S'han desat els canvis als noms de App", "ui_texts": "S'han desat els canvis als noms de App",
"upload_success": "El fitxer s'ha pujat" "upload_success": "El fitxer s'ha pujat",
"template_removed": "",
"tls_policy_map_entry_deleted": "",
"app_passwd_added": "",
"bcc_saved": "",
"hash_deleted": "",
"ip_check_opt_in_modified": "",
"item_released": "",
"learned_ham": "",
"license_modified": "",
"logged_in_as": "",
"pushover_settings_edited": "",
"qlearn_spam": "",
"queue_command_success": "",
"recipient_map_entry_deleted": "",
"recipient_map_entry_saved": "",
"settings_map_removed": "",
"verified_fido2_login": "",
"global_filter_written": "",
"bcc_deleted": "",
"cors_headers_edited": "",
"db_init_complete": "",
"delete_filter": "",
"delete_filters": "",
"deleted_syncjob": "",
"deleted_syncjobs": "",
"domain_add_dkim_available": "",
"dkim_duplicated": "",
"sogo_profile_reset": "",
"template_modified": "",
"tls_policy_map_entry_saved": "",
"verified_webauthn_login": "",
"template_added": "",
"acl_saved": "",
"admin_added": "",
"admin_api_modified": "",
"admin_removed": "",
"app_passwd_removed": "",
"bcc_edited": "",
"domain_footer_modified": "",
"dovecot_restart_success": "",
"f2b_banlist_refreshed": "",
"rl_saved": "",
"rspamd_ui_pw_set": "",
"saved_settings": "",
"settings_map_added": "",
"verified_totp_login": "",
"verified_yotp_login": "",
"nginx_reloaded": "",
"password_policy_saved": ""
}, },
"tfa": { "tfa": {
"api_register": "%s fa servir la Yubico Cloud API. Obté una API key per la teva clau <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">aquí</a>", "api_register": "%s fa servir la Yubico Cloud API. Obté una API key per la teva clau <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">aquí</a>",
@@ -473,7 +1021,15 @@
"webauthn": "Autenticació WebAuthn", "webauthn": "Autenticació WebAuthn",
"waiting_usb_auth": "<i>Esperant el dispositiu USB...</i><br><br>Apreta el botó del teu dispositiu USB WebAuthn ara.", "waiting_usb_auth": "<i>Esperant el dispositiu USB...</i><br><br>Apreta el botó del teu dispositiu USB WebAuthn ara.",
"waiting_usb_register": "<i>Esperant el dispositiu USB...</i><br><br>Posa el teu password i confirma el registre del teu WebAuthn apretant el botó del teu dispositiiu USB WebAuthn.", "waiting_usb_register": "<i>Esperant el dispositiu USB...</i><br><br>Posa el teu password i confirma el registre del teu WebAuthn apretant el botó del teu dispositiiu USB WebAuthn.",
"yubi_otp": "Autenticació OTP de Yubico" "yubi_otp": "Autenticació OTP de Yubico",
"reload_retry": "",
"authenticators": "",
"error_code": "",
"start_webauthn_validation": "",
"tfa_token_invalid": "",
"init_webauthn": "",
"u2f_deprecated": "",
"u2f_deprecated_important": ""
}, },
"user": { "user": {
"action": "Acció", "action": "Acció",
@@ -556,6 +1112,198 @@
"username": "Usuari", "username": "Usuari",
"waiting": "Esperant", "waiting": "Esperant",
"week": "Setmana", "week": "Setmana",
"weeks": "Setmanes" "weeks": "Setmanes",
"last_mail_login": "",
"last_pw_change": "",
"last_ui_login": "",
"login_history": "",
"open_logs": "",
"password": "",
"pushover_info": "",
"pushover_sender_array": "",
"app_hint": "",
"allowed_protocols": "",
"apple_connection_profile": "",
"apple_connection_profile_complete": "",
"apple_connection_profile_with_app_password": "",
"delete_ays": "",
"pushover_sound": "",
"years": "",
"daily": "",
"attribute": "",
"hourly": "",
"mailbox": "",
"mailbox_general": "",
"mailbox_settings": "",
"pushover_evaluate_x_prio": "",
"pushover_only_x_prio": "",
"q_add_header": "",
"quarantine_notification": "",
"sogo_profile_reset": "",
"app_passwds": "",
"created_on": "",
"change_password_hint_app_passwords": "",
"clear_recent_successful_connections": "",
"create_app_passwd": "",
"month": "",
"months": "",
"open_webmail_sso": "",
"password_repeat": "",
"pushover_text": "",
"quarantine_notification_info": "",
"recent_successful_connections": "",
"save": "",
"sender_acl_disabled": "",
"sogo_profile_reset_now": "",
"verify": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_check_log": "",
"title": "",
"apple_connection_profile_mailonly": "",
"expire_in": "",
"fido2_webauthn": "",
"pushover_sender_regex": "",
"pushover_title": "",
"pushover_vars": "",
"pushover_verify": "",
"q_all": "",
"quarantine_category": "",
"quarantine_category_info": "",
"sogo_profile_reset_help": "",
"spam_score_reset": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"value": "",
"with_app_password": "",
"year": "",
"from": "",
"text": "",
"q_reject": "",
"generate": "",
"advanced_settings": "",
"app_name": "",
"direct_protocol_access": "",
"email": "",
"email_and_dav": "",
"empty": "",
"never": "",
"no_last_login": "",
"weekly": ""
},
"datatables": {
"decimal": "",
"infoPostFix": "",
"collapse_all": "",
"emptyTable": "",
"expand_all": "",
"info": "",
"infoEmpty": "",
"infoFiltered": "",
"lengthMenu": "",
"loadingRecords": "",
"processing": "",
"search": "",
"zeroRecords": "",
"paginate": {
"first": "",
"last": "",
"next": "",
"previous": ""
},
"aria": {
"sortAscending": "",
"sortDescending": ""
},
"thousands": ""
},
"debug": {
"history_all_servers": "",
"architecture": "",
"containers_info": "",
"container_running": "",
"docs": "",
"login_time": "",
"logs": "",
"error_show_ip": "",
"external_logs": "",
"in_memory_logs": "",
"jvm_memory_solr": "",
"last_modified": "",
"log_info": "",
"memory": "",
"online_users": "",
"restart_container": "",
"show_ip": "",
"size": "",
"solr_status": "",
"started_at": "",
"started_on": "",
"static_logs": "",
"success": "",
"system_containers": "",
"timezone": "",
"uptime": "",
"update_available": "",
"no_update_available": "",
"chart_this_server": "",
"container_disabled": "",
"container_stopped": "",
"cores": "",
"current_time": "",
"disk_usage": "",
"solr_dead": "",
"update_failed": "",
"username": "",
"wip": "",
"service": ""
},
"warning": {
"domain_added_sogo_failed": "",
"dovecot_restart_failed": "",
"fuzzy_learn_error": "",
"hash_not_found": "",
"no_active_admin": "",
"quota_exceeded_scope": "",
"cannot_delete_self": "",
"session_token": "",
"session_ua": "",
"ip_invalid": "",
"is_not_primary_alias": ""
},
"ratelimit": {
"hour": "",
"day": "",
"disabled": "",
"second": "",
"minute": ""
},
"oauth2": {
"permit": "",
"profile": "",
"scope_ask_permission": "",
"authorize_app": "",
"deny": "",
"profile_desc": "",
"access_denied": ""
},
"fido2": {
"confirm": "",
"fido2_auth": "",
"fido2_success": "",
"fido2_validation_failed": "",
"fn": "",
"known_ids": "",
"register_status": "",
"rename": "",
"set_fido2": "",
"set_fido2_touchid": "",
"set_fn": "",
"start_fido2_validation": "",
"none": ""
} }
} }

View File

@@ -346,7 +346,12 @@
"f2b_ban_time_increment": "Délka banu je prodlužována s každým dalším banem", "f2b_ban_time_increment": "Délka banu je prodlužována s každým dalším banem",
"f2b_max_ban_time": "Maximální délka banu (s)", "f2b_max_ban_time": "Maximální délka banu (s)",
"cors_settings": "Nastavení CORS", "cors_settings": "Nastavení CORS",
"queue_unban": "zrušit ban" "queue_unban": "zrušit ban",
"copy_to_clipboard": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"allowed_methods": "",
"allowed_origins": ""
}, },
"danger": { "danger": {
"access_denied": "Přístup odepřen nebo jsou neplatná data ve formuláři", "access_denied": "Přístup odepřen nebo jsou neplatná data ve formuláři",
@@ -475,7 +480,9 @@
"webauthn_publickey_failed": "Pro vybraný ověřovací prostředek nebyl uložen žádný veřejný klíč", "webauthn_publickey_failed": "Pro vybraný ověřovací prostředek nebyl uložen žádný veřejný klíč",
"webauthn_username_failed": "Zvolený ověřovací prostředek patří k jinému účtu", "webauthn_username_failed": "Zvolený ověřovací prostředek patří k jinému účtu",
"extended_sender_acl_denied": "chybějící ACL pro nastavení externích adres odesílatele", "extended_sender_acl_denied": "chybějící ACL pro nastavení externích adres odesílatele",
"demo_mode_enabled": "Demo režim je zapnutý" "demo_mode_enabled": "Demo režim je zapnutý",
"img_dimensions_exceeded": "",
"img_size_exceeded": ""
}, },
"datatables": { "datatables": {
"emptyTable": "Tabulka neobsahuje žádná data", "emptyTable": "Tabulka neobsahuje žádná data",
@@ -500,7 +507,8 @@
"decimal": ",", "decimal": ",",
"thousands": " ", "thousands": " ",
"collapse_all": "Sbalit vše", "collapse_all": "Sbalit vše",
"expand_all": "Rozbalit vše" "expand_all": "Rozbalit vše",
"infoPostFix": ""
}, },
"debug": { "debug": {
"chart_this_server": "Graf (tento server)", "chart_this_server": "Graf (tento server)",
@@ -540,7 +548,8 @@
"update_failed": "Nepodařilo se zkontrolovat aktualizace", "update_failed": "Nepodařilo se zkontrolovat aktualizace",
"wip": "Nedokončená vývojová verze", "wip": "Nedokončená vývojová verze",
"memory": "Paměť", "memory": "Paměť",
"container_disabled": "Kontejner je zastaven nebo zakázán" "container_disabled": "Kontejner je zastaven nebo zakázán",
"cores": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Hodnota odvozena z A/AAAA záznamu. Lze použít, pokud záznam ukazuje na správný zdroj.", "cname_from_a": "Hodnota odvozena z A/AAAA záznamu. Lze použít, pokud záznam ukazuje na správný zdroj.",
@@ -672,12 +681,17 @@
"auth_user": "{= auth_user =} - Ověřené uživatelské jméno zadané MTA", "auth_user": "{= auth_user =} - Ověřené uživatelské jméno zadané MTA",
"from_user": "{= from_user =} - uživatelská část odesílatele, např. pro \"moo@mailcow.tld\" vrátí \"moo\"", "from_user": "{= from_user =} - uživatelská část odesílatele, např. pro \"moo@mailcow.tld\" vrátí \"moo\"",
"from_domain": "{= from_domain =} - Doména odesílatele", "from_domain": "{= from_domain =} - Doména odesílatele",
"from_addr": "{= from_addr =} - E-mailová adresa odesílatele" "from_addr": "{= from_addr =} - E-mailová adresa odesílatele",
"custom": ""
}, },
"domain_footer": "Patička pro celou doménu", "domain_footer": "Patička pro celou doménu",
"domain_footer_html": "HTML text", "domain_footer_html": "HTML text",
"domain_footer_plain": "Prostý text", "domain_footer_plain": "Prostý text",
"pushover_sound": "Zvukové upozornění" "pushover_sound": "Zvukové upozornění",
"footer_exclude": "",
"custom_attributes": "",
"domain_footer_skip_replies": "",
"pushover": ""
}, },
"fido2": { "fido2": {
"confirm": "Potvrdit", "confirm": "Potvrdit",
@@ -985,7 +999,8 @@
"hold_mail_legend": "Podrží vybrané e-maily. (Zabrání dalším pokusům o doručení)", "hold_mail_legend": "Podrží vybrané e-maily. (Zabrání dalším pokusům o doručení)",
"show_message": "Zobrazit zprávu", "show_message": "Zobrazit zprávu",
"unhold_mail": "Uvolnit", "unhold_mail": "Uvolnit",
"unhold_mail_legend": "Uvolnit vybrané e-maily k doručení. (Pouze v případě předchozího podržení)" "unhold_mail_legend": "Uvolnit vybrané e-maily k doručení. (Pouze v případě předchozího podržení)",
"unban": ""
}, },
"ratelimit": { "ratelimit": {
"disabled": "Vypnuto", "disabled": "Vypnuto",
@@ -1081,7 +1096,10 @@
"verified_webauthn_login": "WebAuthn přihlášení ověřeno", "verified_webauthn_login": "WebAuthn přihlášení ověřeno",
"verified_yotp_login": "Yubico OTP přihlášení ověřeno", "verified_yotp_login": "Yubico OTP přihlášení ověřeno",
"cors_headers_edited": "Nastavení CORS byla uložena", "cors_headers_edited": "Nastavení CORS byla uložena",
"domain_footer_modified": "Změny patičky domény %s byly uloženy" "domain_footer_modified": "Změny patičky domény %s byly uloženy",
"f2b_banlist_refreshed": "",
"domain_add_dkim_available": "",
"ip_check_opt_in_modified": ""
}, },
"tfa": { "tfa": {
"api_register": "%s používá Yubico Cloud API. Prosím získejte API klíč pro své Yubico <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">ZDE</a>", "api_register": "%s používá Yubico Cloud API. Prosím získejte API klíč pro své Yubico <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">ZDE</a>",
@@ -1106,7 +1124,10 @@
"webauthn": "WebAuthn ověření", "webauthn": "WebAuthn ověření",
"waiting_usb_auth": "<i>Čeká se na USB zařízení...</i><br><br>Prosím stiskněte tlačítko na svém WebAuthn USB zařízení.", "waiting_usb_auth": "<i>Čeká se na USB zařízení...</i><br><br>Prosím stiskněte tlačítko na svém WebAuthn USB zařízení.",
"waiting_usb_register": "<i>Čeká se na USB zařízení...</i><br><br>Prosím zadejte své heslo výše a potvrďte WebAuthn registraci stiskem tlačítka na svém WebAuthn USB zařízení.", "waiting_usb_register": "<i>Čeká se na USB zařízení...</i><br><br>Prosím zadejte své heslo výše a potvrďte WebAuthn registraci stiskem tlačítka na svém WebAuthn USB zařízení.",
"yubi_otp": "Yubico OTP ověření" "yubi_otp": "Yubico OTP ověření",
"authenticators": "",
"u2f_deprecated": "",
"u2f_deprecated_important": ""
}, },
"user": { "user": {
"action": "Akce", "action": "Akce",
@@ -1268,7 +1289,9 @@
"with_app_password": "s heslem aplikace", "with_app_password": "s heslem aplikace",
"year": "rok", "year": "rok",
"years": "let", "years": "let",
"pushover_sound": "Zvukové upozornění" "pushover_sound": "Zvukové upozornění",
"attribute": "",
"value": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "Nelze smazat právě přihlášeného uživatele", "cannot_delete_self": "Nelze smazat právě přihlášeného uživatele",

View File

@@ -107,7 +107,8 @@
"validation_success": "Valideret med succes", "validation_success": "Valideret med succes",
"bcc_dest_format": "BCC-destination skal være en enkelt gyldig e-mail-adresse.<br>Hvis du har brug for at sende en kopi til flere adresser, kan du oprette et alias og bruge det her.", "bcc_dest_format": "BCC-destination skal være en enkelt gyldig e-mail-adresse.<br>Hvis du har brug for at sende en kopi til flere adresser, kan du oprette et alias og bruge det her.",
"app_passwd_protocols": "Tilladte protokoller for app adgangskode", "app_passwd_protocols": "Tilladte protokoller for app adgangskode",
"tags": "Tag's" "tags": "Tag's",
"dry": ""
}, },
"admin": { "admin": {
"access": "Adgang", "access": "Adgang",
@@ -317,7 +318,40 @@
"yes": "&#10003;", "yes": "&#10003;",
"ip_check_opt_in": "Opt-In for brug af tredjepartstjeneste <strong>ipv4.mailcow.email</strong> og <strong>ipv6.mailcow.email</strong> til at finde eksterne IP-adresser.", "ip_check_opt_in": "Opt-In for brug af tredjepartstjeneste <strong>ipv4.mailcow.email</strong> og <strong>ipv6.mailcow.email</strong> til at finde eksterne IP-adresser.",
"queue_unban": "unban", "queue_unban": "unban",
"admins": "Administratorer" "admins": "Administratorer",
"copy_to_clipboard": "",
"f2b_ban_time_increment": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"logo_normal_label": "",
"logo_dark_label": "",
"f2b_max_ban_time": "",
"cors_settings": "",
"allowed_origins": "",
"allowed_methods": "",
"options": "",
"password_length": "",
"password_policy": "",
"password_policy_chars": "",
"password_policy_length": "",
"ip_check": "",
"login_time": "",
"oauth2_apps": "",
"oauth2_add_client": "",
"password_policy_lowerupper": "",
"password_policy_numbers": "",
"password_policy_special_chars": "",
"relay_rcpt": "",
"service": "",
"transport_test_rcpt_info": "",
"ip_check_disabled": "",
"rsettings_preset_4": "",
"convert_html_to_text": "",
"success": "",
"is_mx_based": "",
"admins_ldap": "",
"api_read_only": "",
"api_read_write": ""
}, },
"danger": { "danger": {
"access_denied": "Adgang nægtet eller ugyldig formular data", "access_denied": "Adgang nægtet eller ugyldig formular data",
@@ -435,7 +469,20 @@
"validity_missing": "Tildel venligst en gyldighedsperiode", "validity_missing": "Tildel venligst en gyldighedsperiode",
"value_missing": "Angiv alle værdier", "value_missing": "Angiv alle værdier",
"yotp_verification_failed": "Yubico OTP verifikationen mislykkedes: %s", "yotp_verification_failed": "Yubico OTP verifikationen mislykkedes: %s",
"webauthn_publickey_failed": "Der er ikke gemt nogen offentlig nøgle for den valgte autentifikator" "webauthn_publickey_failed": "Der er ikke gemt nogen offentlig nøgle for den valgte autentifikator",
"cors_invalid_method": "",
"cors_invalid_origin": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": "",
"webauthn_authenticator_failed": "",
"webauthn_username_failed": "",
"nginx_reload_failed": "",
"template_exists": "",
"extended_sender_acl_denied": "",
"extra_acl_invalid_domain": "",
"template_id_invalid": "",
"template_name_invalid": "",
"demo_mode_enabled": ""
}, },
"debug": { "debug": {
"chart_this_server": "Diagram (denne server)", "chart_this_server": "Diagram (denne server)",
@@ -453,7 +500,30 @@
"started_on": "Startede den", "started_on": "Startede den",
"static_logs": "Statiske logfiler", "static_logs": "Statiske logfiler",
"system_containers": "System og Beholdere", "system_containers": "System og Beholdere",
"error_show_ip": "Kunne ikke finde de offentlige IP-adresser" "error_show_ip": "Kunne ikke finde de offentlige IP-adresser",
"update_available": "",
"username": "",
"timezone": "",
"started_at": "",
"success": "",
"uptime": "",
"architecture": "",
"container_running": "",
"cores": "",
"current_time": "",
"docs": "",
"last_modified": "",
"login_time": "",
"memory": "",
"show_ip": "",
"size": "",
"no_update_available": "",
"update_failed": "",
"wip": "",
"online_users": "",
"service": "",
"container_disabled": "",
"container_stopped": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Værdi afledt af A / AAAA-post. Dette understøttes, så længe posten peger på den korrekte ressource.", "cname_from_a": "Værdi afledt af A / AAAA-post. Dette understøttes, så længe posten peger på den korrekte ressource.",
@@ -568,7 +638,34 @@
"admin": "Rediger administrator", "admin": "Rediger administrator",
"lookup_mx": "Destination er et regulært udtryk, der matcher MX-navnet (<code>.*google\\.dk</code> for at dirigere al e-mail, der er målrettet til en MX, der ender på google.dk, over dette hop)", "lookup_mx": "Destination er et regulært udtryk, der matcher MX-navnet (<code>.*google\\.dk</code> for at dirigere al e-mail, der er målrettet til en MX, der ender på google.dk, over dette hop)",
"mailbox_relayhost_info": "Anvendt på postkassen og kun direkte aliasser, og overskriver et domæne relæ-host.", "mailbox_relayhost_info": "Anvendt på postkassen og kun direkte aliasser, og overskriver et domæne relæ-host.",
"quota_warning_bcc": "Kvoteadvarsel BCC" "quota_warning_bcc": "Kvoteadvarsel BCC",
"footer_exclude": "",
"custom_attributes": "",
"last_modified": "",
"app_passwd_protocols": "",
"created_on": "",
"domain_footer_info_vars": {
"custom": "",
"auth_user": "",
"from_user": "",
"from_name": "",
"from_addr": "",
"from_domain": ""
},
"domain_footer_skip_replies": "",
"spam_filter": "",
"domain_footer": "",
"domain_footer_html": "",
"domain_footer_info": "",
"domain_footer_plain": "",
"sogo_access_info": "",
"acl": "",
"none_inherit": "",
"pushover": "",
"pushover_sound": "",
"quota_warning_bcc_info": "",
"ratelimit": "",
"sogo_access": ""
}, },
"footer": { "footer": {
"cancel": "Afbestille", "cancel": "Afbestille",
@@ -581,7 +678,9 @@
"restart_container": "Genstart beholderen", "restart_container": "Genstart beholderen",
"restart_container_info": "<b>Vigtig:</b> Det kan tage et stykke tid at gennemføre en yndefuld genstart. Vent til den er færdig.", "restart_container_info": "<b>Vigtig:</b> Det kan tage et stykke tid at gennemføre en yndefuld genstart. Vent til den er færdig.",
"restart_now": "Genstart nu", "restart_now": "Genstart nu",
"restarting_container": "Genstart af beholder, det kan tage et stykke tid" "restarting_container": "Genstart af beholder, det kan tage et stykke tid",
"hibp_check": "",
"nothing_selected": ""
}, },
"header": { "header": {
"administration": "Konfiguration og detailer", "administration": "Konfiguration og detailer",
@@ -592,7 +691,8 @@
"quarantine": "Karantæne", "quarantine": "Karantæne",
"restart_netfilter": "Genstart netfilter", "restart_netfilter": "Genstart netfilter",
"restart_sogo": "Genstart SOGo", "restart_sogo": "Genstart SOGo",
"user_settings": "Brugerindstillinger" "user_settings": "Brugerindstillinger",
"mailcow_system": ""
}, },
"info": { "info": {
"awaiting_tfa_confirmation": "Venter på TFA-bekræftelse", "awaiting_tfa_confirmation": "Venter på TFA-bekræftelse",
@@ -757,7 +857,31 @@
"yes": "&#10003;", "yes": "&#10003;",
"goto_ham": "Lær som <b>ønsket</b>", "goto_ham": "Lær som <b>ønsket</b>",
"catch_all": "Fang-alt", "catch_all": "Fang-alt",
"open_logs": "Åben logfiler" "open_logs": "Åben logfiler",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"all_domains": "",
"domain_templates": "",
"last_modified": "",
"last_pw_change": "",
"mailbox_templates": "",
"template": "",
"relay_unknown": "",
"add_alias_expand": "",
"add_template": "",
"created_on": "",
"goto_spam": "",
"recipient": "",
"relay_all": "",
"sender": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"templates": ""
}, },
"oauth2": { "oauth2": {
"access_denied": "Log ind som mailboks ejer for at give adgang via OAuth2.", "access_denied": "Log ind som mailboks ejer for at give adgang via OAuth2.",
@@ -818,10 +942,24 @@
"table_size_show_n": "Vis %s genstande", "table_size_show_n": "Vis %s genstande",
"text_from_html_content": "Indhold (konverterede html)", "text_from_html_content": "Indhold (konverterede html)",
"text_plain_content": "Indhold (text/plain)", "text_plain_content": "Indhold (text/plain)",
"toggle_all": "Skift alt" "toggle_all": "Skift alt",
"settings_info": ""
}, },
"queue": { "queue": {
"queue_manager": "Køadministrator" "queue_manager": "Køadministrator",
"deliver_mail": "",
"delete": "",
"flush": "",
"info": "",
"legend": "",
"ays": "",
"deliver_mail_legend": "",
"hold_mail": "",
"hold_mail_legend": "",
"show_message": "",
"unban": "",
"unhold_mail": "",
"unhold_mail_legend": ""
}, },
"start": { "start": {
"help": "Vis / skjul hjælpepanel", "help": "Vis / skjul hjælpepanel",
@@ -903,7 +1041,17 @@
"verified_totp_login": "Bekræftet TOTP-login", "verified_totp_login": "Bekræftet TOTP-login",
"verified_webauthn_login": "Bekræftet WebAuthn-login", "verified_webauthn_login": "Bekræftet WebAuthn-login",
"verified_fido2_login": "Bekræftet FIDO2-login", "verified_fido2_login": "Bekræftet FIDO2-login",
"verified_yotp_login": "Bekræftet Yubico OTP-login" "verified_yotp_login": "Bekræftet Yubico OTP-login",
"template_removed": "",
"domain_footer_modified": "",
"cors_headers_edited": "",
"domain_add_dkim_available": "",
"f2b_banlist_refreshed": "",
"ip_check_opt_in_modified": "",
"nginx_reloaded": "",
"password_policy_saved": "",
"template_added": "",
"template_modified": ""
}, },
"tfa": { "tfa": {
"api_register": "%s bruger Yubico Cloud API. Få en API-nøgle til din nøgle <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">here</a>", "api_register": "%s bruger Yubico Cloud API. Få en API-nøgle til din nøgle <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">here</a>",
@@ -928,7 +1076,10 @@
"webauthn": "WebAuthn godkendelse", "webauthn": "WebAuthn godkendelse",
"waiting_usb_auth": "<i>Venter på USB-enhed...</i><br><br>Tryk let på knappen på din USB-enhed nu.", "waiting_usb_auth": "<i>Venter på USB-enhed...</i><br><br>Tryk let på knappen på din USB-enhed nu.",
"waiting_usb_register": "<i>Venter på USB-enhed...</i><br><br>Indtast din adgangskode ovenfor, og bekræft din registrering ved at trykke på knappen på din USB-enhed.", "waiting_usb_register": "<i>Venter på USB-enhed...</i><br><br>Indtast din adgangskode ovenfor, og bekræft din registrering ved at trykke på knappen på din USB-enhed.",
"yubi_otp": "Yubico OTP godkendelse" "yubi_otp": "Yubico OTP godkendelse",
"authenticators": "",
"u2f_deprecated": "",
"u2f_deprecated_important": ""
}, },
"fido2": { "fido2": {
"set_fn": "Set venneligt navn", "set_fn": "Set venneligt navn",
@@ -942,7 +1093,8 @@
"start_fido2_validation": "Start FIDO2 validering", "start_fido2_validation": "Start FIDO2 validering",
"fido2_auth": "Login med FIDO2", "fido2_auth": "Login med FIDO2",
"fido2_success": "Enheden blev registreret", "fido2_success": "Enheden blev registreret",
"fido2_validation_failed": "Validering mislykkedes" "fido2_validation_failed": "Validering mislykkedes",
"set_fido2_touchid": ""
}, },
"user": { "user": {
"action": "Handling", "action": "Handling",
@@ -1071,7 +1223,42 @@
"waiting": "Venter", "waiting": "Venter",
"week": "uge", "week": "uge",
"weekly": "Ugeligt", "weekly": "Ugeligt",
"weeks": "uger" "weeks": "uger",
"empty": "",
"allowed_protocols": "",
"login_history": "",
"mailbox": "",
"mailbox_general": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"apple_connection_profile_with_app_password": "",
"attribute": "",
"change_password_hint_app_passwords": "",
"clear_recent_successful_connections": "",
"created_on": "",
"direct_protocol_access": "",
"fido2_webauthn": "",
"from": "",
"last_pw_change": "",
"last_ui_login": "",
"month": "",
"months": "",
"open_logs": "",
"open_webmail_sso": "",
"pushover_sound": "",
"recent_successful_connections": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"value": "",
"with_app_password": "",
"year": "",
"years": "",
"mailbox_settings": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "Kan ikke slette en bruger som er logget ind.", "cannot_delete_self": "Kan ikke slette en bruger som er logget ind.",
@@ -1083,12 +1270,40 @@
"no_active_admin": "Kan ikke deaktivere den sidste administrator", "no_active_admin": "Kan ikke deaktivere den sidste administrator",
"quota_exceeded_scope": "Domænekvote overskredet: Kun ubegrænsede postkasser kan oprettes i dette domæneomfang.", "quota_exceeded_scope": "Domænekvote overskredet: Kun ubegrænsede postkasser kan oprettes i dette domæneomfang.",
"session_token": "Form nøgle ugyldig: Nøgle passer ikke", "session_token": "Form nøgle ugyldig: Nøgle passer ikke",
"session_ua": "Form nøgle ugyldig: Bruger-Agent gyldighedskontrols fejl" "session_ua": "Form nøgle ugyldig: Bruger-Agent gyldighedskontrols fejl",
"is_not_primary_alias": ""
}, },
"datatables": { "datatables": {
"lengthMenu": "Vis _MENU_ poster", "lengthMenu": "Vis _MENU_ poster",
"paginate": { "paginate": {
"first": "Først" "first": "Først",
} "last": "",
"next": "",
"previous": ""
},
"decimal": "",
"infoPostFix": "",
"loadingRecords": "",
"processing": "",
"search": "",
"zeroRecords": "",
"thousands": "",
"emptyTable": "",
"expand_all": "",
"info": "",
"infoEmpty": "",
"infoFiltered": "",
"aria": {
"sortAscending": "",
"sortDescending": ""
},
"collapse_all": ""
},
"ratelimit": {
"day": "",
"hour": "",
"disabled": "",
"second": "",
"minute": ""
} }
} }

View File

@@ -24,7 +24,11 @@
"protocol_access": "Cambiar protocolo de acceso", "protocol_access": "Cambiar protocolo de acceso",
"quarantine_category": "Cambiar categoría de las notificaciones de cuarentena", "quarantine_category": "Cambiar categoría de las notificaciones de cuarentena",
"domain_relayhost": "Cambiar relayhost por un dominio", "domain_relayhost": "Cambiar relayhost por un dominio",
"extend_sender_acl": "Permitir extender la ACL del remitente por direcciones externas" "extend_sender_acl": "Permitir extender la ACL del remitente por direcciones externas",
"smtp_ip_access": "",
"sogo_access": "",
"mailbox_relayhost": "",
"pushover": ""
}, },
"add": { "add": {
"activate_filter_warn": "Todos los demás filtros se desactivarán cuando este filtro se active.", "activate_filter_warn": "Todos los demás filtros se desactivarán cuando este filtro se active.",
@@ -95,7 +99,16 @@
"app_password": "Añadir contraseña para la app", "app_password": "Añadir contraseña para la app",
"public_comment": "Comentarios públicos", "public_comment": "Comentarios públicos",
"disable_login": "Desactivar login (el correo entrante seguirá activo)", "disable_login": "Desactivar login (el correo entrante seguirá activo)",
"comment_info": "Los comentarios privados no son visibles al usuario, mientras que los comentarios públicos aparecerán sobre la información general del usuario" "comment_info": "Los comentarios privados no son visibles al usuario, mientras que los comentarios públicos aparecerán sobre la información general del usuario",
"dry": "",
"private_comment": "",
"relay_transport_info": "",
"domain_matches_hostname": "",
"relay_unknown_only": "",
"relayhost_wrapped_tls_info": "",
"app_passwd_protocols": "",
"bcc_dest_format": "",
"tags": ""
}, },
"admin": { "admin": {
"access": "Acceso", "access": "Acceso",
@@ -248,7 +261,97 @@
"unban_pending": "Desbloqueo pendiente", "unban_pending": "Desbloqueo pendiente",
"unchanged_if_empty": "Si no hay cambios déjalo en blanco", "unchanged_if_empty": "Si no hay cambios déjalo en blanco",
"upload": "Cargar", "upload": "Cargar",
"username": "Nombre de usuario" "username": "Nombre de usuario",
"lookup_mx": "",
"license_info": "",
"message": "",
"oauth2_apps": "",
"transport_dest_format": "",
"ui_footer": "",
"copy_to_clipboard": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"no": "",
"quarantine_max_score": "",
"queue_unban": "",
"rate_name": "",
"regex_maps": "",
"relay_rcpt": "",
"rsetting_no_selection": "",
"rsettings_preset_3": "",
"rsettings_preset_4": "",
"title": "",
"transport_test_rcpt_info": "",
"oauth2_add_client": "",
"oauth2_revoke_tokens": "",
"options": "",
"ui_header_announcement": "",
"logo_normal_label": "",
"logo_dark_label": "",
"quarantine_redirect": "",
"time": "",
"ui_header_announcement_active": "",
"ui_header_announcement_type_info": "",
"ui_header_announcement_type_warning": "",
"validate_license_now": "",
"reset_limit": "",
"success": "",
"allowed_methods": "",
"allowed_origins": "",
"cors_settings": "",
"login_time": "",
"yes": "",
"f2b_filter": "",
"html": "",
"oauth2_redirect_uri": "",
"oauth2_renew_secret": "",
"admins": "",
"admins_ldap": "",
"guid": "",
"guid_and_license": "",
"hash_remove_info": "",
"is_mx_based": "",
"last_applied": "",
"ip_check": "",
"ip_check_disabled": "",
"ip_check_opt_in": "",
"rspamd_global_filters_regex": "",
"sal_level": "",
"service": "",
"service_id": "",
"oauth2_info": "",
"optional": "",
"password_length": "",
"password_policy": "",
"password_policy_chars": "",
"password_policy_length": "",
"password_policy_lowerupper": "",
"password_policy_numbers": "",
"priority": "",
"quarantine_bcc": "",
"rspamd_global_filters": "",
"rspamd_global_filters_agree": "",
"rspamd_global_filters_info": "",
"ui_header_announcement_content": "",
"ui_header_announcement_help": "",
"ui_header_announcement_select": "",
"ui_header_announcement_type": "",
"ui_header_announcement_type_danger": "",
"verify": "",
"customer_id": "",
"dkim_overwrite_key": "",
"domain_admin": "",
"domain_s": "",
"f2b_regex_info": "",
"advanced_settings": "",
"api_info": "",
"api_read_only": "",
"api_read_write": "",
"api_skip_ip_check": "",
"authed_user": "",
"ays": "",
"convert_html_to_text": "",
"password_policy_special_chars": ""
}, },
"danger": { "danger": {
"access_denied": "Acceso denegado o datos del formulario inválidos", "access_denied": "Acceso denegado o datos del formulario inválidos",
@@ -336,7 +439,50 @@
"username_invalid": "Nombre de usuario no se puede utilizar", "username_invalid": "Nombre de usuario no se puede utilizar",
"validity_missing": "Por favor asigna un periodo de validez", "validity_missing": "Por favor asigna un periodo de validez",
"value_missing": "Por favor proporcione todos los valores", "value_missing": "Por favor proporcione todos los valores",
"yotp_verification_failed": "Verificación Yubico OTP fallida: %s" "yotp_verification_failed": "Verificación Yubico OTP fallida: %s",
"invalid_mime_type": "",
"description_invalid": "",
"dkim_domain_or_sel_exists": "",
"extended_sender_acl_denied": "",
"extra_acl_invalid": "",
"last_key": "",
"webauthn_authenticator_failed": "",
"webauthn_publickey_failed": "",
"webauthn_username_failed": "",
"app_name_empty": "",
"app_passwd_id_invalid": "",
"comment_too_long": "",
"cors_invalid_method": "",
"cors_invalid_origin": "",
"demo_mode_enabled": "",
"global_filter_write_error": "",
"pushover_credentials_missing": "",
"pushover_key": "",
"pushover_token": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": "",
"maxquota_empty": "",
"nginx_reload_failed": "",
"targetd_relay_domain": "",
"template_exists": "",
"template_id_invalid": "",
"temp_error": "",
"tfa_token_invalid": "",
"tls_policy_map_dest_invalid": "",
"extra_acl_invalid_domain": "",
"fido2_verification_failed": "",
"template_name_invalid": "",
"resource_invalid": "",
"file_open_error": "",
"img_tmp_missing": "",
"invalid_filter_type": "",
"global_map_invalid": "",
"global_map_write_error": "",
"ham_learn_error": "",
"img_invalid": "",
"imagick_exception": "",
"max_alias_exceeded": "",
"reset_f2b_regex": ""
}, },
"debug": { "debug": {
"containers_info": "Información de los contenedores", "containers_info": "Información de los contenedores",
@@ -354,7 +500,30 @@
"solr_status": "Solr status", "solr_status": "Solr status",
"uptime": "Uptime", "uptime": "Uptime",
"static_logs": "Logs estáticos", "static_logs": "Logs estáticos",
"system_containers": "Sistema y Contenedores" "system_containers": "Sistema y Contenedores",
"container_disabled": "",
"architecture": "",
"update_failed": "",
"wip": "",
"chart_this_server": "",
"container_running": "",
"container_stopped": "",
"cores": "",
"current_time": "",
"error_show_ip": "",
"history_all_servers": "",
"jvm_memory_solr": "",
"memory": "",
"online_users": "",
"service": "",
"show_ip": "",
"started_on": "",
"success": "",
"timezone": "",
"update_available": "",
"no_update_available": "",
"username": "",
"login_time": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Valor derivado del registro A / AAAA. Esto es permitido siempre que el registro apunte al recurso correcto.", "cname_from_a": "Valor derivado del registro A / AAAA. Esto es permitido siempre que el registro apunte al recurso correcto.",
@@ -364,7 +533,8 @@
"dns_records_name": "Nombre", "dns_records_name": "Nombre",
"dns_records_status": "Información actual", "dns_records_status": "Información actual",
"dns_records_type": "Tipo", "dns_records_type": "Tipo",
"optional": "Este récord es opcional." "optional": "Este récord es opcional.",
"dns_records_docs": ""
}, },
"edit": { "edit": {
"active": "Activo", "active": "Activo",
@@ -432,13 +602,85 @@
"title": "Editar objeto", "title": "Editar objeto",
"unchanged_if_empty": "Si no hay cambios dejalo en blanco", "unchanged_if_empty": "Si no hay cambios dejalo en blanco",
"username": "Nombre de usuario", "username": "Nombre de usuario",
"validate_save": "Validar y guardar" "validate_save": "Validar y guardar",
"lookup_mx": "",
"footer_exclude": "",
"custom_attributes": "",
"domain_footer_info_vars": {
"from_user": "",
"from_name": "",
"from_domain": "",
"custom": "",
"auth_user": "",
"from_addr": ""
},
"domain_footer_plain": "",
"domain_footer_skip_replies": "",
"sender_acl_info": "",
"domain_footer": "",
"domain_footer_html": "",
"spam_score": "",
"domain_footer_info": "",
"acl": "",
"relay_transport_info": "",
"sender_acl_disabled": "",
"sogo_access": "",
"sogo_access_info": "",
"sogo_visible": "",
"sogo_visible_info": "",
"spam_alias": "",
"spam_filter": "",
"spam_policy": "",
"generate": "",
"private_comment": "",
"public_comment": "",
"pushover": "",
"pushover_evaluate_x_prio": "",
"pushover_text": "",
"admin": "",
"advanced_settings": "",
"allow_from_smtp": "",
"allow_from_smtp_info": "",
"allowed_protocols": "",
"app_passwd": "",
"app_passwd_protocols": "",
"comment_info": "",
"created_on": "",
"delete_ays": "",
"extended_sender_acl": "",
"extended_sender_acl_info": "",
"mbox_rl_info": "",
"none_inherit": "",
"pushover_only_x_prio": "",
"pushover_sender_array": "",
"pushover_title": "",
"pushover_sound": "",
"pushover_vars": "",
"mailbox_relayhost_info": "",
"pushover_verify": "",
"quota_warning_bcc": "",
"quota_warning_bcc_info": "",
"ratelimit": "",
"relay_unknown_only": "",
"pushover_info": "",
"pushover_sender_regex": "",
"app_name": "",
"disable_login": ""
}, },
"footer": { "footer": {
"hibp_nok": "¡Se encontró coincidencia - esta es una contraseña <b>no segura</b>, selecciona otra!", "hibp_nok": "¡Se encontró coincidencia - esta es una contraseña <b>no segura</b>, selecciona otra!",
"hibp_ok": "No se encontraron coincidencias", "hibp_ok": "No se encontraron coincidencias",
"loading": "Espera por favor...", "loading": "Espera por favor...",
"restart_now": "Reiniciar ahora" "restart_now": "Reiniciar ahora",
"cancel": "",
"confirm_delete": "",
"delete_now": "",
"hibp_check": "",
"nothing_selected": "",
"delete_these_items": "",
"restart_container": "",
"restarting_container": "",
"restart_container_info": ""
}, },
"header": { "header": {
"administration": "Administración", "administration": "Administración",
@@ -447,17 +689,24 @@
"mailcow_config": "Configuración", "mailcow_config": "Configuración",
"quarantine": "Cuarentena", "quarantine": "Cuarentena",
"restart_sogo": "Reiniciar SOGo", "restart_sogo": "Reiniciar SOGo",
"user_settings": "Configuraciones de usuario" "user_settings": "Configuraciones de usuario",
"apps": "",
"mailcow_system": "",
"restart_netfilter": ""
}, },
"info": { "info": {
"awaiting_tfa_confirmation": "En espera de confirmación de TFA", "awaiting_tfa_confirmation": "En espera de confirmación de TFA",
"no_action": "No hay acción aplicable" "no_action": "No hay acción aplicable",
"session_expires": ""
}, },
"login": { "login": {
"delayed": "El inicio de sesión ha sido retrasado %s segundos.", "delayed": "El inicio de sesión ha sido retrasado %s segundos.",
"login": "Inicio de sesión", "login": "Inicio de sesión",
"password": "Contraseña", "password": "Contraseña",
"username": "Nombre de usuario" "username": "Nombre de usuario",
"fido2_webauthn": "",
"mobileconfig_info": "",
"other_logins": ""
}, },
"mailbox": { "mailbox": {
"action": "Acción", "action": "Acción",
@@ -569,7 +818,70 @@
"toggle_all": "Selecionar todo", "toggle_all": "Selecionar todo",
"username": "Nombre de usuario", "username": "Nombre de usuario",
"waiting": "Esperando", "waiting": "Esperando",
"weekly": "Cada semana" "weekly": "Cada semana",
"disable_login": "",
"templates": "",
"public_comment": "",
"q_add_header": "",
"q_reject": "",
"table_size": "",
"domain_templates": "",
"catch_all": "",
"created_on": "",
"goto_ham": "",
"add_alias_expand": "",
"add_template": "",
"alias_domain_alias_hint": "",
"alias_domain_backupmx": "",
"all_domains": "",
"allow_from_smtp": "",
"allow_from_smtp_info": "",
"allowed_protocols": "",
"goto_spam": "",
"insert_preset": "",
"last_mail_login": "",
"last_pw_change": "",
"last_run_reset": "",
"mailbox": "",
"mailbox_defaults": "",
"no": "",
"open_logs": "",
"owner": "",
"private_comment": "",
"q_all": "",
"quarantine_category": "",
"recipient": "",
"relay_unknown": "",
"sender": "",
"sieve_preset_1": "",
"sieve_preset_5": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"template": "",
"tls_policy_maps_enforced_tls": "",
"yes": "",
"table_size_show_n": "",
"mailbox_defaults_info": "",
"sieve_preset_header": "",
"mailbox_templates": "",
"sieve_preset_2": "",
"sieve_preset_3": "",
"sieve_preset_8": "",
"sogo_visible": "",
"sogo_visible_n": "",
"sogo_visible_y": "",
"spam_aliases": "",
"stats": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"sieve_preset_4": "",
"sieve_preset_6": "",
"sieve_preset_7": ""
}, },
"oauth2": { "oauth2": {
"access_denied": "Inicie sesión como propietario del buzón para otorgar acceso a través de OAuth2.", "access_denied": "Inicie sesión como propietario del buzón para otorgar acceso a través de OAuth2.",
@@ -611,10 +923,43 @@
"subj": "Asunto", "subj": "Asunto",
"text_from_html_content": "Contenido (html convertido)", "text_from_html_content": "Contenido (html convertido)",
"text_plain_content": "Contenido (text/plain)", "text_plain_content": "Contenido (text/plain)",
"toggle_all": "Seleccionar todos" "toggle_all": "Seleccionar todos",
"spam": "",
"confirm": "",
"download_eml": "",
"info": "",
"deliver_inbox": "",
"junk_folder": "",
"notified": "",
"qinfo": "",
"quick_delete_link": "",
"quick_info_link": "",
"quick_release_link": "",
"refresh": "",
"rejected": "",
"rewrite_subject": "",
"rspamd_result": "",
"sender_header": "",
"settings_info": "",
"table_size": "",
"table_size_show_n": "",
"type": ""
}, },
"queue": { "queue": {
"queue_manager": "Administrador de cola" "queue_manager": "Administrador de cola",
"legend": "",
"ays": "",
"deliver_mail": "",
"unhold_mail": "",
"unhold_mail_legend": "",
"delete": "",
"flush": "",
"info": "",
"deliver_mail_legend": "",
"hold_mail": "",
"hold_mail_legend": "",
"show_message": "",
"unban": ""
}, },
"start": { "start": {
"help": "Mostrar/Ocultar panel de ayuda", "help": "Mostrar/Ocultar panel de ayuda",
@@ -670,7 +1015,43 @@
"tls_policy_map_entry_saved": "Regla de póliza de TLS \"%s\" ha sido guardada", "tls_policy_map_entry_saved": "Regla de póliza de TLS \"%s\" ha sido guardada",
"verified_totp_login": "Inicio de sesión TOTP verificado", "verified_totp_login": "Inicio de sesión TOTP verificado",
"verified_webauthn_login": "Inicio de sesión WebAuthn verificado", "verified_webauthn_login": "Inicio de sesión WebAuthn verificado",
"verified_yotp_login": "Inicio de sesión Yubico OTP verificado" "verified_yotp_login": "Inicio de sesión Yubico OTP verificado",
"sogo_profile_reset": "",
"template_added": "",
"template_removed": "",
"ui_texts": "",
"upload_success": "",
"verified_fido2_login": "",
"admin_added": "",
"admin_api_modified": "",
"admin_removed": "",
"app_links": "",
"app_passwd_added": "",
"app_passwd_removed": "",
"cors_headers_edited": "",
"domain_add_dkim_available": "",
"dkim_duplicated": "",
"domain_footer_modified": "",
"dovecot_restart_success": "",
"eas_reset": "",
"f2b_banlist_refreshed": "",
"f2b_modified": "",
"global_filter_written": "",
"hash_deleted": "",
"ip_check_opt_in_modified": "",
"item_deleted": "",
"item_released": "",
"items_deleted": "",
"items_released": "",
"learned_ham": "",
"license_modified": "",
"nginx_reloaded": "",
"object_modified": "",
"password_policy_saved": "",
"pushover_settings_edited": "",
"reset_main_logo": "",
"resource_removed": "",
"template_modified": ""
}, },
"tfa": { "tfa": {
"api_register": "%s utiliza la API de la nube de Yubico. Por favor, obtén una clave API para tu llave <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">aquí</a>.", "api_register": "%s utiliza la API de la nube de Yubico. Por favor, obtén una clave API para tu llave <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">aquí</a>.",
@@ -690,7 +1071,15 @@
"webauthn": "Autenticación WebAuthn", "webauthn": "Autenticación WebAuthn",
"waiting_usb_auth": "<i>Esperando al dispositivo USB...</i><br><br>Toque el botón en su dispositivo USB WebAuthn ahora.", "waiting_usb_auth": "<i>Esperando al dispositivo USB...</i><br><br>Toque el botón en su dispositivo USB WebAuthn ahora.",
"waiting_usb_register": "<i>Esperando al dispositivo USB....</i><br><br>Ingrese su contraseña arriba y confirme su registro WebAuthn tocando el botón en su dispositivo USB WebAuthn.", "waiting_usb_register": "<i>Esperando al dispositivo USB....</i><br><br>Ingrese su contraseña arriba y confirme su registro WebAuthn tocando el botón en su dispositivo USB WebAuthn.",
"yubi_otp": "Yubico OTP" "yubi_otp": "Yubico OTP",
"authenticators": "",
"u2f_deprecated": "",
"u2f_deprecated_important": "",
"error_code": "",
"init_webauthn": "",
"reload_retry": "",
"start_webauthn_validation": "",
"tfa_token_invalid": ""
}, },
"user": { "user": {
"action": "Acción", "action": "Acción",
@@ -771,11 +1160,150 @@
"waiting": "Esperando", "waiting": "Esperando",
"week": "Semana", "week": "Semana",
"weekly": "Cada semana", "weekly": "Cada semana",
"weeks": "Semanas" "weeks": "Semanas",
"fido2_webauthn": "",
"last_pw_change": "",
"save": "",
"pushover_info": "",
"client_configuration": "",
"created_on": "",
"q_add_header": "",
"active_sieve": "",
"apple_connection_profile_mailonly": "",
"attribute": "",
"email": "",
"expire_in": "",
"last_ui_login": "",
"loading": "",
"mailbox_general": "",
"mailbox_settings": "",
"messages": "",
"month": "",
"months": "",
"no_active_filter": "",
"password_repeat": "",
"pushover_evaluate_x_prio": "",
"pushover_only_x_prio": "",
"pushover_sender_array": "",
"pushover_sender_regex": "",
"pushover_text": "",
"pushover_title": "",
"pushover_sound": "",
"pushover_vars": "",
"q_reject": "",
"quarantine_category": "",
"recent_successful_connections": "",
"sogo_profile_reset_help": "",
"sogo_profile_reset_now": "",
"spam_score_reset": "",
"spamfilter_table_domain_policy": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"last_mail_login": "",
"pushover_verify": "",
"q_all": "",
"quarantine_category_info": "",
"create_app_passwd": "",
"no_last_login": "",
"sender_acl_disabled": "",
"show_sieve_filters": "",
"email_and_dav": "",
"empty": "",
"syncjob_check_log": "",
"login_history": "",
"mailbox": "",
"text": "",
"apple_connection_profile_with_app_password": "",
"change_password_hint_app_passwords": "",
"clear_recent_successful_connections": "",
"delete_ays": "",
"direct_protocol_access": "",
"force_pw_update": "",
"from": "",
"generate": "",
"in_use": "",
"open_logs": "",
"open_webmail_sso": "",
"title": "",
"value": "",
"verify": "",
"with_app_password": "",
"year": "",
"years": "",
"advanced_settings": "",
"app_hint": "",
"allowed_protocols": "",
"app_name": "",
"app_passwds": "",
"apple_connection_profile": "",
"apple_connection_profile_complete": "",
"password": ""
}, },
"warning": { "warning": {
"domain_added_sogo_failed": "Se agregó el dominio pero no se pudo reiniciar SOGo, revisa los logs del servidor.", "domain_added_sogo_failed": "Se agregó el dominio pero no se pudo reiniciar SOGo, revisa los logs del servidor.",
"fuzzy_learn_error": "Error aprendiendo hash: %s", "fuzzy_learn_error": "Error aprendiendo hash: %s",
"ip_invalid": "IP inválida omitida: %s" "ip_invalid": "IP inválida omitida: %s",
"session_token": "",
"session_ua": "",
"cannot_delete_self": "",
"dovecot_restart_failed": "",
"hash_not_found": "",
"is_not_primary_alias": "",
"no_active_admin": "",
"quota_exceeded_scope": ""
},
"datatables": {
"decimal": "",
"infoPostFix": "",
"paginate": {
"last": "",
"first": "",
"next": "",
"previous": ""
},
"collapse_all": "",
"emptyTable": "",
"expand_all": "",
"info": "",
"infoEmpty": "",
"infoFiltered": "",
"thousands": "",
"lengthMenu": "",
"loadingRecords": "",
"processing": "",
"search": "",
"zeroRecords": "",
"aria": {
"sortAscending": "",
"sortDescending": ""
}
},
"fido2": {
"set_fn": "",
"start_fido2_validation": "",
"confirm": "",
"fido2_auth": "",
"fido2_success": "",
"fido2_validation_failed": "",
"fn": "",
"known_ids": "",
"none": "",
"register_status": "",
"rename": "",
"set_fido2": "",
"set_fido2_touchid": ""
},
"ratelimit": {
"disabled": "",
"second": "",
"minute": "",
"hour": "",
"day": ""
} }
} }

View File

@@ -20,7 +20,15 @@
"spam_score": "Roskapostitulos", "spam_score": "Roskapostitulos",
"syncjobs": "Synkronoi työt", "syncjobs": "Synkronoi työt",
"tls_policy": "TLS-käytäntö", "tls_policy": "TLS-käytäntö",
"unlimited_quota": "Rajoittamaton kiintiö sähkö postilaatikoille" "unlimited_quota": "Rajoittamaton kiintiö sähkö postilaatikoille",
"app_passwds": "",
"domain_desc": "",
"domain_relayhost": "",
"mailbox_relayhost": "",
"protocol_access": "",
"pushover": "",
"quarantine_category": "",
"smtp_ip_access": ""
}, },
"add": { "add": {
"activate_filter_warn": "Kaikki muut suodattimet deaktivoidaan, kun aktiivinen on valittu.", "activate_filter_warn": "Kaikki muut suodattimet deaktivoidaan, kun aktiivinen on valittu.",
@@ -90,7 +98,17 @@
"timeout2": "Aikakatkaisu yhteyden muodostamiseen paikalliseen isäntään", "timeout2": "Aikakatkaisu yhteyden muodostamiseen paikalliseen isäntään",
"username": "Käyttäjätunnus", "username": "Käyttäjätunnus",
"validate": "Vahvista", "validate": "Vahvista",
"validation_success": "Vahvistettu onnistuneesti" "validation_success": "Vahvistettu onnistuneesti",
"dry": "",
"tags": "",
"inactive": "",
"relay_transport_info": "",
"app_name": "",
"app_password": "",
"app_passwd_protocols": "",
"bcc_dest_format": "",
"disable_login": "",
"relay_unknown_only": ""
}, },
"admin": { "admin": {
"access": "Hallinta", "access": "Hallinta",
@@ -267,7 +285,73 @@
"upload": "Lataa", "upload": "Lataa",
"username": "Käyttäjätunnus", "username": "Käyttäjätunnus",
"validate_license_now": "Vahvista GUID-tunnus lisenssi palvelinta vastaan", "validate_license_now": "Vahvista GUID-tunnus lisenssi palvelinta vastaan",
"yes": "&#10003;" "yes": "&#10003;",
"logo_normal_label": "",
"logo_dark_label": "",
"copy_to_clipboard": "",
"f2b_ban_time_increment": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"f2b_max_ban_time": "",
"allowed_methods": "",
"allowed_origins": "",
"cors_settings": "",
"ip_check": "",
"rspamd_global_filters": "",
"service": "",
"password_policy_lowerupper": "",
"password_policy_numbers": "",
"quarantine_max_score": "",
"quarantine_redirect": "",
"domain_admin": "",
"f2b_filter": "",
"f2b_regex_info": "",
"html": "",
"oauth2_apps": "",
"oauth2_add_client": "",
"optional": "",
"options": "",
"password_length": "",
"password_policy_chars": "",
"rspamd_global_filters_agree": "",
"rspamd_global_filters_info": "",
"sal_level": "",
"success": "",
"title": "",
"transport_test_rcpt_info": "",
"ui_header_announcement": "",
"ui_header_announcement_active": "",
"ui_header_announcement_content": "",
"password_policy": "",
"password_policy_length": "",
"queue_unban": "",
"relay_rcpt": "",
"rsettings_preset_3": "",
"rsettings_preset_4": "",
"ui_header_announcement_help": "",
"ui_header_announcement_select": "",
"ui_header_announcement_type": "",
"ui_header_announcement_type_danger": "",
"ui_header_announcement_type_info": "",
"ui_header_announcement_type_warning": "",
"verify": "",
"ip_check_disabled": "",
"ip_check_opt_in": "",
"is_mx_based": "",
"login_time": "",
"rspamd_global_filters_regex": "",
"password_policy_special_chars": "",
"quarantine_bcc": "",
"regex_maps": "",
"dkim_overwrite_key": "",
"admins": "",
"admins_ldap": "",
"advanced_settings": "",
"api_read_only": "",
"api_read_write": "",
"api_skip_ip_check": "",
"ays": "",
"convert_html_to_text": ""
}, },
"danger": { "danger": {
"access_denied": "Käyttö estetty tai lomake tiedot eivät kelpaa", "access_denied": "Käyttö estetty tai lomake tiedot eivät kelpaa",
@@ -369,7 +453,36 @@
"username_invalid": "Käyttäjätunnusta %s ei voi käyttää", "username_invalid": "Käyttäjätunnusta %s ei voi käyttää",
"validity_missing": "Anna voimassaolo aika", "validity_missing": "Anna voimassaolo aika",
"value_missing": "Anna kaikki arvot", "value_missing": "Anna kaikki arvot",
"yotp_verification_failed": "Yubico OTP todentaminen epäonnistui: %s" "yotp_verification_failed": "Yubico OTP todentaminen epäonnistui: %s",
"webauthn_authenticator_failed": "",
"webauthn_publickey_failed": "",
"cors_invalid_origin": "",
"file_open_error": "",
"global_filter_write_error": "",
"global_map_invalid": "",
"global_map_write_error": "",
"ham_learn_error": "",
"invalid_filter_type": "",
"cors_invalid_method": "",
"pushover_key": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": "",
"nginx_reload_failed": "",
"pushover_credentials_missing": "",
"pushover_token": "",
"template_exists": "",
"template_id_invalid": "",
"template_name_invalid": "",
"tls_policy_map_dest_invalid": "",
"webauthn_username_failed": "",
"app_name_empty": "",
"app_passwd_id_invalid": "",
"demo_mode_enabled": "",
"dkim_domain_or_sel_exists": "",
"extended_sender_acl_denied": "",
"fido2_verification_failed": "",
"reset_f2b_regex": "",
"tfa_token_invalid": ""
}, },
"debug": { "debug": {
"containers_info": "Säilön tiedot", "containers_info": "Säilön tiedot",
@@ -389,7 +502,28 @@
"uptime": "Päällä", "uptime": "Päällä",
"started_on": "Aloitettiin", "started_on": "Aloitettiin",
"static_logs": "Staattiset lokit", "static_logs": "Staattiset lokit",
"system_containers": "Systeemi & Säiliöt" "system_containers": "Systeemi & Säiliöt",
"memory": "",
"architecture": "",
"online_users": "",
"error_show_ip": "",
"success": "",
"wip": "",
"container_disabled": "",
"history_all_servers": "",
"service": "",
"timezone": "",
"update_available": "",
"no_update_available": "",
"update_failed": "",
"username": "",
"chart_this_server": "",
"container_running": "",
"container_stopped": "",
"cores": "",
"login_time": "",
"current_time": "",
"show_ip": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Arvo johdettu A / AAAA-tietueesta. Tätä tuetaan niin kauan kuin tietue osoittaa oikealle resurssille.", "cname_from_a": "Arvo johdettu A / AAAA-tietueesta. Tätä tuetaan niin kauan kuin tietue osoittaa oikealle resurssille.",
@@ -399,7 +533,8 @@
"dns_records_name": "Nimi", "dns_records_name": "Nimi",
"dns_records_status": "Nykyinen tila", "dns_records_status": "Nykyinen tila",
"dns_records_type": "Tyyppi", "dns_records_type": "Tyyppi",
"optional": "Tämä tietue on valinnainen." "optional": "Tämä tietue on valinnainen.",
"dns_records_docs": ""
}, },
"edit": { "edit": {
"active": "Aktiivinen", "active": "Aktiivinen",
@@ -480,7 +615,57 @@
"title": "Muokkaa objektia", "title": "Muokkaa objektia",
"unchanged_if_empty": "Jos muuttumaton jätä tyhjäksi", "unchanged_if_empty": "Jos muuttumaton jätä tyhjäksi",
"username": "Käyttäjätunnus", "username": "Käyttäjätunnus",
"validate_save": "Vahvista ja tallenna" "validate_save": "Vahvista ja tallenna",
"lookup_mx": "",
"footer_exclude": "",
"custom_attributes": "",
"domain_footer_info_vars": {
"from_addr": "",
"from_domain": "",
"auth_user": "",
"from_user": "",
"from_name": "",
"custom": ""
},
"allow_from_smtp_info": "",
"allowed_protocols": "",
"app_name": "",
"app_passwd": "",
"app_passwd_protocols": "",
"created_on": "",
"sogo_access": "",
"sogo_access_info": "",
"domain_footer_skip_replies": "",
"domain_footer_plain": "",
"domain_footer": "",
"domain_footer_html": "",
"ratelimit": "",
"acl": "",
"advanced_settings": "",
"allow_from_smtp": "",
"domain_footer_info": "",
"none_inherit": "",
"pushover_only_x_prio": "",
"pushover_sender_regex": "",
"pushover_verify": "",
"quota_warning_bcc_info": "",
"relay_transport_info": "",
"relay_unknown_only": "",
"spam_filter": "",
"pushover_text": "",
"admin": "",
"generate": "",
"delete_ays": "",
"disable_login": "",
"pushover": "",
"pushover_info": "",
"pushover_sender_array": "",
"pushover_title": "",
"pushover_sound": "",
"mailbox_relayhost_info": "",
"pushover_vars": "",
"pushover_evaluate_x_prio": "",
"quota_warning_bcc": ""
}, },
"footer": { "footer": {
"cancel": "Peruuta", "cancel": "Peruuta",
@@ -493,7 +678,9 @@
"restart_container": "Uudelleen käynnistä moottori", "restart_container": "Uudelleen käynnistä moottori",
"restart_container_info": "<b>Tärkeää:</b> Uudelleenkäynnistys voi kestää jonkin aikaa, odota, kunnes se päättyy.", "restart_container_info": "<b>Tärkeää:</b> Uudelleenkäynnistys voi kestää jonkin aikaa, odota, kunnes se päättyy.",
"restart_now": "Käynnistä uudelleen nyt", "restart_now": "Käynnistä uudelleen nyt",
"restarting_container": "Uudelleen käynnistä container, tämä saattaa kestää jonkin aikaa..." "restarting_container": "Uudelleen käynnistä container, tämä saattaa kestää jonkin aikaa...",
"hibp_check": "",
"nothing_selected": ""
}, },
"header": { "header": {
"administration": "Kokoonpanon & tiedot", "administration": "Kokoonpanon & tiedot",
@@ -504,7 +691,8 @@
"quarantine": "Karanteeni", "quarantine": "Karanteeni",
"restart_netfilter": "Uudelleen käynnistä netfilter", "restart_netfilter": "Uudelleen käynnistä netfilter",
"restart_sogo": "Uudelleen käynnistä SOGo", "restart_sogo": "Uudelleen käynnistä SOGo",
"user_settings": "Käyttäjän asetukset" "user_settings": "Käyttäjän asetukset",
"mailcow_system": ""
}, },
"info": { "info": {
"awaiting_tfa_confirmation": "Odotetaan TFA-vahvistusta", "awaiting_tfa_confirmation": "Odotetaan TFA-vahvistusta",
@@ -515,7 +703,10 @@
"delayed": "Kirjautuminen viivästyi %s sekunttia.", "delayed": "Kirjautuminen viivästyi %s sekunttia.",
"login": "Kirjaudu", "login": "Kirjaudu",
"password": "Salasana", "password": "Salasana",
"username": "Käyttäjätunnus" "username": "Käyttäjätunnus",
"fido2_webauthn": "",
"mobileconfig_info": "",
"other_logins": ""
}, },
"mailbox": { "mailbox": {
"action": "Toiminnot", "action": "Toiminnot",
@@ -639,7 +830,58 @@
"username": "Käyttäjätunnus", "username": "Käyttäjätunnus",
"waiting": "Odotetaan..", "waiting": "Odotetaan..",
"weekly": "Viikoittain", "weekly": "Viikoittain",
"yes": "&#10003;" "yes": "&#10003;",
"templates": "",
"catch_all": "",
"created_on": "",
"disable_login": "",
"domain_templates": "",
"goto_ham": "",
"goto_spam": "",
"template": "",
"sieve_preset_8": "",
"allow_from_smtp_info": "",
"sieve_preset_header": "",
"sender": "",
"sieve_preset_6": "",
"sieve_preset_7": "",
"insert_preset": "",
"last_mail_login": "",
"add_template": "",
"alias_domain_alias_hint": "",
"all_domains": "",
"allow_from_smtp": "",
"allowed_protocols": "",
"q_reject": "",
"quarantine_category": "",
"recipient": "",
"relay_unknown": "",
"stats": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"table_size": "",
"table_size_show_n": "",
"tls_policy_maps_enforced_tls": "",
"last_pw_change": "",
"open_logs": "",
"q_add_header": "",
"q_all": "",
"mailbox_defaults": "",
"mailbox_defaults_info": "",
"mailbox_templates": "",
"sieve_preset_1": "",
"sieve_preset_2": "",
"sieve_preset_3": "",
"sieve_preset_4": "",
"sieve_preset_5": "",
"add_alias_expand": ""
}, },
"oauth2": { "oauth2": {
"access_denied": "Kirjaudu sisään postilaatikon omistajana myöntääksesi käyttöoikeuden OAuth2: n kautta.", "access_denied": "Kirjaudu sisään postilaatikon omistajana myöntääksesi käyttöoikeuden OAuth2: n kautta.",
@@ -683,10 +925,41 @@
"subj": "Aihe", "subj": "Aihe",
"text_from_html_content": "Sisältö (muunnettu html)", "text_from_html_content": "Sisältö (muunnettu html)",
"text_plain_content": "Sisältö (teksti / tavallinen)", "text_plain_content": "Sisältö (teksti / tavallinen)",
"toggle_all": "Valitse kaikki" "toggle_all": "Valitse kaikki",
"spam": "",
"deliver_inbox": "",
"info": "",
"type": "",
"quick_info_link": "",
"table_size": "",
"table_size_show_n": "",
"confirm": "",
"qinfo": "",
"sender_header": "",
"settings_info": "",
"rewrite_subject": "",
"junk_folder": "",
"notified": "",
"quick_release_link": "",
"rejected": "",
"quick_delete_link": "",
"refresh": ""
}, },
"queue": { "queue": {
"queue_manager": "Jonon hallinta" "queue_manager": "Jonon hallinta",
"deliver_mail": "",
"deliver_mail_legend": "",
"delete": "",
"flush": "",
"info": "",
"legend": "",
"ays": "",
"hold_mail": "",
"hold_mail_legend": "",
"show_message": "",
"unban": "",
"unhold_mail": "",
"unhold_mail_legend": ""
}, },
"start": { "start": {
"help": "Näytä/Piilota help paneeli", "help": "Näytä/Piilota help paneeli",
@@ -761,7 +1034,24 @@
"upload_success": "Tiedosto ladattu onnistuneesti", "upload_success": "Tiedosto ladattu onnistuneesti",
"verified_totp_login": "Vahvistettu TOTP-kirjautuminen", "verified_totp_login": "Vahvistettu TOTP-kirjautuminen",
"verified_webauthn_login": "Vahvistettu WebAuthn kirjautuminen", "verified_webauthn_login": "Vahvistettu WebAuthn kirjautuminen",
"verified_yotp_login": "Vahvistettu Yubico OTP kirjautuminen" "verified_yotp_login": "Vahvistettu Yubico OTP kirjautuminen",
"app_passwd_added": "",
"global_filter_written": "",
"template_added": "",
"template_modified": "",
"app_passwd_removed": "",
"cors_headers_edited": "",
"domain_add_dkim_available": "",
"domain_footer_modified": "",
"dovecot_restart_success": "",
"f2b_banlist_refreshed": "",
"ip_check_opt_in_modified": "",
"learned_ham": "",
"nginx_reloaded": "",
"password_policy_saved": "",
"pushover_settings_edited": "",
"template_removed": "",
"verified_fido2_login": ""
}, },
"tfa": { "tfa": {
"api_register": "%s käyttää Yubico Cloud API. Saat avaimesi API-avaimen <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">täältä</a>", "api_register": "%s käyttää Yubico Cloud API. Saat avaimesi API-avaimen <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">täältä</a>",
@@ -785,7 +1075,11 @@
"webauthn": "WebAuthn todennus", "webauthn": "WebAuthn todennus",
"waiting_usb_auth": "<i>Odotetaan USB-laitetta...</i><br><br>Napauta painiketta WebAuthn USB-laitteessa nyt", "waiting_usb_auth": "<i>Odotetaan USB-laitetta...</i><br><br>Napauta painiketta WebAuthn USB-laitteessa nyt",
"waiting_usb_register": "<i>Odotetaan USB-laitetta...</i><br><br>Anna salasanasi yltä ja vahvista WebAuthn-rekisteröinti napauttamalla painiketta WebAuthn USB-laitteessa.", "waiting_usb_register": "<i>Odotetaan USB-laitetta...</i><br><br>Anna salasanasi yltä ja vahvista WebAuthn-rekisteröinti napauttamalla painiketta WebAuthn USB-laitteessa.",
"yubi_otp": "Yubico OTP-todennus" "yubi_otp": "Yubico OTP-todennus",
"authenticators": "",
"tfa_token_invalid": "",
"u2f_deprecated": "",
"u2f_deprecated_important": ""
}, },
"user": { "user": {
"action": "Toiminnot", "action": "Toiminnot",
@@ -880,7 +1174,76 @@
"waiting": "Odottaa", "waiting": "Odottaa",
"week": "Viikko", "week": "Viikko",
"weekly": "Viikoittain", "weekly": "Viikoittain",
"weeks": "Viikkoa" "weeks": "Viikkoa",
"attribute": "",
"last_ui_login": "",
"allowed_protocols": "",
"delete_ays": "",
"email_and_dav": "",
"empty": "",
"fido2_webauthn": "",
"text": "",
"generate": "",
"last_mail_login": "",
"last_pw_change": "",
"login_history": "",
"mailbox_general": "",
"mailbox_settings": "",
"month": "",
"months": "",
"no_last_login": "",
"open_logs": "",
"open_webmail_sso": "",
"password": "",
"password_repeat": "",
"pushover_evaluate_x_prio": "",
"pushover_info": "",
"pushover_sender_array": "",
"recent_successful_connections": "",
"value": "",
"mailbox": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"title": "",
"verify": "",
"with_app_password": "",
"year": "",
"years": "",
"advanced_settings": "",
"app_hint": "",
"app_name": "",
"app_passwds": "",
"apple_connection_profile": "",
"apple_connection_profile_mailonly": "",
"apple_connection_profile_with_app_password": "",
"change_password_hint_app_passwords": "",
"clear_recent_successful_connections": "",
"create_app_passwd": "",
"created_on": "",
"direct_protocol_access": "",
"email": "",
"apple_connection_profile_complete": "",
"pushover_sender_regex": "",
"pushover_text": "",
"pushover_title": "",
"pushover_sound": "",
"pushover_vars": "",
"pushover_verify": "",
"q_add_header": "",
"q_all": "",
"q_reject": "",
"quarantine_category": "",
"quarantine_category_info": "",
"pushover_only_x_prio": "",
"from": "",
"save": "",
"syncjob_check_log": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "Kirjautuneen käyttäjän poistaminen ei onnistu", "cannot_delete_self": "Kirjautuneen käyttäjän poistaminen ei onnistu",
@@ -890,7 +1253,10 @@
"ip_invalid": "Ohitettu virheellinen IP-osoite: %s", "ip_invalid": "Ohitettu virheellinen IP-osoite: %s",
"no_active_admin": "Viimeistä aktiivista järjestelmänvalvojaa ei voi poistaa käytöstä", "no_active_admin": "Viimeistä aktiivista järjestelmänvalvojaa ei voi poistaa käytöstä",
"session_token": "Lomakkeen tunnus sanoma ei kelpaa: tunnus sanoman risti riita", "session_token": "Lomakkeen tunnus sanoma ei kelpaa: tunnus sanoman risti riita",
"session_ua": "Lomakkeen tunnus sanoma ei kelpaa: käyttäjä agentin tarkistus virhe" "session_ua": "Lomakkeen tunnus sanoma ei kelpaa: käyttäjä agentin tarkistus virhe",
"is_not_primary_alias": "",
"quota_exceeded_scope": "",
"dovecot_restart_failed": ""
}, },
"datatables": { "datatables": {
"emptyTable": "Tietoja ei ole saatavilla taulukossa", "emptyTable": "Tietoja ei ole saatavilla taulukossa",
@@ -901,7 +1267,43 @@
"search": "Etsi:", "search": "Etsi:",
"paginate": { "paginate": {
"first": "Ensimmäinen", "first": "Ensimmäinen",
"last": "Edellinen" "last": "Edellinen",
"next": "",
"previous": ""
},
"infoPostFix": "",
"decimal": "",
"collapse_all": "",
"info": "",
"infoEmpty": "",
"infoFiltered": "",
"thousands": "",
"zeroRecords": "",
"aria": {
"sortAscending": "",
"sortDescending": ""
} }
},
"fido2": {
"confirm": "",
"fido2_auth": "",
"fido2_validation_failed": "",
"fn": "",
"known_ids": "",
"register_status": "",
"rename": "",
"set_fido2": "",
"fido2_success": "",
"none": "",
"set_fido2_touchid": "",
"set_fn": "",
"start_fido2_validation": ""
},
"ratelimit": {
"disabled": "",
"second": "",
"minute": "",
"hour": "",
"day": ""
} }
} }

View File

@@ -25,7 +25,7 @@
"spam_score": "Score SPAM", "spam_score": "Score SPAM",
"syncjobs": "Tâches de synchronisation", "syncjobs": "Tâches de synchronisation",
"tls_policy": "Politique TLS", "tls_policy": "Politique TLS",
"unlimited_quota": "Quota illimité pour les boites de courriel", "unlimited_quota": "Quota illimité pour les boîtes de réception",
"domain_desc": "Modifier la description du domaine", "domain_desc": "Modifier la description du domaine",
"domain_relayhost": "Changer le relais pour un domaine", "domain_relayhost": "Changer le relais pour un domaine",
"mailbox_relayhost": "Changer le relais dune boîte de réception" "mailbox_relayhost": "Changer le relais dune boîte de réception"
@@ -52,7 +52,7 @@
"delete2duplicates": "Supprimer les doubles à destination", "delete2duplicates": "Supprimer les doubles à destination",
"description": "Description", "description": "Description",
"destination": "Destination", "destination": "Destination",
"disable_login": "Désactiver l'authentification (les e-mails entrants resteront acceptés)", "disable_login": "Désactiver l'authentification (les courriels entrants resteront acceptés)",
"domain": "domaine", "domain": "domaine",
"domain_matches_hostname": "Le domaine %s correspond à la machine (hostname)", "domain_matches_hostname": "Le domaine %s correspond à la machine (hostname)",
"domain_quota_m": "Quota total du domaine (Mo)", "domain_quota_m": "Quota total du domaine (Mo)",
@@ -68,11 +68,11 @@
"hostname": "Nom d'hôte", "hostname": "Nom d'hôte",
"inactive": "Inactif", "inactive": "Inactif",
"kind": "Type", "kind": "Type",
"mailbox_quota_def": "Quota boîte mail par défaut", "mailbox_quota_def": "Quota boîte de réception par défaut",
"mailbox_quota_m": "Quota max par boîte (Mo)", "mailbox_quota_m": "Quota max par boîte de réception (Mo)",
"mailbox_username": "Identifiant (partie gauche d'une adresse de courriel)", "mailbox_username": "Identifiant (partie gauche d'une adresse de courriel)",
"max_aliases": "Nombre maximal d'alias", "max_aliases": "Nombre maximal d'alias",
"max_mailboxes": "Nombre maximal de boîtes", "max_mailboxes": "Nombre maximal de boîtes de réception",
"mins_interval": "Période de relève (minutes)", "mins_interval": "Période de relève (minutes)",
"multiple_bookings": "Inscriptions multiples", "multiple_bookings": "Inscriptions multiples",
"nexthop": "Suivant", "nexthop": "Suivant",
@@ -84,10 +84,10 @@
"public_comment": "Commentaire public", "public_comment": "Commentaire public",
"quota_mb": "Quota (Mo)", "quota_mb": "Quota (Mo)",
"relay_all": "Relayer tous les destinataires", "relay_all": "Relayer tous les destinataires",
"relay_all_info": "↪ Si vous choissisez <b>de ne pas</b> relayer tous les destinataires, vous devez ajouter une boîte (\"aveugle\") pour chaque destinataire simple qui doit être relayé.", "relay_all_info": "↪ Si vous choissisez <b>de ne pas</b> relayer tous les destinataires, vous devez ajouter une boîte de réception (\"aveugle\") pour chaque destinataire simple qui doit être relayé.",
"relay_domain": "Relayer ce domaine", "relay_domain": "Relayer ce domaine",
"relay_transport_info": "<div class=\"badge fs-6 bg-info\">Info</div> Vous pouvez définir des cartes de transport vers une destination personnalisée pour ce domaine. sinon, une recherche MX sera effectuée.", "relay_transport_info": "<div class=\"badge fs-6 bg-info\">Info</div> Vous pouvez définir des cartes de transport vers une destination personnalisée pour ce domaine. sinon, une recherche MX sera effectuée.",
"relay_unknown_only": "Relayer uniquement les boîtes inexistantes. Les boîtes existantes seront livrées localement.", "relay_unknown_only": "Relayer uniquement les boîtes de réception inexistantes. Les boîtes de réception existantes seront livrées localement.",
"relayhost_wrapped_tls_info": "Veuillez <b>ne pas</b> utiliser des ports TLS wrappés (généralement utilisés sur le port 465).<br>\r\nUtilisez n'importe quel port non encapsulé et lancez STARTTLS. Une politique TLS pour appliquer TLS peut être créée dans \"Cartes de politique TLS\".", "relayhost_wrapped_tls_info": "Veuillez <b>ne pas</b> utiliser des ports TLS wrappés (généralement utilisés sur le port 465).<br>\r\nUtilisez n'importe quel port non encapsulé et lancez STARTTLS. Une politique TLS pour appliquer TLS peut être créée dans \"Cartes de politique TLS\".",
"select": "Veuillez sélectionner…", "select": "Veuillez sélectionner…",
"select_domain": "Sélectionner d'abord un domaine", "select_domain": "Sélectionner d'abord un domaine",
@@ -96,7 +96,7 @@
"skipcrossduplicates": "Ignorer les messages en double dans les dossiers (premier arrivé, premier servi)", "skipcrossduplicates": "Ignorer les messages en double dans les dossiers (premier arrivé, premier servi)",
"subscribeall": "S'abonner à tous les dossiers", "subscribeall": "S'abonner à tous les dossiers",
"syncjob": "Ajouter une tâche de synchronisation", "syncjob": "Ajouter une tâche de synchronisation",
"syncjob_hint": "Sachez que les mots de passe seront sauvegardés en clair !", "syncjob_hint": "Sachez que les mots de passe seront enregistrés en clair !",
"target_address": "Aller à l'adresse", "target_address": "Aller à l'adresse",
"target_address_info": "<small>Adresse(s) de courriel complète(s) (séparées par des virgules).</small>", "target_address_info": "<small>Adresse(s) de courriel complète(s) (séparées par des virgules).</small>",
"target_domain": "Domaine cible", "target_domain": "Domaine cible",
@@ -105,7 +105,7 @@
"username": "Nom d'utilisateur", "username": "Nom d'utilisateur",
"validate": "Valider", "validate": "Valider",
"validation_success": "Validation réussie", "validation_success": "Validation réussie",
"bcc_dest_format": "La destination Cci doit être une seule adresse e-mail valide.<br>Si vous avez besoin d'envoyer une copie à plusieurs adresses, créez un alias et utilisez-le ici.", "bcc_dest_format": "La destination Cci doit être une seule adresse de courriel valide.<br>Si vous avez besoin d'envoyer une copie à plusieurs adresses, créez un alias et utilisez-le ici.",
"tags": "Etiquettes", "tags": "Etiquettes",
"app_passwd_protocols": "Protocoles autorisés pour le mot de passe de l'application", "app_passwd_protocols": "Protocoles autorisés pour le mot de passe de l'application",
"dry": "Simuler la synchronisation" "dry": "Simuler la synchronisation"
@@ -194,7 +194,7 @@
"generate": "générer", "generate": "générer",
"guid": "GUID - Identifiant de l'instance", "guid": "GUID - Identifiant de l'instance",
"guid_and_license": "GUID & Licence", "guid_and_license": "GUID & Licence",
"hash_remove_info": "La suppression d'un hachage ratelimit (s'il existe toujours) réinitialisera complètement son compteur.<br>\r\n Chaque hachage est indiqué par une couleur individuelle.", "hash_remove_info": "La suppression d'un hachage limite d'envoi (s'il existe toujours) réinitialisera complètement son compteur.<br>\n Chaque hachage est indiqué par une couleur individuelle.",
"help_text": "Remplacer le texte d'aide sous le masque de connexion (HTML autorisé)", "help_text": "Remplacer le texte d'aide sous le masque de connexion (HTML autorisé)",
"host": "Hôte", "host": "Hôte",
"html": "HTML", "html": "HTML",
@@ -203,7 +203,7 @@
"in_use_by": "Utilisé par", "in_use_by": "Utilisé par",
"inactive": "Inactif", "inactive": "Inactif",
"include_exclude": "Inclure/Exclure", "include_exclude": "Inclure/Exclure",
"include_exclude_info": "Par défaut - sans sélection - <b>toutes les boîtes</b> sont adressées", "include_exclude_info": "Par défaut - sans sélection - <b>toutes les boîte de réception</b> sont adressées",
"includes": "Inclure ces destinataires", "includes": "Inclure ces destinataires",
"last_applied": "Dernière application", "last_applied": "Dernière application",
"license_info": "Une licence nest pas requise, mais contribue au développement.<br><a href=\"https://www.servercow.de/mailcow?lang=en#sal\" target=\"_blank\" alt=\"SAL order\">Enregistrer votre GUID ici</a> or <a href=\"https://www.servercow.de/mailcow?lang=en#support\" target=\"_blank\" alt=\"Support order\">acheter le support pour votre intallation Mailcow.</a>", "license_info": "Une licence nest pas requise, mais contribue au développement.<br><a href=\"https://www.servercow.de/mailcow?lang=en#sal\" target=\"_blank\" alt=\"SAL order\">Enregistrer votre GUID ici</a> or <a href=\"https://www.servercow.de/mailcow?lang=en#support\" target=\"_blank\" alt=\"Support order\">acheter le support pour votre intallation Mailcow.</a>",
@@ -222,7 +222,7 @@
"no_record": "Aucun enregistrement", "no_record": "Aucun enregistrement",
"oauth2_client_id": "Client ID", "oauth2_client_id": "Client ID",
"oauth2_client_secret": "Secret client", "oauth2_client_secret": "Secret client",
"oauth2_info": "L'implémentation OAuth2 prend en charge le type d'autorisation \"Authorization Code\" et émet des jetons d'actualisation.<br>\nLe serveur émet également automatiquement de nouveaux jetons d'actualisation, après qu'un jeton d'actualisation a été utilisé.<br><br>\n→ La portée par défaut est <i>profile</i>. Seuls les utilisateurs d'une boîte peuvent être authentifiés par rapport à OAuth2. Si le paramètre scope est omis, il revient au <i>profile</i>.<br>\n→ Le paramètre <i>state</i> doit être envoyé par le client dans le cadre de la demande d'autorisation.<br><br>\nChemins d'accès aux requêtes vers l'API OAuth <br>\n<ul>\n <li>Point de terminaison d'autorisation : <code>/oauth/authorize</code></li>\n <li>Point de terminaison du jeton : <code>/oauth/token</code></li>\n <li>Page de ressource : <code>/oauth/profile</code></li>\n</ul>\nLa régénération du secret client ne fera pas expirer les codes d'autorisation existants, mais ils ne pourront pas renouveler leur jeton.<br><br>\nLa révocation des jetons clients entraînera la fin immédiate de toutes les sessions actives. Tous les clients doivent se ré-authentifier.", "oauth2_info": "L'implémentation OAuth2 prend en charge le type d'autorisation \"Authorization Code\" et émet des jetons d'actualisation.<br>\nLe serveur émet également automatiquement de nouveaux jetons d'actualisation, après qu'un jeton d'actualisation a été utilisé.<br><br>\n→ La portée par défaut est <i>profile</i>. Seuls les utilisateurs d'une boîte de réception peuvent être authentifiés par rapport à OAuth2. Si le paramètre scope est omis, il revient au <i>profile</i>.<br>\n→ Le paramètre <i>state</i> doit être envoyé par le client dans le cadre de la demande d'autorisation.<br><br>\nChemins d'accès aux requêtes vers l'API OAuth <br>\n<ul>\n <li>Point de terminaison d'autorisation : <code>/oauth/authorize</code></li>\n <li>Point de terminaison du jeton : <code>/oauth/token</code></li>\n <li>Page de ressource : <code>/oauth/profile</code></li>\n</ul>\nLa régénération du secret client ne fera pas expirer les codes d'autorisation existants, mais ils ne pourront pas renouveler leur jeton.<br><br>\nLa révocation des jetons clients entraînera la fin immédiate de toutes les sessions actives. Tous les clients doivent se ré-authentifier.",
"oauth2_redirect_uri": "URI de redirection", "oauth2_redirect_uri": "URI de redirection",
"oauth2_renew_secret": "Générer un nouveau secret client", "oauth2_renew_secret": "Générer un nouveau secret client",
"oauth2_revoke_tokens": "Révoquer tous les jetons", "oauth2_revoke_tokens": "Révoquer tous les jetons",
@@ -237,24 +237,24 @@
"quarantine_max_age": "Âge maximun en jour(s)<br><small>La valeur doit être égale ou supérieure à 1 jour.</small>", "quarantine_max_age": "Âge maximun en jour(s)<br><small>La valeur doit être égale ou supérieure à 1 jour.</small>",
"quarantine_max_size": "Taille maximum en Mo (les éléments plus grands sont mis au rebut):<br><small>0 ne signifie <b>pas</b> illimité.</small>", "quarantine_max_size": "Taille maximum en Mo (les éléments plus grands sont mis au rebut):<br><small>0 ne signifie <b>pas</b> illimité.</small>",
"quarantine_max_score": "Ignorer la notification si le score de spam est au dessus de cette valeur :<br><small>Par défaut : 9999.0</small>", "quarantine_max_score": "Ignorer la notification si le score de spam est au dessus de cette valeur :<br><small>Par défaut : 9999.0</small>",
"quarantine_notification_html": "Modèle de courriel de notification:<br><small>Laisser vide pour restaurer le modèle par défaut.</small>", "quarantine_notification_html": "Modèle de courriel de notification :<br><small>Laisser vide pour restaurer le modèle par défaut.</small>",
"quarantine_notification_sender": "Notification par e-mail de lexpéditeur", "quarantine_notification_sender": "Notification par courriel de lexpéditeur",
"quarantine_notification_subject": "Objet du courriel de notification", "quarantine_notification_subject": "Objet du courriel de notification",
"quarantine_redirect": "<b>Rediriger toutes les notifications</b> vers ce destinataire:<br><small>Laisser vide pour désactiver. <b>Courrier non signé et non coché. Doit être livré en interne seulement.</b></small>", "quarantine_redirect": "<b>Rediriger toutes les notifications</b> vers ce destinataire:<br><small>Laisser vide pour désactiver. <b>Courrier non signé et non coché. Doit être livré en interne seulement.</b></small>",
"quarantine_release_format": "Format des éléments diffusés", "quarantine_release_format": "Format des éléments diffusés",
"quarantine_release_format_att": "En pièce jointe", "quarantine_release_format_att": "En pièce jointe",
"quarantine_release_format_raw": "Original non modifié", "quarantine_release_format_raw": "Original non modifié",
"quarantine_retention_size": "Rétentions par boîte:<br><small>0 indique <b>inactive</b>.</small>", "quarantine_retention_size": "Rétentions par boîte de réception:<br><small>0 indique <b>inactive</b>.</small>",
"quota_notification_html": "Modèle de courriel de notification:<br><small>Laisser vide pour restaurer le modèle par défaut.</small>", "quota_notification_html": "Modèle de courriel de notification :<br><small>Laisser vide pour restaurer le modèle par défaut.</small>",
"quota_notification_sender": "Notification par e-mail de lexpéditeur", "quota_notification_sender": "Notification par courriel de lexpéditeur",
"quota_notification_subject": "Objet du courriel de notification", "quota_notification_subject": "Objet du courriel de notification",
"quota_notifications": "Notifications de quotas", "quota_notifications": "Notifications de quotas",
"quota_notifications_info": "Les notications de quota sont envoyées aux utilisateurs une fois lors du passage à 80 % et une fois lors du passage à 95 % dutilisation.", "quota_notifications_info": "Les notications de quota sont envoyées aux utilisateurs une fois lors du passage à 80 % et une fois lors du passage à 95 % dutilisation.",
"quota_notifications_vars": "{{percent}} égale le quota actuel de lutilisateur<br>{{username}} est le nom de la boîte", "quota_notifications_vars": "{{percent}} égale le quota actuel de lutilisateur<br>{{username}} est le nom de la boîte de réception",
"r_active": "Restrictions actives", "r_active": "Restrictions actives",
"r_inactive": "Restrictions inactives", "r_inactive": "Restrictions inactives",
"r_info": "Les éléments grisés/désactivés sur la liste des restrictions actives ne sont pas considérés comme des restrictions valides pour Mailcow et ne peuvent pas être déplacés. Des restrictions inconnues seront établies par ordre dapparition de toute façon. <br>Vous pouvez ajouter de nouveaux éléments dans le code <code>inc/vars.local.inc.php</code> pour pouvoir les basculer.", "r_info": "Les éléments grisés/désactivés sur la liste des restrictions actives ne sont pas considérés comme des restrictions valides pour Mailcow et ne peuvent pas être déplacés. Des restrictions inconnues seront établies par ordre dapparition de toute façon. <br>Vous pouvez ajouter de nouveaux éléments dans le code <code>inc/vars.local.inc.php</code> pour pouvoir les basculer.",
"rate_name": "Nom du taux", "rate_name": "Nom de la limite",
"recipients": "Destinataires", "recipients": "Destinataires",
"refresh": "Rafraîchir", "refresh": "Rafraîchir",
"regen_api_key": "Regénérer la clé API", "regen_api_key": "Regénérer la clé API",
@@ -274,9 +274,9 @@
"rsetting_no_selection": "Veuillez sélectionner une règle", "rsetting_no_selection": "Veuillez sélectionner une règle",
"rsetting_none": "Pas de règles disponibles", "rsetting_none": "Pas de règles disponibles",
"rsettings_insert_preset": "Insérer un exemple de préréglage \"%s\"", "rsettings_insert_preset": "Insérer un exemple de préréglage \"%s\"",
"rsettings_preset_1": "Désactiver tout sauf DKIM et la limite tarifaire pour les utilisateurs authentifiés", "rsettings_preset_1": "Désactiver tout sauf DKIM et la limite d'envoi pour les utilisateurs authentifiés",
"rsettings_preset_2": "Les postmasters veulent du spam", "rsettings_preset_2": "Les postmasters veulent du spam",
"rsettings_preset_3": "Autoriser uniquement des expéditeurs particuliers pour une boîte (c.-à-d. utilisation comme boîte interne seulement)", "rsettings_preset_3": "Autoriser uniquement des expéditeurs particuliers pour une boîte de réception (c.-à-d. utilisation comme boîte de réception interne seulement)",
"rspamd_com_settings": "Un nom de paramètre sera généré automatiquement, voir lexemple de préréglages ci-dessous. Pour plus de détails voir : <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Docs Rspamd</a>", "rspamd_com_settings": "Un nom de paramètre sera généré automatiquement, voir lexemple de préréglages ci-dessous. Pour plus de détails voir : <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Docs Rspamd</a>",
"rspamd_global_filters": "Cartes des filtres globaux", "rspamd_global_filters": "Cartes des filtres globaux",
"rspamd_global_filters_agree": "Je serai prudent !", "rspamd_global_filters_agree": "Je serai prudent !",
@@ -312,7 +312,7 @@
"ui_header_announcement_type_warning": "Important", "ui_header_announcement_type_warning": "Important",
"ui_header_announcement_type_danger": "Très important", "ui_header_announcement_type_danger": "Très important",
"ui_texts": "Textes et étiquettes de l'interface utilisateur", "ui_texts": "Textes et étiquettes de l'interface utilisateur",
"unban_pending": "unban en attente", "unban_pending": "banissement en attente",
"unchanged_if_empty": "Si non modifié, laisser en blanc", "unchanged_if_empty": "Si non modifié, laisser en blanc",
"upload": "Charger", "upload": "Charger",
"username": "Nom d'utilisateur", "username": "Nom d'utilisateur",
@@ -338,7 +338,20 @@
"oauth2_apps": "Applications OAuth2", "oauth2_apps": "Applications OAuth2",
"password_length": "Longueur des mots de passe", "password_length": "Longueur des mots de passe",
"password_policy_chars": "Doit contenir au moins une lettre", "password_policy_chars": "Doit contenir au moins une lettre",
"password_policy_length": "La longueur minimale du mot de passe est de %d" "password_policy_length": "La longueur minimale du mot de passe est de %d",
"f2b_manage_external_info": "Fail2ban maintiendra la liste de bannissement, mais ne définira pas activement de règles pour bloquer le trafic. Utilisez la liste de bannissement générée ci-dessous pour bloquer le trafic de manière externe.",
"f2b_manage_external": "Gérer Fail2Ban en externe",
"transport_test_rcpt_info": "&#8226 ; Utilisez null@hosted.mailcow.de pour tester le relais vers une destination étrangère.",
"relay_rcpt": "Adresse \"À :\"",
"is_mx_based": "Basé sur MX",
"service": "",
"success": "",
"cors_settings": "",
"ip_check_opt_in": "",
"admins_ldap": "",
"login_time": "",
"options": "",
"queue_unban": ""
}, },
"danger": { "danger": {
"access_denied": "Accès refusé ou données de formulaire non valides", "access_denied": "Accès refusé ou données de formulaire non valides",
@@ -352,9 +365,9 @@
"app_passwd_id_invalid": "Le mot de passe ID %s de l'application est non valide", "app_passwd_id_invalid": "Le mot de passe ID %s de l'application est non valide",
"bcc_empty": "La destination BCC destination ne peut pas être vide", "bcc_empty": "La destination BCC destination ne peut pas être vide",
"bcc_exists": "Une carte de transport BCC %s existe pour le type %s", "bcc_exists": "Une carte de transport BCC %s existe pour le type %s",
"bcc_must_be_email": "Le destination BCC %s n'est pas une adresse e-mail valide", "bcc_must_be_email": "La destination BCC %s n'est pas une adresse de courriel valide",
"comment_too_long": "Le commentaire est trop long, 160 caractère max sont permis", "comment_too_long": "Le commentaire est trop long, 160 caractère max sont permis",
"defquota_empty": "Le quota par défaut par boîte ne doit pas être 0.", "defquota_empty": "Le quota par défaut par boîte de réception doit pas être 0.",
"description_invalid": "La description des ressources pour %s est non valide", "description_invalid": "La description des ressources pour %s est non valide",
"dkim_domain_or_sel_exists": "Une clé DKIM pour \"%s\" existe et ne sera pas écrasée", "dkim_domain_or_sel_exists": "Une clé DKIM pour \"%s\" existe et ne sera pas écrasée",
"dkim_domain_or_sel_invalid": "Domaine ou sélection DKIM non valide : %s", "dkim_domain_or_sel_invalid": "Domaine ou sélection DKIM non valide : %s",
@@ -389,22 +402,22 @@
"invalid_recipient_map_old": "Destinataire original spécifié non valide : %s", "invalid_recipient_map_old": "Destinataire original spécifié non valide : %s",
"ip_list_empty": "La liste des adresses IP autorisées ne peut pas être vide", "ip_list_empty": "La liste des adresses IP autorisées ne peut pas être vide",
"is_alias": "%s est déjà connu comme une adresse alias", "is_alias": "%s est déjà connu comme une adresse alias",
"is_alias_or_mailbox": "%s est déjà connu comme un alias, une boîte ou une adresse alias développée à partir dun domaine alias.", "is_alias_or_mailbox": "%s est déjà connu comme un alias, une boîte de réception ou une adresse alias développée à partir dun domaine alias.",
"is_spam_alias": "%s est déjà connu comme une adresse alias temporaire (alias d'adresse spam)", "is_spam_alias": "%s est déjà connu comme une adresse alias temporaire (alias d'adresse spam)",
"last_key": "La dernière clé ne peut pas être supprimée, veuillez désactiver TFA à la place.", "last_key": "La dernière clé ne peut pas être supprimée, veuillez désactiver TFA à la place.",
"login_failed": "La connexion a échoué", "login_failed": "La connexion a échoué",
"mailbox_defquota_exceeds_mailbox_maxquota": "Le quota par défaut dépasse la limite maximale du quota", "mailbox_defquota_exceeds_mailbox_maxquota": "Le quota par défaut dépasse la limite maximale du quota",
"mailbox_invalid": "Le nom de la boîte n'est pas valide", "mailbox_invalid": "Le nom de la boîte de réception n'est pas valide",
"mailbox_quota_exceeded": "Le quota dépasse la limite du domaine (max. %d Mo)", "mailbox_quota_exceeded": "Le quota dépasse la limite du domaine (max. %d Mo)",
"mailbox_quota_exceeds_domain_quota": "Le quota maximum dépasse la limite du quota de domaine", "mailbox_quota_exceeds_domain_quota": "Le quota maximal dépasse la limite du quota de domaine",
"mailbox_quota_left_exceeded": "Espace libre insuffisant (espace libre : %d Mio)", "mailbox_quota_left_exceeded": "Espace libre insuffisant (espace libre : %d Mio)",
"mailboxes_in_use": "Le max. des boîtes doit être supérieur ou égal à %d", "mailboxes_in_use": "Le max. des boîtes de réception doit être supérieur ou égal à %d",
"malformed_username": "Nom dutilisateur malformé", "malformed_username": "Nom dutilisateur malformé",
"map_content_empty": "Le contenu de la carte ne peut pas être vide", "map_content_empty": "Le contenu de la carte ne peut pas être vide",
"max_alias_exceeded": "Le nombre max. d'aliases est dépassé", "max_alias_exceeded": "Le nombre max. d'aliases est dépassé",
"max_mailbox_exceeded": "Le nombre max. de boîte est dépassé (%d of %d)", "max_mailbox_exceeded": "Le nombre max. de boîte de réception est dépassé (%d of %d)",
"max_quota_in_use": "Le quota de la boîte doit être supérieur ou égal à %d Mo", "max_quota_in_use": "Le quota de la boîte de réception doit être supérieur ou égal à %d Mo",
"maxquota_empty": "Le quota maximum par boîte ne doit pas être de 0.", "maxquota_empty": "Le quota maximum par boîte de réception ne doit pas être de 0.",
"mysql_error": "Erreur MySQL : %s", "mysql_error": "Erreur MySQL : %s",
"nginx_reload_failed": "Le rechargement de Nginx a échoué : %s", "nginx_reload_failed": "Le rechargement de Nginx a échoué : %s",
"network_host_invalid": "Réseau ou hôte non valide : %s", "network_host_invalid": "Réseau ou hôte non valide : %s",
@@ -429,15 +442,15 @@
"release_send_failed": "Le message na pas pu être diffusé : %s", "release_send_failed": "Le message na pas pu être diffusé : %s",
"reset_f2b_regex": "Le filtre regex n'a pas pu être réinitialisé à temps, veuillez réessayer ou attendre quelques secondes de plus et recharger le site web.", "reset_f2b_regex": "Le filtre regex n'a pas pu être réinitialisé à temps, veuillez réessayer ou attendre quelques secondes de plus et recharger le site web.",
"resource_invalid": "Le nom de la resource %s n'est pas valide", "resource_invalid": "Le nom de la resource %s n'est pas valide",
"rl_timeframe": "Le délai limite du taux est incorrect", "rl_timeframe": "Le délai de la limite d'envoi est incorrect",
"rspamd_ui_pw_length": "Le mot de passe de l'interface Rspamd doit être de 6 caratères au minimum", "rspamd_ui_pw_length": "Le mot de passe de l'interface Rspamd doit être de 6 caractères au minimum",
"script_empty": "Le script ne peut pas être vide", "script_empty": "Le script ne peut pas être vide",
"sender_acl_invalid": "La valeur ACL de lexpéditeur %s est invalide", "sender_acl_invalid": "La valeur ACL de lexpéditeur %s est invalide",
"set_acl_failed": "Impossible de définir ACL", "set_acl_failed": "Impossible de définir l'ACL",
"settings_map_invalid": "La carte des paramètres %s est invalide", "settings_map_invalid": "La carte des paramètres %s est invalide",
"sieve_error": "Erreur d'analyse syntaxique Sieve : %s", "sieve_error": "Erreur d'analyse syntaxique Sieve : %s",
"spam_learn_error": "Erreur d'apprentissage du spam : %s", "spam_learn_error": "Erreur d'apprentissage du spam : %s",
"subject_empty": "Le sujet ne peut^pas être vide", "subject_empty": "Le sujet ne peut pas être vide",
"target_domain_invalid": "Le domaine cible %s n'est pas valide", "target_domain_invalid": "Le domaine cible %s n'est pas valide",
"targetd_not_found": "Le domaine cible %s est introuvable", "targetd_not_found": "Le domaine cible %s est introuvable",
"targetd_relay_domain": "Le domaine cible %s est un domaine de relais", "targetd_relay_domain": "Le domaine cible %s est un domaine de relais",
@@ -449,7 +462,7 @@
"tls_policy_map_parameter_invalid": "Le paramètre Policy est invalide", "tls_policy_map_parameter_invalid": "Le paramètre Policy est invalide",
"totp_verification_failed": "Echec de la vérification TOTP", "totp_verification_failed": "Echec de la vérification TOTP",
"transport_dest_exists": "La destination de transport \"%s\" existe", "transport_dest_exists": "La destination de transport \"%s\" existe",
"webauthn_verification_failed": "Echec de la vérification WebAuthn : %s", "webauthn_verification_failed": "Échec de la vérification WebAuthn : %s",
"fido2_verification_failed": "La vérification FIDO2 a échoué : %s", "fido2_verification_failed": "La vérification FIDO2 a échoué : %s",
"unknown": "Une erreur inconnue est survenue", "unknown": "Une erreur inconnue est survenue",
"unknown_tfa_method": "Methode TFA inconnue", "unknown_tfa_method": "Methode TFA inconnue",
@@ -458,13 +471,18 @@
"validity_missing": "Veuillez attribuer une période de validité", "validity_missing": "Veuillez attribuer une période de validité",
"value_missing": "Veuillez fournir toutes les valeurs", "value_missing": "Veuillez fournir toutes les valeurs",
"yotp_verification_failed": "La vérification Yubico OTP a échoué : %s", "yotp_verification_failed": "La vérification Yubico OTP a échoué : %s",
"webauthn_authenticator_failed": "L'authentificateur selectionné est introuvable", "webauthn_authenticator_failed": "L'authentificateur sélectionné est introuvable",
"demo_mode_enabled": "Le mode de démonstration est activé", "demo_mode_enabled": "Le mode de démonstration est activé",
"template_exists": "La template %s existe déja", "template_exists": "Le modèle %s existe déjà",
"template_id_invalid": "Le numéro de template %s est invalide", "template_id_invalid": "Le numéro de modèle %s est invalide",
"template_name_invalid": "Le nom de la template est invalide", "template_name_invalid": "Le nom du modèle est invalide",
"img_dimensions_exceeded": "L'image dépasse les dimensions maximales", "img_dimensions_exceeded": "L'image dépasse les dimensions maximales",
"img_size_exceeded": "L'image dépasse la taille maximale de fichier" "img_size_exceeded": "L'image dépasse la taille maximale de fichier",
"webauthn_publickey_failed": "Aucune clé publique n'a été stockée pour l'authentificateur sélectionné.",
"cors_invalid_method": "Allow-Method specifiée invalide",
"cors_invalid_origin": "Allow-Origin spécifiée invalide",
"extended_sender_acl_denied": "ACL manquante pour définir les adresses des expéditeurs externes",
"webauthn_username_failed": "L'authentificateur sélectionné appartient à un autre compte"
}, },
"debug": { "debug": {
"chart_this_server": "Graphique (ce serveur)", "chart_this_server": "Graphique (ce serveur)",
@@ -474,7 +492,7 @@
"history_all_servers": "Historique (tous les serveurs)", "history_all_servers": "Historique (tous les serveurs)",
"in_memory_logs": "Logs En-mémoire", "in_memory_logs": "Logs En-mémoire",
"jvm_memory_solr": "Utilisation mémoire JVM", "jvm_memory_solr": "Utilisation mémoire JVM",
"log_info": "<p>Les logs <b>En-mémoire</b> Mailcow sont collectés dans des listes Redis et découpées en LOG_LINES (%d) chaque minute pour réduire la charge.\r\n <br>Les logs En-mémoire ne sont pas destinés à être persistants. Toutes les applications qui se connectent en mémoire, se connectent également au démon Docker et donc au pilote de journalisation par défaut.\r\n <br>Le type de journal en mémoire doit être utilisé pour déboguer les problèmes mineurs avec les conteneurs.</p>\r\n <p><b>Les logs externes</b> sont collectés via l'API de l'application concernée.</p>\r\n <p>Les journaux <b>statiques</b> sont principalement des journaux dactivité, qui ne sont pas enregistrés dans Dockerd, mais qui doivent toujours être persistants (sauf pour les logs API).</p>", "log_info": "<p>Les logs <b>En-mémoire</b> Mailcow sont collectés dans des listes Redis et découpées en LOG_LINES (%d) chaque minute pour réduire la charge.\n <br>Les logs En-mémoire ne sont pas destinés à être persistants. Toutes les applications qui se connectent en mémoire, se connectent également au démon Docker, et donc au pilote de journalisation par défaut.\n <br>Le type de journal en mémoire doit être utilisé pour déboguer les problèmes mineurs avec les conteneurs.</p>\n <p><b>Les logs externes</b> sont collectés via l'API de l'application concernée.</p>\n <p>Les journaux <b>statiques</b> sont principalement des journaux dactivité, qui ne sont pas enregistrés dans Dockerd, mais qui doivent toujours être persistants (sauf pour les logs API).</p>",
"logs": "Logs", "logs": "Logs",
"restart_container": "Redémarrer", "restart_container": "Redémarrer",
"solr_dead": "Solr est en cours de démarrage, désactivé ou mort.", "solr_dead": "Solr est en cours de démarrage, désactivé ou mort.",
@@ -487,7 +505,25 @@
"uptime": "Disponibilité", "uptime": "Disponibilité",
"started_on": "Démarré à", "started_on": "Démarré à",
"static_logs": "Logs statiques", "static_logs": "Logs statiques",
"system_containers": "Système & Conteneurs" "system_containers": "Système & Conteneurs",
"timezone": "Fuseau horaire",
"username": "Nom d'utilisateur",
"wip": "En cours de réalisation",
"architecture": "Architecture",
"cores": "Cœurs",
"current_time": "Heure du système",
"service": "",
"show_ip": "",
"memory": "",
"success": "",
"update_available": "",
"no_update_available": "",
"update_failed": "",
"error_show_ip": "",
"container_running": "",
"container_disabled": "",
"container_stopped": "",
"login_time": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Valeur dérivée de lenregistrement A/AAAA. Ceci est supporté tant que lenregistrement indique la bonne ressource.", "cname_from_a": "Valeur dérivée de lenregistrement A/AAAA. Ceci est supporté tant que lenregistrement indique la bonne ressource.",
@@ -496,7 +532,7 @@
"dns_records_docs": "Veuillez également consulter <a target=\"_blank\" href=\"https://docs.mailcow.email/getstarted/prerequisite-dns\">la documentation</a>.", "dns_records_docs": "Veuillez également consulter <a target=\"_blank\" href=\"https://docs.mailcow.email/getstarted/prerequisite-dns\">la documentation</a>.",
"dns_records_data": "Données correcte", "dns_records_data": "Données correcte",
"dns_records_name": "Nom", "dns_records_name": "Nom",
"dns_records_status": "Etat courant", "dns_records_status": "État courant",
"dns_records_type": "Type", "dns_records_type": "Type",
"optional": "Cet enregistrement est optionel." "optional": "Cet enregistrement est optionel."
}, },
@@ -511,7 +547,7 @@
"app_passwd": "Mot de passe de l'application", "app_passwd": "Mot de passe de l'application",
"automap": "Essayer dautomatiser les dossiers (\"Sent items\", \"Sent\" => \"Sent\" etc.)", "automap": "Essayer dautomatiser les dossiers (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
"backup_mx_options": "Options Backup MX", "backup_mx_options": "Options Backup MX",
"bcc_dest_format": "La destination BCC doit être une seule adresse e-mail valide.", "bcc_dest_format": "La destination BCC doit être une seule adresse de courriel valide.",
"client_id": "ID client", "client_id": "ID client",
"client_secret": "Secret client", "client_secret": "Secret client",
"comment_info": "Un commentaire privé nest pas visible pour lutilisateur, tandis quun commentaire public est affiché comme infobulle lorsque vous le placez dans un aperçu des utilisateurs", "comment_info": "Un commentaire privé nest pas visible pour lutilisateur, tandis quun commentaire public est affiché comme infobulle lorsque vous le placez dans un aperçu des utilisateurs",
@@ -527,7 +563,7 @@
"domains": "Domaines", "domains": "Domaines",
"dont_check_sender_acl": "Désactiver la vérification de lexpéditeur pour le domaine %s (+ alias de domaines)", "dont_check_sender_acl": "Désactiver la vérification de lexpéditeur pour le domaine %s (+ alias de domaines)",
"edit_alias_domain": "Édition des alias de domaine", "edit_alias_domain": "Édition des alias de domaine",
"encryption": "Cryptage", "encryption": "Chiffrement",
"exclude": "Exclure des objets (regex)", "exclude": "Exclure des objets (regex)",
"extended_sender_acl": "Adresses de lexpéditeur externe", "extended_sender_acl": "Adresses de lexpéditeur externe",
"extended_sender_acl_info": "Une clé de domaine DKIM doit être importée, si disponible.<br>\r\n Noubliez pas dajouter ce serveur à lenregistrement TXT SPF correspondant.<br>\r\n Chaque fois quun domaine ou un alias de domaine est ajouté à ce serveur, et qui chevauche une adresse externe, ladresse externe est supprimée.<br>\r\n Utiliser @domain.tld pour permettre l'envoi comme *@domain.tld.", "extended_sender_acl_info": "Une clé de domaine DKIM doit être importée, si disponible.<br>\r\n Noubliez pas dajouter ce serveur à lenregistrement TXT SPF correspondant.<br>\r\n Chaque fois quun domaine ou un alias de domaine est ajouté à ce serveur, et qui chevauche une adresse externe, ladresse externe est supprimée.<br>\r\n Utiliser @domain.tld pour permettre l'envoi comme *@domain.tld.",
@@ -542,14 +578,14 @@
"inactive": "Inactif", "inactive": "Inactif",
"kind": "Type", "kind": "Type",
"last_modified": "Dernière modification", "last_modified": "Dernière modification",
"mailbox": "Édition de la boîte mail", "mailbox": "Édition de la boîte de réception",
"mailbox_quota_def": "Quota par défaut de la boîte", "mailbox_quota_def": "Quota par défaut de la boîte de réception",
"max_aliases": "Nombre max. d'alias", "max_aliases": "Nombre max. d'alias",
"max_mailboxes": "Nombre max. de boîtes possibles", "max_mailboxes": "Nombre max. de boîte de réception possibles",
"max_quota": "Quota max. par boîte mail (Mo)", "max_quota": "Quota max. par boîte de réception (Mo)",
"maxage": "Âge maximal en jours des messages qui seront consultés à distance<br><small>(0 = ignorer la durée)</small>", "maxage": "Âge maximal en jours des messages qui seront consultés à distance<br><small>(0 = ignorer la durée)</small>",
"maxbytespersecond": "Octets max. par seconde <br><small>(0 = pas de limite)</small>", "maxbytespersecond": "Octets max. par seconde <br><small>(0 = pas de limite)</small>",
"mbox_rl_info": "Cette limite de taux est appliquée au nom de connexion SASL, elle correspond à toute adresse \"from\" utilisée par lutilisateur connecté. Une limite tarifaire pour les boîtes remplace une limite tarifaire pour lensemble du domaine.", "mbox_rl_info": "Cette limite d'envoi est appliquée au nom de connexion SASL, elle correspond à toute adresse \"from\" utilisée par lutilisateur connecté. Une limite d'envoi pour les boîtes de réception remplace une limite d'envoi pour lensemble du domaine.",
"mins_interval": "Intervalle (min)", "mins_interval": "Intervalle (min)",
"multiple_bookings": "Réservations multiples", "multiple_bookings": "Réservations multiples",
"nexthop": "Saut suivant", "nexthop": "Saut suivant",
@@ -559,22 +595,22 @@
"private_comment": "Commentaire privé", "private_comment": "Commentaire privé",
"public_comment": "Commentaire public", "public_comment": "Commentaire public",
"pushover_evaluate_x_prio": "Acheminement du courrier hautement prioritaire [<code>X-Priority: 1</code>]", "pushover_evaluate_x_prio": "Acheminement du courrier hautement prioritaire [<code>X-Priority: 1</code>]",
"pushover_info": "Les paramètres de notification push sappliqueront à tout le courrier propre (non spam) livré à <b>%s</b> y compris les alias (partagés, non partagés, étiquetés).", "pushover_info": "Les paramètres de notification push sappliqueront à tout le courrier propre (non-spam) livré à <b>%s</b> y compris les alias (partagés, non partagés, étiquetés).",
"pushover_only_x_prio": "Ne tenir compte que du courrier hautement prioritaire [<code>X-Priority: 1</code>]", "pushover_only_x_prio": "Ne tenir compte que du courrier hautement prioritaire [<code>X-Priority: 1</code>]",
"pushover_sender_array": "Ne tenir compte que des adresses électroniques suivantes de lexpéditeur : <small>(séparées par des virgules)</small>", "pushover_sender_array": "Ne tenir compte que des adresses de courriel suivantes de lexpéditeur : <small>(séparées par des virgules)</small>",
"pushover_sender_regex": "Tenir compte de lexpéditeur regex suivant", "pushover_sender_regex": "Tenir compte de lexpéditeur regex suivant",
"pushover_text": "Texte de la notification", "pushover_text": "Texte de la notification",
"pushover_title": "Titre de la notification", "pushover_title": "Titre de la notification",
"pushover_vars": "Lorsque aucun filtre dexpéditeur nest défini, tous les messages seront considérés.<br>Les filtres Regex ainsi que les vérifications exactes de lexpéditeur peuvent être définis individuellement et seront considérés de façon séquentielle. Ils ne dépendent pas les uns des autres.<br>Variables utilisables pour le texte et le titre (veuillez prendre note des politiques de protection des données)", "pushover_vars": "Lorsque aucun filtre dexpéditeur nest défini, tous les messages seront considérés.<br>Les filtres Regex ainsi que les vérifications exactes de lexpéditeur peuvent être définis individuellement et seront considérés de façon séquentielle. Ils ne dépendent pas les uns des autres.<br>Variables utilisables pour le texte et le titre (veuillez prendre note des politiques de protection des données)",
"pushover_verify": "Vérifier les justificatifs", "pushover_verify": "Vérifier les informations d'identification",
"quota_mb": "Quota (Mo)", "quota_mb": "Quota (Mo)",
"ratelimit": "Limite de taux", "ratelimit": "Limite d'envoi",
"redirect_uri": "Redirection/rappel URL", "redirect_uri": "URL de redirection/callback",
"relay_all": "Relayer tous les destinataires", "relay_all": "Relayer tous les destinataires",
"relay_all_info": "↪ Si vous <b>ne choissisez pas</b> de relayer tous les destinataires, vous devrez ajouter une boîte (\"aveugle\") pour chaque destinataire qui devrait être relayé.", "relay_all_info": "↪ Si vous <b>ne choisissez pas</b> de relayer tous les destinataires, vous devrez ajouter une boîte de réception (\"aveugle\") pour chaque destinataire qui devrait être relayé.",
"relay_domain": "Relayer ce domaine", "relay_domain": "Relayer ce domaine",
"relay_transport_info": "<div class=\"badge fs-6 bg-info\">Info</div> Vous pouvez définir des cartes de transport vers une destination personnalisée pour ce domaine. Si elle nest pas configurée, une recherche MX sera effectuée.", "relay_transport_info": "<div class=\"badge fs-6 bg-info\">Info</div> Vous pouvez définir des cartes de transport vers une destination personnalisée pour ce domaine. Si elle nest pas configurée, une recherche MX sera effectuée.",
"relay_unknown_only": "Relais des boîtes non existantes seulement. Les boîtes existantes seront livrées localement..", "relay_unknown_only": "Relais des boîtes de réception non existantes seulement. Les boîtes de réception existantes seront livrées localement.",
"relayhost": "Transports dépendant de lexpéditeur", "relayhost": "Transports dépendant de lexpéditeur",
"remove": "Enlever", "remove": "Enlever",
"resource": "Ressource", "resource": "Ressource",
@@ -582,12 +618,12 @@
"scope": "Portée", "scope": "Portée",
"sender_acl": "Permettre denvoyer comme", "sender_acl": "Permettre denvoyer comme",
"sender_acl_disabled": "<span class=\"badge fs-6 bg-danger\">Le contrôle de lexpéditeur est désactivé</span>", "sender_acl_disabled": "<span class=\"badge fs-6 bg-danger\">Le contrôle de lexpéditeur est désactivé</span>",
"sender_acl_info": "Si lutilisateur de la boîte A est autorisé à envoyer en tant quutilisateur de la boîte B, ladresse de lexpéditeur nest pas automatiquement affichée comme sélectionnable du champ \"from\" dans SOGo.<br>\r\n Lutilisateur B de la boîte doit créer une délégation dans Sogo pour permettre à lutilisateur A de la boîte de sélectionner son adresse comme expéditeur. Pour déléguer une boîte dans Sogo, utilisez le menu (trois points) à droite du nom de votre boîte dans le coin supérieur gauche dans la vue de courrier. Ce comportement ne sapplique pas aux adresses alias.", "sender_acl_info": "Si lutilisateur de la boîte de réception A est autorisé à envoyer en tant quutilisateur de la boîte de réception B, ladresse de lexpéditeur nest pas automatiquement affichée comme sélectionnable du champ \"de\" dans SOGo.<br>\n Lutilisateur B de la boîte de réception doit créer une délégation dans Sogo pour permettre à lutilisateur A de la boîte de réception de sélectionner son adresse comme expéditeur. Pour déléguer une boîte de réception dans Sogo, utilisez le menu (trois points) à droite du nom de votre boîte dans le coin supérieur gauche dans la vue de courrier. Ce comportement ne sapplique pas aux adresses alias.",
"sieve_desc": "Description courte", "sieve_desc": "Description courte",
"sieve_type": "Type de filtre", "sieve_type": "Type de filtre",
"skipcrossduplicates": "Ignorer les messages en double dans les dossiers (premier arrivé, premier servi)", "skipcrossduplicates": "Ignorer les messages en double dans les dossiers (premier arrivé, premier servi)",
"sogo_visible": "Alias visible dans SOGo", "sogo_visible": "Alias visible dans SOGo",
"sogo_visible_info": "Cette option affecte uniquement les objets qui peuvent être affichés dans SOGo (adresses alias partagées ou non partagées pointant vers au moins une boîte mail locale). Si caché, un alias napparaîtra pas comme expéditeur sélectionnable dans SOGo.", "sogo_visible_info": "Cette option affecte uniquement les objets qui peuvent être affichés dans SOGo (adresses alias partagées ou non partagées pointant vers au moins une boîte de réception locale). Si caché, un alias napparaîtra pas comme expéditeur sélectionnable dans SOGo.",
"spam_alias": "Créer ou modifier des adresses alias limitées dans le temps", "spam_alias": "Créer ou modifier des adresses alias limitées dans le temps",
"spam_filter": "Filtre spam", "spam_filter": "Filtre spam",
"spam_policy": "Ajouter ou supprimer des éléments à la liste blanche/noire", "spam_policy": "Ajouter ou supprimer des éléments à la liste blanche/noire",
@@ -601,9 +637,35 @@
"title": "Éditer l'objet", "title": "Éditer l'objet",
"unchanged_if_empty": "Si non modifié, laisser en blanc", "unchanged_if_empty": "Si non modifié, laisser en blanc",
"username": "Nom d'utilisateur", "username": "Nom d'utilisateur",
"validate_save": "Valider et sauver", "validate_save": "Valider et enregistrer",
"lookup_mx": "La destination est une expression régulière qui doit correspondre avec le nom du MX (<code>.*\\.google\\.com</code> pour acheminer tout le courrier destiné à un MX se terminant par google.com via ce saut)", "lookup_mx": "La destination est une expression régulière qui doit correspondre avec le nom du MX (<code>.*\\.google\\.com</code> pour acheminer tout le courrier destiné à un MX se terminant par google.com via ce saut)",
"mailbox_relayhost_info": "S'applique uniquement à la boîte aux lettres et aux alias directs, remplace le relayhost du domaine." "mailbox_relayhost_info": "S'applique uniquement à la boîte de réception et aux alias directs, remplace le relayhost du domaine.",
"acl": "ACL (Permission)",
"footer_exclude": "Exclure du pied de page",
"custom_attributes": "Attributs personnalisés",
"domain_footer_info_vars": {
"from_addr": "{= from_addr =} - Partie de l'enveloppe relative à l'adresse de provenance",
"from_domain": "{= from_domain =} - Partie de l'enveloppe provenant du domaine",
"custom": "{= foo =} - Si la boîte de réception possède l'attribut personnalisé \"foo\" avec la valeur \"bar\", elle renvoie \"bar\"",
"auth_user": "{= auth_user =} - Nom d'utilisateur authentifié spécifié par un MTA",
"from_user": "{= from_user =} -La partie utilisateur de l'enveloppe, par exemple, pour \"moo@mailcow.tld\", renvoie \"moo\"",
"from_name": "{= from_name =} - À partir du nom de l'enveloppe, par exemple, pour \"Mailcow &lt;moo@mailcow.tld&gt ;\" on obtient \"Mailcow\""
},
"domain_footer_skip_replies": "Ignorer le pied de page des courriels de réponse",
"domain_footer": "Pied de page du domaine",
"domain_footer_html": "Pied de page HTML",
"domain_footer_info": "Les pieds de page du domaine sont ajoutés à tous les courriels sortants associés à une adresse au sein de ce domaine. <br> Les variables suivantes peuvent être utilisées pour le pied de page :",
"domain_footer_plain": "Pied de page",
"app_passwd_protocols": "Protocoles autorisés pour le mot de passe d'application",
"created_on": "Créé le",
"none_inherit": "Aucun / Héritage",
"quota_warning_bcc": "Avertissement sur les quotas BCC",
"quota_warning_bcc_info": "Les avertissements seront envoyés en copies séparées aux destinataires suivants. Le sujet sera précédé du nom d'utilisateur correspondant entre parenthèses, par exemple : <code>Avertissement sur les quotas (user@example.com)</code>.",
"sogo_access_info": "L'authentification unique à partir de l'interface de messagerie reste opérationnelle. Ce paramètre n'affecte pas l'accès à tous les autres services et ne supprime ni ne modifie le profil SOGo existant d'un utilisateur.",
"admin": "Modifier l'administrateur",
"pushover": "",
"pushover_sound": "",
"sogo_access": ""
}, },
"footer": { "footer": {
"cancel": "Annuler", "cancel": "Annuler",
@@ -614,20 +676,23 @@
"hibp_ok": "Aucune correspondance trouvée.", "hibp_ok": "Aucune correspondance trouvée.",
"loading": "Veuillez patienter…", "loading": "Veuillez patienter…",
"restart_container": "Redémarrer le conteneur", "restart_container": "Redémarrer le conteneur",
"restart_container_info": "<b>Important:</b> Un redémarrage en douceur peut prendre un certain temps, veuillez attendre quil soit terminé.", "restart_container_info": "<b>Important :</b> Un redémarrage en douceur peut prendre un certain temps, veuillez attendre quil soit terminé.",
"restart_now": "Redémarrer maintenant", "restart_now": "Redémarrer maintenant",
"restarting_container": "Redémarrage du conteneur, cela peut prendre un certain temps" "restarting_container": "Redémarrage du conteneur, cela peut prendre un certain temps",
"nothing_selected": "Rien n'est sélectionné",
"hibp_check": ""
}, },
"header": { "header": {
"administration": "Configuration & détails", "administration": "Configuration & détails",
"apps": "Applications", "apps": "Applications",
"debug": "Information Système", "debug": "Information Système",
"email": "E-Mail", "email": "Courriel",
"mailcow_config": "Configuration", "mailcow_config": "Configuration",
"quarantine": "Quarantaine", "quarantine": "Quarantaine",
"restart_netfilter": "Redémarrer Netfilter", "restart_netfilter": "Redémarrer Netfilter",
"restart_sogo": "Redémarrer SOGo", "restart_sogo": "Redémarrer SOGo",
"user_settings": "Paramètres utilisateur" "user_settings": "Paramètres utilisateur",
"mailcow_system": ""
}, },
"info": { "info": {
"awaiting_tfa_confirmation": "En attente de la confirmation de TFA", "awaiting_tfa_confirmation": "En attente de la confirmation de TFA",
@@ -638,7 +703,7 @@
"delayed": "La connexion a été retardée de %s secondes.", "delayed": "La connexion a été retardée de %s secondes.",
"fido2_webauthn": "FIDO2/WebAuthn Login", "fido2_webauthn": "FIDO2/WebAuthn Login",
"login": "Connexion", "login": "Connexion",
"mobileconfig_info": "Veuillez vous connecter en tant quutilisateur de la boîte pour télécharger le profil de connexion Apple demandé.", "mobileconfig_info": "Veuillez vous connecter en tant quutilisateur de la boîte de réception pour télécharger le profil de connexion Apple demandé.",
"other_logins": "Clé d'authentification", "other_logins": "Clé d'authentification",
"password": "Mot de passe", "password": "Mot de passe",
"username": "Nom d'utilisateur" "username": "Nom d'utilisateur"
@@ -646,7 +711,7 @@
"mailbox": { "mailbox": {
"action": "Action", "action": "Action",
"activate": "Activer", "activate": "Activer",
"active": "Active", "active": "Actif",
"add": "Ajouter", "add": "Ajouter",
"add_alias": "Ajouter un alias", "add_alias": "Ajouter un alias",
"add_bcc_entry": "Ajouter une carte BCC", "add_bcc_entry": "Ajouter une carte BCC",
@@ -654,19 +719,19 @@
"add_domain_alias": "Ajouter un alias de domaine", "add_domain_alias": "Ajouter un alias de domaine",
"add_domain_record_first": "Veuillez dabord ajouter un domaine", "add_domain_record_first": "Veuillez dabord ajouter un domaine",
"add_filter": "Ajouter un filtre", "add_filter": "Ajouter un filtre",
"add_mailbox": "Ajouter une boîte", "add_mailbox": "Ajouter une boîte de réception",
"add_recipient_map_entry": "Ajouter la carte du destinataire", "add_recipient_map_entry": "Ajouter la carte du destinataire",
"add_resource": "Ajouter une ressource", "add_resource": "Ajouter une ressource",
"add_tls_policy_map": "Ajouter la carte de la politique des TLS", "add_tls_policy_map": "Ajouter la carte de la politique des TLS",
"address_rewriting": "Réécriture de ladresse", "address_rewriting": "Réécriture de ladresse",
"alias": "Alias", "alias": "Alias",
"alias_domain_alias_hint": "Les alias <b>ne sont pas</b> appliqués automatiquement sur les alias de domaine. Un alias d'adresse <code>my-alias@domain</code> <b>ne couvre pas</b> l'adresse <code>my-alias@alias-domain</code> (où \"alias-domain\" est un alias imaginaire pour \"domain\").<br>Veuillez utiliser un filtre à tamis pour rediriger le courrier vers une boîte externe (voir l'onglet \"Filtres\" ou utilisez SOGo -> Forwarder).", "alias_domain_alias_hint": "Les alias <b>ne sont pas</b> appliqués automatiquement sur les alias de domaine. Un alias d'adresse <code>my-alias@domain</code> <b>ne couvre pas</b> l'adresse <code>my-alias@alias-domain</code> (où \"alias-domain\" est un alias imaginaire pour \"domain\").<br>Veuillez utiliser un filtre à tamis pour rediriger le courrier vers une boîte de réception externe (voir l'onglet « Filtres » ou utilisez SOGo → Transférer).",
"alias_domain_backupmx": "Alias de domaine inactif pour le domaine relais", "alias_domain_backupmx": "Alias de domaine inactif pour le domaine relais",
"aliases": "Aliases", "aliases": "Aliases",
"allow_from_smtp": "Restreindre l'utilisation de <b>SMTP</b> à ces adresses IP", "allow_from_smtp": "Restreindre l'utilisation de <b>SMTP</b> à ces adresses IP",
"allow_from_smtp_info": "Laissez vide pour autoriser tous les expéditeurs.<br>Adresses IPv4/IPv6 et réseaux.", "allow_from_smtp_info": "Laissez vide pour autoriser tous les expéditeurs.<br>Adresses IPv4/IPv6 et réseaux.",
"allowed_protocols": "Protocoles autorisés", "allowed_protocols": "Protocoles autorisés",
"backup_mx": "Sauvegarde MX", "backup_mx": "Domaine de relais",
"bcc": "BCC", "bcc": "BCC",
"bcc_destination": "Destination BCC", "bcc_destination": "Destination BCC",
"bcc_destinations": "Destinations BCC", "bcc_destinations": "Destinations BCC",
@@ -682,9 +747,9 @@
"bcc_type": "Type de BCC", "bcc_type": "Type de BCC",
"booking_null": "Toujours montrer comme libre", "booking_null": "Toujours montrer comme libre",
"booking_0_short": "Toujours libre", "booking_0_short": "Toujours libre",
"booking_custom": "Limite rigide à un nombre de réservations personnalisé", "booking_custom": "Limitation stricte à un nombre personnalisé de réservations",
"booking_custom_short": "Limite rigide", "booking_custom_short": "Limite stricte",
"booking_ltnull": "Illimité, mais afficher aussi occupé lorsque réservé", "booking_ltnull": "Illimité, mais indiqué comme occupé lors de la réservation",
"booking_lt0_short": "Limite souple", "booking_lt0_short": "Limite souple",
"daily": "Quotidiennement", "daily": "Quotidiennement",
"deactivate": "Désactiver", "deactivate": "Désactiver",
@@ -700,32 +765,32 @@
"domain_quota_total": "Quota total du domaine", "domain_quota_total": "Quota total du domaine",
"domains": "Domaines", "domains": "Domaines",
"edit": "Éditer", "edit": "Éditer",
"empty": "Pas de résulats", "empty": "Pas de résultats",
"enable_x": "Activer", "enable_x": "Activer",
"excludes": "Exclut", "excludes": "Exclus",
"filter_table": "Table de filtre", "filter_table": "Table de filtrage",
"filters": "Filtres", "filters": "Filtres",
"fname": "Nom complet", "fname": "Nom complet",
"force_pw_update": "Forcer la mise à jour du mot de passe à la prochaine ouverture de session", "force_pw_update": "Forcer la mise à jour du mot de passe à la prochaine ouverture de session",
"gal": "Carnet d'Adresses Global (GAL)", "gal": "Carnet d'Adresses Global (GAL)",
"hourly": "Horaire", "hourly": "Toutes les heures",
"in_use": "Utilisé (%)", "in_use": "Utilisé (%)",
"inactive": "Inactif", "inactive": "Inactif",
"insert_preset": "Insérer un exemple de préréglage \"%s\"", "insert_preset": "Insérer un exemple de préréglage \"%s\"",
"kind": "Type", "kind": "Type",
"last_mail_login": "Dernière connexion mail", "last_mail_login": "Dernière connexion mail",
"last_modified": "Dernière modification", "last_modified": "Dernière modification",
"last_run": "Dernière éxécution", "last_run": "Dernière exécution",
"last_run_reset": "Calendrier suivant", "last_run_reset": "Calendrier suivant",
"mailbox": "Mailbox", "mailbox": "Boîte de réception",
"mailbox_defquota": "Taille de boîte par défaut", "mailbox_defquota": "Taille de boîte de réception par défaut",
"mailbox_quota": "Taille max. dune boîte", "mailbox_quota": "Taille max. dune boîte de réception",
"mailboxes": "Boîtes mail", "mailboxes": "Boîtes de réception",
"mailbox_defaults": "Paramètres par défaut", "mailbox_defaults": "Paramètres par défaut",
"mailbox_defaults_info": "Définir les paramètres par défaut pour les nouvelles boîtes aux lettres.", "mailbox_defaults_info": "Définir les paramètres par défaut pour les nouvelles boîtes de réception.",
"max_aliases": "Nombre maximal d'alias", "max_aliases": "Nombre maximal d'alias",
"max_mailboxes": "Nombre maximal de boîtes", "max_mailboxes": "Nombre maximal de boîte de réception",
"max_quota": "Quota max. par boîte mail", "max_quota": "Quota max. par boîte de réception",
"mins_interval": "Intervalle (min)", "mins_interval": "Intervalle (min)",
"msg_num": "Message #", "msg_num": "Message #",
"multiple_bookings": "Réservations multiples", "multiple_bookings": "Réservations multiples",
@@ -736,18 +801,18 @@
"owner": "Propriétaire", "owner": "Propriétaire",
"private_comment": "Commentaire privé", "private_comment": "Commentaire privé",
"public_comment": "Commentaire public", "public_comment": "Commentaire public",
"q_add_header": "Courriers indésirables", "q_add_header": "lorsqu'il est déplacé dans le dossier Indésirables",
"q_all": " quand déplacé dans le dossier spam ou rejeté", "q_all": " quand déplacé dans le dossier indésirables ou rejeté",
"q_reject": "Rejecté", "q_reject": "en cas de refus",
"quarantine_notification": "Avis de quarantaine", "quarantine_notification": "Avis de quarantaine",
"quarantine_category": "Catégorie de la notification de quarantaine", "quarantine_category": "Catégorie de la notification de quarantaine",
"quick_actions": "Actions", "quick_actions": "Actions",
"recipient_map": "Carte du destinataire", "recipient_map": "Carte du destinataire",
"recipient_map_info": "Les cartes des destinataires sont utilisées pour remplacer ladresse de destination dun message avant sa livraison.", "recipient_map_info": "Les cartes des destinataires sont utilisées pour remplacer ladresse de destination dun message avant sa livraison.",
"recipient_map_new": "Nouveau destinataire", "recipient_map_new": "Nouveau destinataire",
"recipient_map_new_info": "La destination de la carte du destinataire doit être une adresse électronique valide.", "recipient_map_new_info": "La destination de la carte du destinataire doit être une adresse de courriel valide.",
"recipient_map_old": "Destinataire original", "recipient_map_old": "Destinataire original",
"recipient_map_old_info": "Une carte de destination originale doit être une adresse e-mail valide ou un nom de domaine.", "recipient_map_old_info": "Une carte de destination originale doit être une adresse de courriel valide ou un nom de domaine.",
"recipient_maps": "Cartes des bénéficiaires", "recipient_maps": "Cartes des bénéficiaires",
"relay_all": "Relayer tous les destinataires", "relay_all": "Relayer tous les destinataires",
"remove": "Supprimer", "remove": "Supprimer",
@@ -755,16 +820,16 @@
"running": "En fonctionnement", "running": "En fonctionnement",
"set_postfilter": "Marquer comme postfiltre", "set_postfilter": "Marquer comme postfiltre",
"set_prefilter": "Marquer comme préfiltre", "set_prefilter": "Marquer comme préfiltre",
"sieve_info": "Vous pouvez stocker plusieurs filtres par utilisateur, mais un seul préfiltre et un seul postfiltre peuvent être actifs en même temps.<br>\r\nChaque filtre sera traité dans lordre décrit. Ni un script \"rejeter\" ni un \"garder\" narrêtera le traitement des autres scripts. Les modifications apportées aux scripts de tamis globaux déclencheront un redémarrage de Dovecot.<br><br>Préfiltre de tamis global → Préfiltre → Scripts utilisateur → Postfiltre → Postfiltre du tamis global", "sieve_info": "Vous pouvez stocker plusieurs filtres par utilisateur, mais un seul préfiltre et un seul postfiltre peuvent être actifs simultanément.<br>\nChaque filtre sera traité dans lordre décrit. Ni un script « rejeter » ni un « garder » narrêtera le traitement des autres scripts. Les modifications apportées aux scripts de tamis globaux déclencheront un redémarrage de Dovecot.<br><br>Préfiltre de tamis global → Préfiltre → Scripts utilisateur → Postfiltre → Postfiltre du tamis global",
"sieve_preset_1": "Jeter le courrier avec les types de fichiers dangereux probables", "sieve_preset_1": "Jeter le courrier avec les types de fichiers dangereux probables",
"sieve_preset_2": "Toujours marquer le-mail dun expéditeur spécifique comme vu", "sieve_preset_2": "Toujours marquer l'adresse de courriel dun expéditeur spécifique comme vu",
"sieve_preset_3": "Jeter en silence, arrêter tout traitement supplémentaire du tamis", "sieve_preset_3": "Jeter en silence, arrêter tout traitement supplémentaire par filtre sieve",
"sieve_preset_4": "Fichier dans INBOX, éviter le traitement ultérieur par filtres à tamis", "sieve_preset_4": "Fichier dans INBOX, éviter le traitement ultérieur par filtres sieve",
"sieve_preset_5": "Répondeur auto (vacances)", "sieve_preset_5": "Répondeur auto (vacances)",
"sieve_preset_6": "Rejeter le courrier avec réponse", "sieve_preset_6": "Rejeter le courrier avec réponse",
"sieve_preset_7": "Rediriger et garder/déposer", "sieve_preset_7": "Rediriger et garder/déposer",
"sieve_preset_8": "Supprimer le message envoyé à une adresse alias dont fait partie lexpéditeur", "sieve_preset_8": "Rediriger les courriels d'un expéditeur spécifique, les marquer comme lus et les classer dans des sous-dossiers.",
"sieve_preset_header": "Voir les exemples de préréglages ci-dessous. Pour plus de détails voir <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a>.", "sieve_preset_header": "Voir les exemples de préréglages ci-dessous. Pour plus de détails, voir <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipédia</a>.",
"sogo_visible": "Alias visible dans SOGo", "sogo_visible": "Alias visible dans SOGo",
"sogo_visible_n": "Masquer alias dans SOGo", "sogo_visible_n": "Masquer alias dans SOGo",
"sogo_visible_y": "Afficher alias dans SOGo", "sogo_visible_y": "Afficher alias dans SOGo",
@@ -785,19 +850,44 @@
"tls_map_policy": "Politique", "tls_map_policy": "Politique",
"tls_policy_maps": "Cartes des politiques des TLS", "tls_policy_maps": "Cartes des politiques des TLS",
"tls_policy_maps_info": "Cette carte de politique remplace les règles de transport TLS sortantes indépendamment des paramètres de politique TLS des utilisateurs.<br>\r\n Veuillez vérifier <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">la doc \"smtp_tls_policy_maps\" </a> pour plus d'informations.", "tls_policy_maps_info": "Cette carte de politique remplace les règles de transport TLS sortantes indépendamment des paramètres de politique TLS des utilisateurs.<br>\r\n Veuillez vérifier <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">la doc \"smtp_tls_policy_maps\" </a> pour plus d'informations.",
"tls_policy_maps_enforced_tls": "Ces politiques remplaceront également le comportement des utilisateurs de boîtes qui appliquent les connexions TLS sortantes. Si aucune politique nexiste ci-dessous, ces utilisateurs appliqueront les valeurs par défaut spécifiées comme <code>smtp_tls_mandatory_protocols</code> et <code>smtp_tls_mandatory_ciphers</code>.", "tls_policy_maps_enforced_tls": "Ces politiques remplaceront également le comportement des utilisateurs de boîtes de réception qui appliquent les connexions TLS sortantes. Si aucune politique nexiste ci-dessous, ces utilisateurs appliqueront les valeurs par défaut spécifiées comme <code>smtp_tls_mandatory_protocols</code> et <code>smtp_tls_mandatory_ciphers</code>.",
"tls_policy_maps_long": "Contournement de la carte de politique TLS sortante", "tls_policy_maps_long": "Contournement de la carte de politique TLS sortante",
"toggle_all": "Tout basculer", "toggle_all": "Tout basculer",
"username": "Nom d'utilisateur", "username": "Nom d'utilisateur",
"waiting": "En attente", "waiting": "En attente",
"weekly": "Hebdomadaire", "weekly": "Hebdomadaire",
"yes": "&#10003;" "yes": "&#10003;",
"add_alias_expand": "Étendre l'alias aux alias de domaine",
"catch_all": "Catch-All",
"created_on": "Créé le",
"goto_ham": "Apprendre comme <b>ham</b>",
"goto_spam": "Apprendre comme <b>pourriel</b>",
"last_pw_change": "Dernier changement de mot de passe",
"mailbox_templates": "Modèle de boîte de réception",
"relay_unknown": "Relayer les boîtes de réception inconnues",
"all_domains": "Tous les domaines",
"syncjob_EXIT_OVERQUOTA": "Quota dépassé de la boîte de réception cible",
"syncjob_check_log": "",
"add_template": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"templates": "",
"recipient": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"template": "",
"domain_templates": "",
"open_logs": "",
"sender": ""
}, },
"oauth2": { "oauth2": {
"access_denied": "Veuillez vous connecter en tant que propriétaire de la boîte pour accorder laccès via Oauth2.", "access_denied": "Veuillez vous connecter en tant que propriétaire de la boîte de réception pour accorder laccès via Oauth2.",
"authorize_app": "Autoriser l'application", "authorize_app": "Autoriser l'application",
"deny": "Refuser", "deny": "Refuser",
"permit": "Autorise l'application", "permit": "Autoriser l'application",
"profile": "Profil", "profile": "Profil",
"profile_desc": "Afficher les informations personnelles : nom dutilisateur, nom complet, créé, modifié, actif", "profile_desc": "Afficher les informations personnelles : nom dutilisateur, nom complet, créé, modifié, actif",
"scope_ask_permission": "Une application demande les permissions suivantes" "scope_ask_permission": "Une application demande les permissions suivantes"
@@ -810,8 +900,8 @@
"confirm_delete": "Confirmer la suppression de cet élément.", "confirm_delete": "Confirmer la suppression de cet élément.",
"danger": "Danger", "danger": "Danger",
"deliver_inbox": "Envoyer dans la boîte de reception", "deliver_inbox": "Envoyer dans la boîte de reception",
"disabled_by_config": "La configuration actuelle du système désactive la fonctionnalité de quarantaine. Veuillez définir \"retentions par boîte\" et une \"taille maximum\" pour les éléments en quarantaine.", "disabled_by_config": "La configuration actuelle du système désactive la fonctionnalité de quarantaine. Veuillez définir « retentions par boîte » et une « taille maximale » pour les éléments en quarantaine.",
"settings_info": "Quantité maximum d'éléments à mettre en quarantaine : %s<br>Taille maximale des e-mails : %s MiB", "settings_info": "Quantité maximale d'éléments à mettre en quarantaine : %s<br>Taille maximale des courriels : %s MiB",
"download_eml": "Télécharger (.eml)", "download_eml": "Télécharger (.eml)",
"empty": "Pas de résultat", "empty": "Pas de résultat",
"high_danger": "Haut", "high_danger": "Haut",
@@ -824,7 +914,7 @@
"notified": "Notifié", "notified": "Notifié",
"qhandler_success": "Demande envoyée avec succès au système. Vous pouvez maintenant fermer la fenêtre.", "qhandler_success": "Demande envoyée avec succès au système. Vous pouvez maintenant fermer la fenêtre.",
"qid": "Rspamd QID", "qid": "Rspamd QID",
"qinfo": "Le système de quarantaine enregistrera le courrier rejeté dans la base de données (l'expéditeur n'aura <em> pas </em> l'impression d'un courrier remis) ainsi que le courrier, qui est remis sous forme de copie dans le dossier indésirable d'une boîte aux lettres.\r\n <br>\"Apprendre comme spam et supprimer\" apprendra un message comme spam via le théorème Bayesianet calculera également des hachages flous pour refuser des messages similaires à l'avenir.\r\n <br>Veuillez noter que l'apprentissage de plusieurs messages peut prendre du temps, selon votre système. <br> Les éléments figurant sur la liste noire sont exclus de la quarantaine.", "qinfo": "Le système de quarantaine enregistrera le courrier rejeté dans la base de données (l'expéditeur n'aura <em> pas </em> l'impression d'un courrier remis) ainsi que le courrier, remis sous forme de copie dans le dossier indésirable d'une boîte de réception.\n <br>« Apprendre comme spam et supprimer » apprendra un message comme spam via le théorème Bayésien calculera également des hachages flous pour refuser des messages similaires à l'avenir.\n <br>Veuillez noter que l'apprentissage de plusieurs messages peut prendre du temps, selon votre système. <br> Les éléments figurant sur la liste noire sont exclus de la quarantaine.",
"qitem": "Élément de quarantaine", "qitem": "Élément de quarantaine",
"quarantine": "Quarantaine", "quarantine": "Quarantaine",
"quick_actions": "Actions", "quick_actions": "Actions",
@@ -856,26 +946,39 @@
"toggle_all": "Tout basculer" "toggle_all": "Tout basculer"
}, },
"queue": { "queue": {
"queue_manager": "Gestion de la file d'attente" "queue_manager": "Gestion de la file d'attente",
"hold_mail": "Garder",
"legend": "Fonctions d'action de la file d'attente du courrier :",
"info": "La file d'attente contient tous les courriels en attente de livraison. Si un courriel reste longtemps dans la file d'attente, il est automatiquement supprimé par le système.<br>Le message d'erreur du courriel concerné indique pourquoi le courriel n'a pas pu être distribué.",
"deliver_mail_legend": "Tentatives de réexpédition des courriers sélectionnés.",
"hold_mail_legend": "Met en attente les courriers sélectionnés. (Empêche les tentatives de distribution ultérieures)",
"unban": "file d'attente d'unban",
"unhold_mail": "Libérer",
"unhold_mail_legend": "Libère les courriers sélectionnés pour la distribution. (Nécessite une mise en attente préalable)",
"deliver_mail": "",
"delete": "",
"flush": "",
"show_message": "",
"ays": ""
}, },
"start": { "start": {
"help": "Afficher/masquer le panneau daide", "help": "Afficher/masquer le panneau daide",
"imap_smtp_server_auth_info": "Veuillez utiliser votre adresse e-mail complète et le mécanisme dauthentification PLAIN.<br>\r\nVos données de connexion seront cryptées par le cryptage obligatoire côté serveur.", "imap_smtp_server_auth_info": "Veuillez utiliser votre adresse courriel complète et le mécanisme dauthentification PLAIN.<br>\nVos données de connexion seront cryptées par le cryptage obligatoire côté serveur.",
"mailcow_apps_detail": "Utiliser une application mailcow pour accéder à vos messages, calendrier, contacts et plus.", "mailcow_apps_detail": "Utiliser une application mailcow pour accéder à vos messages, vos calendriers, vos contacts et plus.",
"mailcow_panel_detail": "<b>Les administrateurs de domaines</b> peuvent créer, modifier or supprimer des boîtes et alias, changer de domaines et lire de plus amples renseignements sur les domaines qui leurs sont attribués.<br>\r\n<b>Les utilisateurs de boîtes</b> sont en mesure de créer des alias limités dans le temps (alias spam), de modifier leurs mots de passe et les paramètres du filtre anti-spam." "mailcow_panel_detail": "<b>Les administrateurs de domaines</b> peuvent créer, modifier, ou supprimer des boîtes de réception et alias, changer de domaines et lire de plus amples renseignements sur les domaines qui leur sont attribués.<br>\n<b>Les utilisateurs de boîtes de réception</b> sont en mesure de créer des alias limités dans le temps (alias spam), de modifier leurs mots de passe et les paramètres du filtre anti-spam."
}, },
"success": { "success": {
"acl_saved": "ACL (Access Control List) pour l'objet %s sauvé", "acl_saved": "ACL (Access Control List) pour l'objet %s enregistré",
"admin_added": "Administrateur %s a été ajoutées", "admin_added": "Administrateur %s a été ajouté",
"admin_api_modified": "Les modifications apportées à lAPI ont été enregistrées", "admin_api_modified": "Les modifications apportées à lAPI ont été enregistrées",
"admin_modified": "Les modifications apportées à ladministrateur ont été enregistrées", "admin_modified": "Les modifications apportées à ladministrateur ont été enregistrées",
"admin_removed": "Administrateur %s a été effacé", "admin_removed": "Administrateur %s a été effacé",
"alias_added": "L'adresse alias %s (%d) a été ajoutée", "alias_added": "L'adresse alias %s (%d) a été ajoutée",
"alias_domain_removed": "L'alias de domaine %s a été effacé", "alias_domain_removed": "L'alias de domaine %s a été effacé",
"alias_modified": "Le changement de l'adresse alias %s a été sauvegardée", "alias_modified": "Le changement de l'adresse alias %s a été enregistré",
"alias_removed": "L'alias %s a été effacé", "alias_removed": "L'alias %s a été effacé",
"aliasd_added": "Alias de domaine %s ajouté", "aliasd_added": "Alias de domaine %s ajouté",
"aliasd_modified": "Les changements de l'alias de domaine %s ont été sauvegardés", "aliasd_modified": "Les changements de l'alias de domaine %s ont été enregistrés",
"app_links": "Modifications enregistrées dans les liens dapplication", "app_links": "Modifications enregistrées dans les liens dapplication",
"app_passwd_added": "Ajout dun nouveau mot de passe dapplication", "app_passwd_added": "Ajout dun nouveau mot de passe dapplication",
"app_passwd_removed": "Suppression de lidentifiant du mot de passe de lapplication %s", "app_passwd_removed": "Suppression de lidentifiant du mot de passe de lapplication %s",
@@ -887,14 +990,14 @@
"delete_filters": "Filtres supprimés : %s", "delete_filters": "Filtres supprimés : %s",
"deleted_syncjob": "ID du travail de synchronisation supprimé : %s", "deleted_syncjob": "ID du travail de synchronisation supprimé : %s",
"deleted_syncjobs": "Travail de synchronisation supprimé : %s", "deleted_syncjobs": "Travail de synchronisation supprimé : %s",
"dkim_added": "La clé DKIM %s a été sauvegardée", "dkim_added": "La clé DKIM %s a été enregistrée",
"dkim_duplicated": "La clé DKIM pour e domaine %s a été copiée vers %s", "dkim_duplicated": "La clé DKIM pour le domaine %s a été copiée vers %s",
"dkim_removed": "La clé DKIM %s a été supprimée", "dkim_removed": "La clé DKIM %s a été supprimée",
"domain_added": "Domaine ajouté %s", "domain_added": "Domaine ajouté %s",
"domain_admin_added": "L'administrateur de domaine %s a été ajouté", "domain_admin_added": "L'administrateur de domaine %s a été ajouté",
"domain_admin_modified": "Les modifications de l'administrateur de domaine %s ont été sauvées", "domain_admin_modified": "Les modifications de l'administrateur de domaine %s ont été enregistrées",
"domain_admin_removed": "L'administrateur de domaine %s a été supprimé", "domain_admin_removed": "L'administrateur de domaine %s a été supprimé",
"domain_modified": "Les modification du domaine %s ont été sauvées", "domain_modified": "Les modifications du domaine %s ont été enregistrées",
"domain_removed": "Le domaine %s a été supprimé", "domain_removed": "Le domaine %s a été supprimé",
"dovecot_restart_success": "Dovecot a été relancé avec succès", "dovecot_restart_success": "Dovecot a été relancé avec succès",
"eas_reset": "Les périphériques Activesync pour lutilisateur %s ont été réinitialisés", "eas_reset": "Les périphériques Activesync pour lutilisateur %s ont été réinitialisés",
@@ -910,40 +1013,49 @@
"learned_ham": "ID %s acquis avec succès comme ham", "learned_ham": "ID %s acquis avec succès comme ham",
"license_modified": "Les modifications apportées à la licence ont été enregistrées", "license_modified": "Les modifications apportées à la licence ont été enregistrées",
"logged_in_as": "Connecté en tant que %s", "logged_in_as": "Connecté en tant que %s",
"mailbox_added": "La boîte mail %s a été ajoutée", "mailbox_added": "La boîte de réception %s a été ajoutée",
"mailbox_modified": "Les modifications de la boîte %s ont été sauvées", "mailbox_modified": "Les modifications de la boîte de réception %s ont été enregistrées",
"mailbox_removed": "La boîte %s a été supprimée", "mailbox_removed": "La boîte de réception %s a été supprimée",
"nginx_reloaded": "Nginx a été rechargé", "nginx_reloaded": "Nginx a été rechargé",
"object_modified": "Les changements de %s ont été sauvés", "object_modified": "Les changements de %s ont été enregistrés",
"pushover_settings_edited": "Paramètres Pushover réglés avec succès, veuillez vérifier les informations didentification.", "pushover_settings_edited": "Paramètres Pushover réglés avec succès, veuillez vérifier les informations didentification.",
"qlearn_spam": "Le message ID %s a été appris comme spam et supprimé", "qlearn_spam": "Le message ID %s a été appris comme spam et supprimé",
"queue_command_success": "Queue de commande terminée avec succès", "queue_command_success": "Queue de commande terminée avec succès",
"recipient_map_entry_deleted": "La carte du destinataire ID %s a été effacée", "recipient_map_entry_deleted": "La carte du destinataire ID %s a été effacée",
"recipient_map_entry_saved": "L'entrée de la carte du bénéficiaire \"%s\" a été sauvée", "recipient_map_entry_saved": "L'entrée de la carte du bénéficiaire \"%s\" a été enregistrée",
"relayhost_added": "L'entrée de la carte %s a été ajoutée", "relayhost_added": "L'entrée de la carte %s a été ajoutée",
"relayhost_removed": "L'entrée de la carte %s a été supprimée", "relayhost_removed": "L'entrée de la carte %s a été supprimée",
"reset_main_logo": "Réinitialisation du logo par défaut", "reset_main_logo": "Réinitialisation du logo par défaut",
"resource_added": "La ressource %s a été ajoutée", "resource_added": "La ressource %s a été ajoutée",
"resource_modified": "Les modifications apportées à la boîte %s ont été enregistrées", "resource_modified": "Les modifications apportées à la boîte de réception %s ont été enregistrées",
"resource_removed": "La ressource %s a été supprimée", "resource_removed": "La ressource %s a été supprimée",
"rl_saved": "Limite de taux pour lobjet %s enregistrée", "rl_saved": "Limite d'envoi pour lobjet %s enregistrée",
"rspamd_ui_pw_set": "Mot de passe de l'interface Rspamd sauvegardé avec succès", "rspamd_ui_pw_set": "Mot de passe de l'interface Rspamd sauvegardé avec succès",
"saved_settings": "Paramètres enregistrés", "saved_settings": "Paramètres enregistrés",
"settings_map_added": "Ajout de lentrée de la carte des paramètres", "settings_map_added": "Ajout de lentrée de la carte des paramètres",
"settings_map_removed": "Suppression de la carte des paramètres ID %s", "settings_map_removed": "Suppression de la carte des paramètres ID %s",
"sogo_profile_reset": "Le profil SOGo profile pour l'utilisateur %s est remis à zéro", "sogo_profile_reset": "Le profil SOGo profile pour l'utilisateur %s est remis à zéro",
"tls_policy_map_entry_deleted": "La carte de stratégie TLS ID %s a été supprimé", "tls_policy_map_entry_deleted": "La carte de stratégie TLS ID %s a été supprimée",
"tls_policy_map_entry_saved": "La carte de stratégie TLS ID \"%s\" a été sauvée", "tls_policy_map_entry_saved": "La carte de stratégie TLS ID \"%s\" a été enregistrée",
"ui_texts": "Enregistrement des modifications apportées aux textes de linterface utilisateur", "ui_texts": "Enregistrement des modifications apportées aux textes de linterface utilisateur",
"upload_success": "Fichier téléchargé avec succès", "upload_success": "Fichier téléchargé avec succès",
"verified_totp_login": "Authentification TOTP vérifiée", "verified_totp_login": "Authentification TOTP vérifiée",
"verified_webauthn_login": "Authentification WebAuthn vérifiée", "verified_webauthn_login": "Authentification WebAuthn vérifiée",
"verified_fido2_login": "Authentification FIDO2 vérifiée", "verified_fido2_login": "Authentification FIDO2 vérifiée",
"verified_yotp_login": "Authentification Yubico OTP vérifiée" "verified_yotp_login": "Authentification Yubico OTP vérifiée",
"cors_headers_edited": "Les paramètres CORS ont été enregistrés",
"domain_footer_modified": "Les modifications apportées au pied de page du domaine %s ont été enregistrées",
"f2b_banlist_refreshed": "L'ID de la liste de ban a été actualisé avec succès.",
"template_added": "Modèles ajoutés %s",
"template_removed": "Le modèle ayant l'ID %s a été supprimé",
"domain_add_dkim_available": "A DKIM key did already exist",
"ip_check_opt_in_modified": "Le contrôle de l'IP a été enregistré avec succès",
"password_policy_saved": "",
"template_modified": ""
}, },
"tfa": { "tfa": {
"api_register": "%s utilise l'API Yubico Cloud. Veuillez obtenir une clé API pour votre clé <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">here</a>", "api_register": "%s utilise l'API Yubico Cloud. Veuillez obtenir une clé API pour votre clé <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">ici</a>",
"confirm": "confirmer", "confirm": "Confirmer",
"confirm_totp_token": "Veuillez confirmer vos modifications en saisissant le jeton généré", "confirm_totp_token": "Veuillez confirmer vos modifications en saisissant le jeton généré",
"delete_tfa": "Désactiver TFA", "delete_tfa": "Désactiver TFA",
"disable_tfa": "Désactiver TFA jusquà la prochaine ouverture de session réussie", "disable_tfa": "Désactiver TFA jusquà la prochaine ouverture de session réussie",
@@ -964,21 +1076,25 @@
"webauthn": "Authentification WebAuthn", "webauthn": "Authentification WebAuthn",
"waiting_usb_auth": "<i>En attente dun périphérique USB…</i><br><br>Sil vous plaît appuyez maintenant sur le bouton de votre périphérique USB WebAuthn.", "waiting_usb_auth": "<i>En attente dun périphérique USB…</i><br><br>Sil vous plaît appuyez maintenant sur le bouton de votre périphérique USB WebAuthn.",
"waiting_usb_register": "<i>En attente dun périphérique USB…</i><br><br>Veuillez entrer votre mot de passe ci-dessus et confirmer votre inscription WebAuthn en appuyant sur le bouton de votre périphérique USB WebAuthn.", "waiting_usb_register": "<i>En attente dun périphérique USB…</i><br><br>Veuillez entrer votre mot de passe ci-dessus et confirmer votre inscription WebAuthn en appuyant sur le bouton de votre périphérique USB WebAuthn.",
"yubi_otp": "Authentification OTP Yubico" "yubi_otp": "Authentification OTP Yubico",
"authenticators": "Authentificateurs",
"u2f_deprecated_important": "Veuillez enregistrer votre clé dans le panneau d'administration avec la nouvelle méthode WebAuthn.",
"u2f_deprecated": "Il semble que votre clé ait été enregistrée à l'aide de la méthode U2F obsolète. Nous allons désactiver l'authentification à deux facteurs pour vous et supprimer votre clé."
}, },
"fido2": { "fido2": {
"set_fn": "Définir un nom", "set_fn": "Définir un nom",
"fn": "Nom", "fn": "Nom",
"rename": "renommer", "rename": "Renommer",
"confirm": "Confirmer", "confirm": "Confirmer",
"register_status": "Etat de l'enregistrement", "register_status": "État de l'enregistrement",
"known_ids": "Identifiant(s) connu(s)", "known_ids": "Identifiant(s) connu(s)",
"none": "Désactivé", "none": "Désactivé",
"set_fido2": "Enregistrer un nouvel appareil FIDO2", "set_fido2": "Enregistrer un nouvel appareil FIDO2",
"start_fido2_validation": "Tester la validation FIDO2", "start_fido2_validation": "Tester la validation FIDO2",
"fido2_auth": "Se connecter avec FIDO2", "fido2_auth": "Se connecter avec FIDO2",
"fido2_success": "L'appareil est enregistré avec succès", "fido2_success": "L'appareil est enregistré avec succès",
"fido2_validation_failed": "La validation a échoué" "fido2_validation_failed": "La validation a échoué",
"set_fido2_touchid": "Enregistrer Touch ID sur Apple M1"
}, },
"user": { "user": {
"action": "Action", "action": "Action",
@@ -995,9 +1111,9 @@
"alias_valid_until": "Valide jusque", "alias_valid_until": "Valide jusque",
"aliases_also_send_as": "Aussi autorisé à envoyer en tant quutilisateur", "aliases_also_send_as": "Aussi autorisé à envoyer en tant quutilisateur",
"aliases_send_as_all": "Ne pas vérifier laccès de lexpéditeur pour les domaines suivants et leurs alias", "aliases_send_as_all": "Ne pas vérifier laccès de lexpéditeur pour les domaines suivants et leurs alias",
"app_hint": "Les mots de passe dapplication sont des mots de passe alternatifs pour votre connexion IMAP, SMTP, Caldav, Carddav et EAS. Le nom dutilisateur reste inchangé.<br>SOGo n'est pas disponible au travers de mots de passe.", "app_hint": "Les mots de passe dapplication sont des mots de passe alternatifs pour votre connexion IMAP, SMTP, Caldav, Carddav et EAS. Le nom dutilisateur reste inchangé.<br>SOGo n'est pas disponible au travers des mots de passe d'application.",
"app_name": "Nom d'application", "app_name": "Nom d'application",
"app_passwds": "Mots de passe de l'application", "app_passwds": "Mots de passe d'applications",
"apple_connection_profile": "Profil de connexion Apple", "apple_connection_profile": "Profil de connexion Apple",
"apple_connection_profile_complete": "Ce profil de connexion inclut les paramètres IMAP et SMTP ainsi que les chemins Caldav (calendriers) et Carddav (contacts) pour un appareil Apple.", "apple_connection_profile_complete": "Ce profil de connexion inclut les paramètres IMAP et SMTP ainsi que les chemins Caldav (calendriers) et Carddav (contacts) pour un appareil Apple.",
"apple_connection_profile_mailonly": "Ce profil de connexion inclut les paramètres de configuration IMAP et SMTP pour un périphérique Apple.", "apple_connection_profile_mailonly": "Ce profil de connexion inclut les paramètres de configuration IMAP et SMTP pour un périphérique Apple.",
@@ -1010,14 +1126,14 @@
"delete_ays": "Veuillez confirmer le processus de suppression.", "delete_ays": "Veuillez confirmer le processus de suppression.",
"direct_aliases": "Adresses alias directes", "direct_aliases": "Adresses alias directes",
"direct_aliases_desc": "Les adresses dalias directes sont affectées par le filtre anti-spam et les paramètres de politique TLS.", "direct_aliases_desc": "Les adresses dalias directes sont affectées par le filtre anti-spam et les paramètres de politique TLS.",
"eas_reset": "Réinitialiser le cache de lappareil Activesync", "eas_reset": "Réinitialiser le cache de lappareil ActiveSync",
"eas_reset_help": "Dans de nombreux cas, une réinitialisation du cache de lappareil aidera à récupérer un profil Activesync cassé.<br><b>Attention :</b> Tous les éléments seront à nouveau téléchargés !", "eas_reset_help": "Dans de nombreux cas, une réinitialisation du cache de lappareil aidera à récupérer un profil ActiveSync cassé.<br><b>Attention :</b> Tous les éléments seront de nouveau téléchargés !",
"eas_reset_now": "Réinitialiser maintenant", "eas_reset_now": "Réinitialiser maintenant",
"edit": "Éditer", "edit": "Éditer",
"email": "E-mail", "email": "Courriel",
"email_and_dav": "E-mail, calendriers et contacts", "email_and_dav": "Courriel, calendriers et contacts",
"encryption": "Cryptage", "encryption": "Chiffrement",
"excludes": "Exclut", "excludes": "Exclus",
"expire_in": "Expire dans", "expire_in": "Expire dans",
"force_pw_update": "Vous <b>devez</b> définir un nouveau mot de passe pour pouvoir accéder aux services liés aux logiciels de groupe.", "force_pw_update": "Vous <b>devez</b> définir un nouveau mot de passe pour pouvoir accéder aux services liés aux logiciels de groupe.",
"generate": "générer", "generate": "générer",
@@ -1030,7 +1146,7 @@
"last_mail_login": "Dernière connexion mail", "last_mail_login": "Dernière connexion mail",
"last_run": "Dernière exécution", "last_run": "Dernière exécution",
"loading": "Chargement…", "loading": "Chargement…",
"mailbox_details": "Détails de la boîte", "mailbox_details": "Détails",
"messages": "messages", "messages": "messages",
"never": "jamais", "never": "jamais",
"new_password": "Nouveau mot de passe", "new_password": "Nouveau mot de passe",
@@ -1044,27 +1160,27 @@
"pushover_evaluate_x_prio": "Acheminement du courrier hautement prioritaire [<code>X-Priority: 1</code>]", "pushover_evaluate_x_prio": "Acheminement du courrier hautement prioritaire [<code>X-Priority: 1</code>]",
"pushover_info": "Les paramètres de notification push sappliqueront à tout le courrier propre (non spam) livré à <b>%s</b> y compris les alias (partagés, non partagés, étiquetés).", "pushover_info": "Les paramètres de notification push sappliqueront à tout le courrier propre (non spam) livré à <b>%s</b> y compris les alias (partagés, non partagés, étiquetés).",
"pushover_only_x_prio": "Ne tenir compte que du courrier hautement prioritaire [<code>X-Priority: 1</code>]", "pushover_only_x_prio": "Ne tenir compte que du courrier hautement prioritaire [<code>X-Priority: 1</code>]",
"pushover_sender_array": "Tenez compte des adresses courriel suivantes de lexpéditeur : <small>(comma-separated)</small>", "pushover_sender_array": "Tenir compte des adresses de courriel suivantes de lexpéditeur : <small>(comma-separated)</small>",
"pushover_sender_regex": "Apparier les expéditeurs par le regex suivant", "pushover_sender_regex": "Apparier les expéditeurs par le regex suivant",
"pushover_text": "Texte de notification", "pushover_text": "Texte de notification",
"pushover_title": "Titre de la notification", "pushover_title": "Titre de la notification",
"pushover_vars": "Lorsquaucun filtre dexpéditeur nest défini, tous les messages seront considérés.<br>Les filtres Regex ainsi que les vérifications exactes de lexpéditeur peuvent être définis individuellement et seront considérés de façon séquentielle. Ils ne dépendent pas les uns des autres.<br>Variables utilisables pour le texte et le titre (veuillez prendre note des politiques de protection des données)", "pushover_vars": "Lorsque aucun filtre dexpéditeur nest défini, tous les messages seront considérés.<br>Les filtres Regex ainsi que les vérifications exactes de lexpéditeur peuvent être définis individuellement et seront considérés de façon séquentielle. Ils ne dépendent pas les uns des autres.<br>Variables utilisables pour le texte et le titre (veuillez prendre note des politiques de protection des données)",
"pushover_verify": "Vérifier les justificatifs", "pushover_verify": "Vérifier les identifiants",
"q_add_header": "Courrier indésirable", "q_add_header": "Courrier indésirable",
"q_all": "Toutes les catégories", "q_all": "Toutes les catégories",
"q_reject": "Rejeté", "q_reject": "Rejeté",
"quarantine_notification": "Avis de quarantaine", "quarantine_notification": "Avis de quarantaine",
"quarantine_category": "Catégorie de la notification de quarantaine", "quarantine_category": "Catégorie de la notification de quarantaine",
"quarantine_notification_info": "Une fois quun avis a été envoyé, les articles seront marqués comme \"notified\" et aucune autre notification ne sera envoyée pour ce point particulier.", "quarantine_notification_info": "Une fois quun avis a été envoyé, les articles seront marqués comme « notifiés » et aucune autre notification ne sera envoyée pour ce point particulier.",
"quarantine_category_info": "La catégorie de notification \"Rejeté\" inclut le courrier qui a été rejeté, tandis que \"Dossier indésirable\" informera un utilisateur des e-mails qui ont été placés dans le dossier indésirable.", "quarantine_category_info": "La catégorie de notification « Rejeté » inclut le courrier rejeté, tandis que « Dossier indésirable » informera un utilisateur des courriels placés dans le dossier indésirable.",
"remove": "Enlever", "remove": "Enlever",
"running": "En fonction", "running": "En fonctionnement",
"save": "Sauvegarder les changements", "save": "Enregistrer les changements",
"save_changes": "Sauvegarder les changements", "save_changes": "Enregistrer les changements",
"sender_acl_disabled": "<span class=\"badge fs-6 bg-danger\">Le contrôle de lexpéditeur est désactivé</span>", "sender_acl_disabled": "<span class=\"badge fs-6 bg-danger\">Le contrôle de lexpéditeur est désactivé</span>",
"shared_aliases": "Adresses alias partagées", "shared_aliases": "Adresses alias partagées",
"shared_aliases_desc": "Les alias partagés ne sont pas affectés par les paramètres spécifiques à lutilisateur tels que le filtre anti-spam ou la politique de chiffrement. Les filtres anti-spam correspondants ne peuvent être effectués que par un administrateur en tant que politique de domaine.", "shared_aliases_desc": "Les alias partagés ne sont pas affectés par les paramètres spécifiques à lutilisateur tels que le filtre anti-spam ou la politique de chiffrement. Les filtres anti-spam correspondants ne peuvent être effectués que par un administrateur en tant que politique de domaine.",
"show_sieve_filters": "Afficher le filtre de tamis actif de lutilisateur", "show_sieve_filters": "Afficher le filtre sieve actif de lutilisateur",
"sogo_profile_reset": "Remise à zéro du profil SOGo", "sogo_profile_reset": "Remise à zéro du profil SOGo",
"sogo_profile_reset_help": "Ceci détruira un profil Sogo des utilisateurs et <b>supprimera toutes les données de contact et de calendrier irrécupérables</b>.", "sogo_profile_reset_help": "Ceci détruira un profil Sogo des utilisateurs et <b>supprimera toutes les données de contact et de calendrier irrécupérables</b>.",
"sogo_profile_reset_now": "Remise à zéro du profil maintenant", "sogo_profile_reset_now": "Remise à zéro du profil maintenant",
@@ -1073,10 +1189,10 @@
"spamfilter": "Filtre de spam", "spamfilter": "Filtre de spam",
"spamfilter_behavior": "Note", "spamfilter_behavior": "Note",
"spamfilter_bl": "Liste noire (BlackList)", "spamfilter_bl": "Liste noire (BlackList)",
"spamfilter_bl_desc": "Les adresses de courriel sur la liste noire de <b>always (toujours)</b> peuvent être classées comme des pourriels et rejetées. Des caractères génériques peuvent être utilisés. Un filtre nest appliqué quaux alias directs (alias avec une seule boîte cible), à lexclusion des alias tous azimuts et dune boîte elle-même.", "spamfilter_bl_desc": "Les adresses de courriel sur la liste noire de <b>toujours</b> peuvent être classées comme des pourriels et rejetées. Des caractères génériques peuvent être utilisés. Un filtre nest appliqué quaux alias directs (alias avec une seule boîte de réception cible), à lexclusion des alias tous azimuts et dune boîte de réception elle-même.",
"spamfilter_default_score": "Valeurs par défaut", "spamfilter_default_score": "Valeurs par défaut",
"spamfilter_green": "Vert : ce message n'est pas un spam", "spamfilter_green": "Vert : ce message n'est pas un spam",
"spamfilter_hint": "La première valeur indique un \"faible score de spam\", la seconde représente un \"haut score de spam\".", "spamfilter_hint": "La première valeur indique un « faible score de spam », la seconde représente un « haut score de spam ».",
"spamfilter_red": "Rouge : Ce message est un spam et sera rejeté par le serveur", "spamfilter_red": "Rouge : Ce message est un spam et sera rejeté par le serveur",
"spamfilter_table_action": "Action", "spamfilter_table_action": "Action",
"spamfilter_table_add": "Ajouter un élément", "spamfilter_table_add": "Ajouter un élément",
@@ -1085,12 +1201,12 @@
"spamfilter_table_remove": "supprimer", "spamfilter_table_remove": "supprimer",
"spamfilter_table_rule": "Règle", "spamfilter_table_rule": "Règle",
"spamfilter_wl": "Liste blanche (WhiteList)", "spamfilter_wl": "Liste blanche (WhiteList)",
"spamfilter_wl_desc": "La liste blanche est programmé pour <b> ne jamais</b> classer comme spam les adresses e-mail qu'elle contient. Des caractères génériques peuvent être utilisés. Un filtre nest appliqué quaux alias directs (alias avec une seule boîte cible), à lexclusion des alias catch-all et dune boîte mail.", "spamfilter_wl_desc": "La liste blanche est programmée pour <b> ne jamais</b> classer comme spam les adresses de courriel qu'elle contient. Des caractères génériques peuvent être utilisés. Un filtre nest appliqué quaux alias directs (alias avec une seule boîte de réception cible), à lexclusion des alias catch-all et dune boîte de réception.",
"spamfilter_yellow": "Jaune : ce message est peut être un spam, il sera étiqueté comme spam et déplacé vers votre dossier Pourriel", "spamfilter_yellow": "Jaune : ce message est peut être un spam, il sera étiqueté comme spam et déplacé vers votre dossier Pourriel",
"status": "Statut", "status": "Statut",
"sync_jobs": "Jobs de synchronisation", "sync_jobs": "Jobs de synchronisation",
"tag_handling": "Régler la manipulation du courrier étiqueté", "tag_handling": "Régler la manipulation du courrier étiqueté",
"tag_help_example": "Exemple pour une adresse e-mail étiquetée : me<b>+Facebook</b>@example.org", "tag_help_example": "Exemple pour une adresse de courriel étiquetée : me<b>+Facebook</b>@example.org",
"tag_help_explain": "Dans un sous-dossier : un nouveau sous-dossier nommé selon l'étiquette sera créé sous INBOX (\"INBOX/Facebook\").<br>\nDans le sujet : le nom des balises sera ajouté au début du sujet de l'e-mail, exemple : \"[Facebook] My News\".", "tag_help_explain": "Dans un sous-dossier : un nouveau sous-dossier nommé selon l'étiquette sera créé sous INBOX (\"INBOX/Facebook\").<br>\nDans le sujet : le nom des balises sera ajouté au début du sujet de l'e-mail, exemple : \"[Facebook] My News\".",
"tag_in_none": "Ne rien faire", "tag_in_none": "Ne rien faire",
"tag_in_subfolder": "Dans un sous dossier", "tag_in_subfolder": "Dans un sous dossier",
@@ -1100,7 +1216,7 @@
"tls_enforce_in": "Appliquer le TLS entrant", "tls_enforce_in": "Appliquer le TLS entrant",
"tls_enforce_out": "Appliquer le TLS sortant", "tls_enforce_out": "Appliquer le TLS sortant",
"tls_policy": "Politique de chiffrement", "tls_policy": "Politique de chiffrement",
"tls_policy_warning": "<strong>Attention:</strong> Si vous décidez dappliquer le transfert de courrier chiffré, vous risquez de perdre des courriels.<br>Les messages qui ne satisfont pas à la politique seront renvoyés avec une erreur grave par le système de messagerie.<br>Cette option sapplique à votre adresse courriel principale (login name), toutes les adresses dérivées de domaines alias ainsi que les adresses alias <b>avec cette seule boîte</b> comme cible.", "tls_policy_warning": "<strong>Attention :</strong> Si vous décidez dappliquer le transfert de courrier chiffré, vous risquez de perdre des courriels.<br>Les messages qui ne satisfont pas à la politique seront renvoyés avec une erreur grave par le système de messagerie.<br>Cette option sapplique à votre adresse courriel principale (login name), toutes les adresses dérivées de domaines alias ainsi que les adresses alias <b>avec cette seule boîte de réception</b> comme cible.",
"user_settings": "Paramètres utilisateur", "user_settings": "Paramètres utilisateur",
"username": "Nom d'utilisateur", "username": "Nom d'utilisateur",
"verify": "Vérification", "verify": "Vérification",
@@ -1111,7 +1227,38 @@
"months": "mois", "months": "mois",
"year": "année", "year": "année",
"years": "années", "years": "années",
"with_app_password": "avec le mot de passe de l'application" "with_app_password": "avec le mot de passe de l'application",
"apple_connection_profile_with_app_password": "Un nouveau mot de passe est généré et ajouté au profil, de sorte qu'aucun mot de passe ne doit être saisi lors de la configuration de votre appareil. Ne partagez pas le fichier car il vous donne un accès complet à votre boîte de réception.",
"attribute": "Attribut",
"direct_protocol_access": "Cet utilisateur de la boîte aux lettres dispose d'un <b>accès externe direct</b> aux protocoles et applications suivants. Votre administrateur contrôle ce paramètre. Il est possible de créer des mots de passe d'application pour accorder l'accès à des protocoles et des applications individuels.<br>Le bouton « Connexion au webmail » permet une connexion unique à SOGo et est toujours disponible.",
"open_webmail_sso": "Connexion au webmail",
"recent_successful_connections": "Voir les connexions réussies",
"syncjob_EXIT_TLS_FAILURE": "Problème de connexion chiffrée",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "Problème d'authentification",
"syncjob_EXIT_OVERQUOTA": "La boîte de réception cible a dépassé le quota",
"login_history": "Historique des connexions",
"change_password_hint_app_passwords": "Votre compte a %d mots de passe d'application qui ne seront pas modifiés. Pour les gérer, allez dans l'onglet Mots de passe de l'application.",
"clear_recent_successful_connections": "Vider l'historique des connexions réussies",
"created_on": "Créé le",
"last_ui_login": "Dernière connexion sur l'interface",
"syncjob_check_log": "Vérifier le journal",
"syncjob_last_run_result": "Résultat du dernier lancement",
"syncjob_EX_OK": "Succès",
"syncjob_EXIT_CONNECTION_FAILURE": "Problème de connexion",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "Impossible de se connecter au serveur distant",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "Nom d'utilisateur ou mot de passe incorrect",
"value": "Valeur",
"allowed_protocols": "Protocoles autorisés",
"mailbox": "Boîte de réception",
"open_logs": "",
"empty": "",
"last_pw_change": "",
"mailbox_general": "",
"mailbox_settings": "",
"month": "",
"pushover_sound": "",
"from": "",
"fido2_webauthn": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "Impossible de supprimer lutilisateur connecté", "cannot_delete_self": "Impossible de supprimer lutilisateur connecté",
@@ -1120,9 +1267,43 @@
"fuzzy_learn_error": "Erreur dapprentissage du hachage flou: %s", "fuzzy_learn_error": "Erreur dapprentissage du hachage flou: %s",
"hash_not_found": "Hachage non trouvé ou déjà supprimé", "hash_not_found": "Hachage non trouvé ou déjà supprimé",
"ip_invalid": "IP non valide ignorée : %s", "ip_invalid": "IP non valide ignorée : %s",
"no_active_admin": "Impossible de désactiver le dernier administrateur active", "no_active_admin": "Impossible de désactiver le dernier administrateur actif",
"quota_exceeded_scope": "Dépassement du quota de domaine : Seules des boîtes illimitées peuvent être créées dans ce domaine.", "quota_exceeded_scope": "Dépassement du quota de domaine : Seules des boîtes de réception illimitées peuvent être créées dans ce domaine.",
"session_token": "Jeton de formulaire invalide : Jeton différent", "session_token": "Jeton de formulaire invalide : Jeton différent",
"session_ua": "Jeton de formulaire invalide : erreur de validation User-Agent" "session_ua": "Jeton de formulaire invalide : erreur de validation User-Agent",
"is_not_primary_alias": "Alias non primaire ignoré %s"
},
"datatables": {
"decimal": ".",
"expand_all": "Tout déplier",
"thousands": ",",
"paginate": {
"first": "Premier",
"last": "Dernier",
"next": "",
"previous": ""
},
"aria": {
"sortAscending": ": activer pour trier les colonnes en ordre croissant",
"sortDescending": ": activer pour trier les colonnes en ordre décroissant"
},
"infoEmpty": "Affichage de 0 à 0 de 0 entrées",
"infoFiltered": "(filtré à partir de _MAX_ entrées totales)",
"lengthMenu": "Afficher les entrées _MENU_",
"loadingRecords": "Chargement…",
"processing": "Veuillez patienter…",
"collapse_all": "Tout réduire",
"infoPostFix": "",
"emptyTable": "",
"info": "",
"search": "",
"zeroRecords": ""
},
"ratelimit": {
"disabled": "Désactivé",
"day": "",
"second": "",
"minute": "",
"hour": ""
} }
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -341,7 +341,17 @@
"rsettings_preset_4": "Disattivare Rspamd per un dominio", "rsettings_preset_4": "Disattivare Rspamd per un dominio",
"options": "Opzioni", "options": "Opzioni",
"cors_settings": "Impostazioni CORS", "cors_settings": "Impostazioni CORS",
"copy_to_clipboard": "Testo copiato negli appunti!" "copy_to_clipboard": "Testo copiato negli appunti!",
"logo_normal_label": "",
"logo_dark_label": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"allowed_methods": "",
"allowed_origins": "",
"ip_check": "",
"ip_check_disabled": "",
"ip_check_opt_in": "",
"queue_unban": ""
}, },
"danger": { "danger": {
"access_denied": "Accesso negato o form di login non corretto", "access_denied": "Accesso negato o form di login non corretto",
@@ -466,7 +476,13 @@
"template_exists": "Il template %s esiste già", "template_exists": "Il template %s esiste già",
"template_id_invalid": "Il template con ID %s non è valido", "template_id_invalid": "Il template con ID %s non è valido",
"img_dimensions_exceeded": "L'immagine supera la dimensione massima consentita", "img_dimensions_exceeded": "L'immagine supera la dimensione massima consentita",
"img_size_exceeded": "L'immagine supera la dimensione massima del file" "img_size_exceeded": "L'immagine supera la dimensione massima del file",
"webauthn_authenticator_failed": "",
"webauthn_username_failed": "",
"cors_invalid_method": "",
"cors_invalid_origin": "",
"webauthn_publickey_failed": "",
"extended_sender_acl_denied": ""
}, },
"debug": { "debug": {
"chart_this_server": "Grafico (questo server)", "chart_this_server": "Grafico (questo server)",
@@ -503,7 +519,11 @@
"memory": "Memoria", "memory": "Memoria",
"timezone": "Fuso orario", "timezone": "Fuso orario",
"no_update_available": "Il sistema è aggiornato all'ultima versione", "no_update_available": "Il sistema è aggiornato all'ultima versione",
"update_failed": "Impossibile verificare la presenza di un aggiornamento" "update_failed": "Impossibile verificare la presenza di un aggiornamento",
"architecture": "",
"show_ip": "",
"wip": "",
"error_show_ip": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Valore letto dal record A/AAAA. Questo è supportato finché il record punta alla risorsa corretta.", "cname_from_a": "Valore letto dal record A/AAAA. Questo è supportato finché il record punta alla risorsa corretta.",
@@ -632,7 +652,20 @@
"last_modified": "Ultima modifica", "last_modified": "Ultima modifica",
"pushover_sound": "Suono", "pushover_sound": "Suono",
"custom_attributes": "Attributi personalizzati", "custom_attributes": "Attributi personalizzati",
"domain_footer_skip_replies": "Ignora il piè di pagina nelle e-mail di risposta" "domain_footer_skip_replies": "Ignora il piè di pagina nelle e-mail di risposta",
"footer_exclude": "",
"domain_footer_info_vars": {
"custom": "",
"auth_user": "",
"from_user": "",
"from_name": "",
"from_addr": "",
"from_domain": ""
},
"domain_footer": "",
"domain_footer_html": "",
"domain_footer_plain": "",
"domain_footer_info": ""
}, },
"fido2": { "fido2": {
"confirm": "Conferma", "confirm": "Conferma",
@@ -939,7 +972,9 @@
"show_message": "Mostra messaggio", "show_message": "Mostra messaggio",
"unhold_mail": "Sblocca", "unhold_mail": "Sblocca",
"hold_mail_legend": "Blocca le mail selezionate. (Previene ulteriori tentativi di consegna)", "hold_mail_legend": "Blocca le mail selezionate. (Previene ulteriori tentativi di consegna)",
"legend": "Funzioni delle azioni della coda di posta:" "legend": "Funzioni delle azioni della coda di posta:",
"unban": "",
"unhold_mail_legend": ""
}, },
"start": { "start": {
"help": "Mostra/Nascondi pannello di aiuto", "help": "Mostra/Nascondi pannello di aiuto",
@@ -1028,7 +1063,10 @@
"template_added": "Aggiunto template %s", "template_added": "Aggiunto template %s",
"template_modified": "Le modifiche al template %s sono state salvate", "template_modified": "Le modifiche al template %s sono state salvate",
"template_removed": "Il template con ID %s è stato cancellato", "template_removed": "Il template con ID %s è stato cancellato",
"f2b_banlist_refreshed": "L'ID della lista blocchi è stato aggiornato con successo." "f2b_banlist_refreshed": "L'ID della lista blocchi è stato aggiornato con successo.",
"domain_footer_modified": "",
"ip_check_opt_in_modified": "",
"cors_headers_edited": ""
}, },
"tfa": { "tfa": {
"api_register": "%s usa le API Yubico Cloud. Richiedi una chiave API <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">qui</a>", "api_register": "%s usa le API Yubico Cloud. Richiedi una chiave API <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">qui</a>",
@@ -1264,6 +1302,8 @@
"aria": { "aria": {
"sortAscending": ": attivare l'ordinamento crescente delle colonne", "sortAscending": ": attivare l'ordinamento crescente delle colonne",
"sortDescending": ": attivare l'ordinamento decrescente delle colonne" "sortDescending": ": attivare l'ordinamento decrescente delle colonne"
} },
"decimal": "",
"infoPostFix": ""
} }
} }

View File

@@ -25,7 +25,10 @@
"syncjobs": "동기화 작업", "syncjobs": "동기화 작업",
"tls_policy": "TLS 정책", "tls_policy": "TLS 정책",
"unlimited_quota": "메일에 무제한 할당", "unlimited_quota": "메일에 무제한 할당",
"domain_desc": "도메인 설명 변경" "domain_desc": "도메인 설명 변경",
"domain_relayhost": "",
"mailbox_relayhost": "",
"quarantine_category": ""
}, },
"add": { "add": {
"activate_filter_warn": "활성화가 체크되어 있으면 모든 다른 필터들은 비활성화됩니다.", "activate_filter_warn": "활성화가 체크되어 있으면 모든 다른 필터들은 비활성화됩니다.",
@@ -101,7 +104,11 @@
"timeout2": "로컬 호스트 연결 시간 초과", "timeout2": "로컬 호스트 연결 시간 초과",
"username": "사용자명", "username": "사용자명",
"validate": "확인하기", "validate": "확인하기",
"validation_success": "성공적으로 확인됨" "validation_success": "성공적으로 확인됨",
"dry": "",
"tags": "",
"app_passwd_protocols": "",
"bcc_dest_format": ""
}, },
"admin": { "admin": {
"access": "접근", "access": "접근",
@@ -301,7 +308,50 @@
"username": "사용자 이름", "username": "사용자 이름",
"validate_license_now": "라이선스 서버와 GUID 확인", "validate_license_now": "라이선스 서버와 GUID 확인",
"verify": "확인", "verify": "확인",
"yes": "&#10003;" "yes": "&#10003;",
"is_mx_based": "",
"optional": "",
"oauth2_apps": "",
"logo_normal_label": "",
"logo_dark_label": "",
"f2b_manage_external": "",
"copy_to_clipboard": "",
"domain_admin": "",
"f2b_ban_time_increment": "",
"f2b_manage_external_info": "",
"f2b_max_ban_time": "",
"login_time": "",
"oauth2_add_client": "",
"allowed_methods": "",
"allowed_origins": "",
"cors_settings": "",
"dkim_overwrite_key": "",
"f2b_filter": "",
"f2b_regex_info": "",
"html": "",
"options": "",
"password_length": "",
"password_policy": "",
"ip_check": "",
"ip_check_disabled": "",
"ip_check_opt_in": "",
"queue_unban": "",
"service": "",
"transport_test_rcpt_info": "",
"password_policy_chars": "",
"password_policy_length": "",
"password_policy_lowerupper": "",
"password_policy_numbers": "",
"password_policy_special_chars": "",
"quarantine_max_score": "",
"relay_rcpt": "",
"rsettings_preset_4": "",
"success": "",
"admins": "",
"admins_ldap": "",
"api_read_only": "",
"api_read_write": "",
"convert_html_to_text": ""
}, },
"danger": { "danger": {
"access_denied": "접근이 거부되거나 잘못된 데이터 양식", "access_denied": "접근이 거부되거나 잘못된 데이터 양식",
@@ -415,7 +465,24 @@
"username_invalid": "%s는 사용지 이름으로 사용할 수 없습니다.", "username_invalid": "%s는 사용지 이름으로 사용할 수 없습니다.",
"validity_missing": "유효 기간을 지정해주세요.", "validity_missing": "유효 기간을 지정해주세요.",
"value_missing": "모든 값을 입력해주세요.", "value_missing": "모든 값을 입력해주세요.",
"yotp_verification_failed": "Yubico OTP 검증 실패: %s" "yotp_verification_failed": "Yubico OTP 검증 실패: %s",
"cors_invalid_method": "",
"cors_invalid_origin": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": "",
"webauthn_authenticator_failed": "",
"webauthn_publickey_failed": "",
"webauthn_username_failed": "",
"fido2_verification_failed": "",
"nginx_reload_failed": "",
"template_exists": "",
"template_id_invalid": "",
"template_name_invalid": "",
"demo_mode_enabled": "",
"dkim_domain_or_sel_exists": "",
"reset_f2b_regex": "",
"tfa_token_invalid": "",
"extended_sender_acl_denied": ""
}, },
"debug": { "debug": {
"chart_this_server": "Chart (this server)", "chart_this_server": "Chart (this server)",
@@ -437,7 +504,26 @@
"uptime": "Uptime", "uptime": "Uptime",
"started_on": "Started on", "started_on": "Started on",
"static_logs": "Static logs", "static_logs": "Static logs",
"system_containers": "System & Containers" "system_containers": "System & Containers",
"container_running": "",
"architecture": "",
"container_disabled": "",
"cores": "",
"current_time": "",
"error_show_ip": "",
"memory": "",
"online_users": "",
"service": "",
"show_ip": "",
"success": "",
"timezone": "",
"update_available": "",
"no_update_available": "",
"update_failed": "",
"username": "",
"wip": "",
"login_time": "",
"container_stopped": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Value derived from A/AAAA record. This is supported as long as the record points to the correct resource.", "cname_from_a": "Value derived from A/AAAA record. This is supported as long as the record points to the correct resource.",
@@ -447,7 +533,8 @@
"dns_records_name": "Name", "dns_records_name": "Name",
"dns_records_status": "Current State", "dns_records_status": "Current State",
"dns_records_type": "Type", "dns_records_type": "Type",
"optional": "This record is optional." "optional": "This record is optional.",
"dns_records_docs": ""
}, },
"edit": { "edit": {
"active": "Active", "active": "Active",
@@ -545,7 +632,40 @@
"title": "Edit object", "title": "Edit object",
"unchanged_if_empty": "If unchanged leave blank", "unchanged_if_empty": "If unchanged leave blank",
"username": "Username", "username": "Username",
"validate_save": "Validate and save" "validate_save": "Validate and save",
"lookup_mx": "",
"footer_exclude": "",
"domain_footer_skip_replies": "",
"custom_attributes": "",
"domain_footer_info_vars": {
"from_addr": "",
"auth_user": "",
"from_user": "",
"from_name": "",
"from_domain": "",
"custom": ""
},
"domain_footer": "",
"domain_footer_html": "",
"domain_footer_info": "",
"acl": "",
"admin": "",
"allow_from_smtp": "",
"allow_from_smtp_info": "",
"allowed_protocols": "",
"app_passwd_protocols": "",
"domain_footer_plain": "",
"created_on": "",
"sogo_access": "",
"sogo_access_info": "",
"spam_filter": "",
"mailbox_relayhost_info": "",
"none_inherit": "",
"pushover": "",
"pushover_sound": "",
"quota_warning_bcc": "",
"quota_warning_bcc_info": "",
"ratelimit": ""
}, },
"footer": { "footer": {
"cancel": "Cancel", "cancel": "Cancel",
@@ -558,7 +678,9 @@
"restart_container": "Restart container", "restart_container": "Restart container",
"restart_container_info": "<b>Important:</b> A graceful restart may take a while to complete, please wait for it to finish.", "restart_container_info": "<b>Important:</b> A graceful restart may take a while to complete, please wait for it to finish.",
"restart_now": "Restart now", "restart_now": "Restart now",
"restarting_container": "Restarting container, this may take a while" "restarting_container": "Restarting container, this may take a while",
"nothing_selected": "",
"hibp_check": ""
}, },
"header": { "header": {
"administration": "Configuration & Details", "administration": "Configuration & Details",
@@ -569,7 +691,8 @@
"quarantine": "Quarantine", "quarantine": "Quarantine",
"restart_netfilter": "Restart netfilter", "restart_netfilter": "Restart netfilter",
"restart_sogo": "Restart SOGo", "restart_sogo": "Restart SOGo",
"user_settings": "User Settings" "user_settings": "User Settings",
"mailcow_system": ""
}, },
"info": { "info": {
"awaiting_tfa_confirmation": "Awaiting TFA confirmation", "awaiting_tfa_confirmation": "Awaiting TFA confirmation",
@@ -581,7 +704,9 @@
"login": "Login", "login": "Login",
"mobileconfig_info": "Please login as mailbox user to download the requested Apple connection profile.", "mobileconfig_info": "Please login as mailbox user to download the requested Apple connection profile.",
"password": "Password", "password": "Password",
"username": "Username" "username": "Username",
"fido2_webauthn": "",
"other_logins": ""
}, },
"mailbox": { "mailbox": {
"action": "조치", "action": "조치",
@@ -722,7 +847,41 @@
"username": "Username", "username": "Username",
"waiting": "Waiting", "waiting": "Waiting",
"weekly": "Weekly", "weekly": "Weekly",
"yes": "&#10003;" "yes": "&#10003;",
"domain_templates": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"allow_from_smtp_info": "",
"catch_all": "",
"goto_spam": "",
"last_pw_change": "",
"mailbox_defaults": "",
"mailbox_templates": "",
"open_logs": "",
"sender": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"templates": "",
"template": "",
"q_reject": "",
"q_all": "",
"quarantine_category": "",
"recipient": "",
"add_alias_expand": "",
"add_template": "",
"all_domains": "",
"allow_from_smtp": "",
"created_on": "",
"goto_ham": "",
"mailbox_defaults_info": "",
"q_add_header": "",
"allowed_protocols": "",
"relay_unknown": ""
}, },
"oauth2": { "oauth2": {
"access_denied": "Please login as mailbox owner to grant access via OAuth2.", "access_denied": "Please login as mailbox owner to grant access via OAuth2.",
@@ -774,10 +933,33 @@
"table_size_show_n": "%s개 항목 보기", "table_size_show_n": "%s개 항목 보기",
"text_from_html_content": "내용 (converted html)", "text_from_html_content": "내용 (converted html)",
"text_plain_content": "내용 (text/plain)", "text_plain_content": "내용 (text/plain)",
"toggle_all": "선택 반전" "toggle_all": "선택 반전",
"rejected": "",
"quick_info_link": "",
"rewrite_subject": "",
"confirm": "",
"deliver_inbox": "",
"info": "",
"junk_folder": "",
"settings_info": "",
"type": "",
"spam": ""
}, },
"queue": { "queue": {
"queue_manager": "대기열 관리자" "queue_manager": "대기열 관리자",
"deliver_mail": "",
"deliver_mail_legend": "",
"hold_mail": "",
"hold_mail_legend": "",
"show_message": "",
"unhold_mail": "",
"unhold_mail_legend": "",
"unban": "",
"delete": "",
"flush": "",
"info": "",
"legend": "",
"ays": ""
}, },
"start": { "start": {
"help": "Show/Hide help panel", "help": "Show/Hide help panel",
@@ -858,7 +1040,18 @@
"upload_success": "File uploaded successfully", "upload_success": "File uploaded successfully",
"verified_totp_login": "Verified TOTP login", "verified_totp_login": "Verified TOTP login",
"verified_webauthn_login": "Verified WebAuthn login", "verified_webauthn_login": "Verified WebAuthn login",
"verified_yotp_login": "Verified Yubico OTP login" "verified_yotp_login": "Verified Yubico OTP login",
"f2b_banlist_refreshed": "",
"ip_check_opt_in_modified": "",
"domain_footer_modified": "",
"domain_add_dkim_available": "",
"template_added": "",
"template_modified": "",
"cors_headers_edited": "",
"template_removed": "",
"nginx_reloaded": "",
"password_policy_saved": "",
"verified_fido2_login": ""
}, },
"tfa": { "tfa": {
"api_register": "%s uses the Yubico Cloud API. Please get an API key for your key <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">here</a>", "api_register": "%s uses the Yubico Cloud API. Please get an API key for your key <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">here</a>",
@@ -882,7 +1075,11 @@
"webauthn": "WebAuthn authentication", "webauthn": "WebAuthn authentication",
"waiting_usb_auth": "<i>Waiting for USB device...</i><br><br>Please tap the button on your WebAuthn USB device now.", "waiting_usb_auth": "<i>Waiting for USB device...</i><br><br>Please tap the button on your WebAuthn USB device now.",
"waiting_usb_register": "<i>Waiting for USB device...</i><br><br>Please enter your password above and confirm your WebAuthn registration by tapping the button on your WebAuthn USB device.", "waiting_usb_register": "<i>Waiting for USB device...</i><br><br>Please enter your password above and confirm your WebAuthn registration by tapping the button on your WebAuthn USB device.",
"yubi_otp": "Yubico OTP authentication" "yubi_otp": "Yubico OTP authentication",
"authenticators": "",
"tfa_token_invalid": "",
"u2f_deprecated": "",
"u2f_deprecated_important": ""
}, },
"user": { "user": {
"action": "조치", "action": "조치",
@@ -1006,7 +1203,47 @@
"waiting": "대기중", "waiting": "대기중",
"week": "주", "week": "주",
"weekly": "매주", "weekly": "매주",
"weeks": "주" "weeks": "주",
"mailbox": "",
"q_all": "",
"q_reject": "",
"recent_successful_connections": "",
"open_logs": "",
"syncjob_check_log": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"open_webmail_sso": "",
"value": "",
"q_add_header": "",
"syncjob_EXIT_OVERQUOTA": "",
"apple_connection_profile_with_app_password": "",
"attribute": "",
"change_password_hint_app_passwords": "",
"clear_recent_successful_connections": "",
"created_on": "",
"direct_protocol_access": "",
"fido2_webauthn": "",
"last_pw_change": "",
"last_ui_login": "",
"login_history": "",
"mailbox_general": "",
"mailbox_settings": "",
"month": "",
"pushover_sound": "",
"quarantine_category": "",
"quarantine_category_info": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"with_app_password": "",
"years": "",
"syncjob_last_run_result": "",
"empty": "",
"allowed_protocols": "",
"from": "",
"months": "",
"year": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "Cannot delete logged in user", "cannot_delete_self": "Cannot delete logged in user",
@@ -1018,6 +1255,55 @@
"no_active_admin": "Cannot deactivate last active admin", "no_active_admin": "Cannot deactivate last active admin",
"quota_exceeded_scope": "Domain quota exceeded: Only unlimited mailboxes can be created in this domain scope.", "quota_exceeded_scope": "Domain quota exceeded: Only unlimited mailboxes can be created in this domain scope.",
"session_token": "Form token invalid: Token mismatch", "session_token": "Form token invalid: Token mismatch",
"session_ua": "Form token invalid: User-Agent validation error" "session_ua": "Form token invalid: User-Agent validation error",
"is_not_primary_alias": ""
},
"datatables": {
"infoPostFix": "",
"decimal": "",
"collapse_all": "",
"emptyTable": "",
"loadingRecords": "",
"processing": "",
"zeroRecords": "",
"info": "",
"infoEmpty": "",
"infoFiltered": "",
"thousands": "",
"search": "",
"aria": {
"sortAscending": "",
"sortDescending": ""
},
"expand_all": "",
"lengthMenu": "",
"paginate": {
"first": "",
"last": "",
"next": "",
"previous": ""
}
},
"fido2": {
"fido2_validation_failed": "",
"fn": "",
"known_ids": "",
"none": "",
"register_status": "",
"rename": "",
"set_fido2": "",
"set_fido2_touchid": "",
"set_fn": "",
"start_fido2_validation": "",
"confirm": "",
"fido2_auth": "",
"fido2_success": ""
},
"ratelimit": {
"disabled": "",
"second": "",
"minute": "",
"hour": "",
"day": ""
} }
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -158,7 +158,89 @@
"username": "Brukernavn", "username": "Brukernavn",
"validate_license_now": "Validér GUID mot lisenstjener", "validate_license_now": "Validér GUID mot lisenstjener",
"verify": "Validér", "verify": "Validér",
"yes": "&#10003;" "yes": "&#10003;",
"from": "",
"help_text": "",
"no": "",
"password_policy_lowerupper": "",
"password_policy_numbers": "",
"quarantine_max_size": "",
"quarantine_release_format": "",
"regen_api_key": "",
"forwarding_hosts_add_hint": "",
"forwarding_hosts_hint": "",
"generate": "",
"guid": "",
"guid_and_license": "",
"hash_remove_info": "",
"host": "",
"html": "",
"import": "",
"import_private_key": "",
"in_use_by": "",
"inactive": "",
"include_exclude": "",
"include_exclude_info": "",
"includes": "",
"ip_check": "",
"ip_check_disabled": "",
"ip_check_opt_in": "",
"is_mx_based": "",
"last_applied": "",
"license_info": "",
"link": "",
"loading": "",
"login_time": "",
"logo_info": "",
"lookup_mx": "",
"main_name": "",
"merged_vars_hint": "",
"message": "",
"message_size": "",
"nexthop": "",
"no_active_bans": "",
"no_new_rows": "",
"no_record": "",
"oauth2_apps": "",
"oauth2_add_client": "",
"oauth2_client_id": "",
"oauth2_client_secret": "",
"oauth2_info": "",
"oauth2_redirect_uri": "",
"oauth2_renew_secret": "",
"oauth2_revoke_tokens": "",
"optional": "",
"options": "",
"password": "",
"password_length": "",
"password_policy": "",
"password_policy_chars": "",
"password_policy_length": "",
"password_policy_special_chars": "",
"password_repeat": "",
"priority": "",
"private_key": "",
"quarantine": "",
"quarantine_bcc": "",
"quarantine_exclude_domains": "",
"quarantine_max_age": "",
"quarantine_max_score": "",
"quarantine_notification_html": "",
"quarantine_notification_sender": "",
"quarantine_notification_subject": "",
"quarantine_redirect": "",
"quarantine_release_format_att": "",
"quarantine_release_format_raw": "",
"quarantine_retention_size": "",
"quota_notification_html": "",
"quota_notification_sender": "",
"quota_notification_subject": "",
"quota_notifications": "",
"quota_notifications_info": "",
"quota_notifications_vars": "",
"rate_name": "",
"recipients": "",
"refresh": ""
}, },
"acl": { "acl": {
"ratelimit": "Nivågrense", "ratelimit": "Nivågrense",
@@ -321,6 +403,907 @@
"invalid_mime_type": "Ugyldig mime-type", "invalid_mime_type": "Ugyldig mime-type",
"invalid_nexthop": "\"Next hop\"-format er ugyldig", "invalid_nexthop": "\"Next hop\"-format er ugyldig",
"img_dimensions_exceeded": "Bildet overskriver maksimal bildestørrelse", "img_dimensions_exceeded": "Bildet overskriver maksimal bildestørrelse",
"img_size_exceeded": "Bildet overskrider maksimal filstørrelse" "img_size_exceeded": "Bildet overskrider maksimal filstørrelse",
"mailboxes_in_use": "",
"malformed_username": "",
"map_content_empty": "",
"max_alias_exceeded": "",
"max_mailbox_exceeded": "",
"max_quota_in_use": "",
"maxquota_empty": "",
"transport_dest_exists": "",
"invalid_nexthop_authenticated": "",
"invalid_recipient_map_new": "",
"invalid_recipient_map_old": "",
"ip_list_empty": "",
"is_alias": "",
"is_alias_or_mailbox": "",
"is_spam_alias": "",
"last_key": "",
"login_failed": "",
"mailbox_defquota_exceeds_mailbox_maxquota": "",
"mailbox_invalid": "",
"mailbox_quota_exceeded": "",
"mailbox_quota_exceeds_domain_quota": "",
"mailbox_quota_left_exceeded": "",
"mysql_error": "",
"network_host_invalid": "",
"next_hop_interferes": "",
"next_hop_interferes_any": "",
"nginx_reload_failed": "",
"no_user_defined": "",
"object_exists": "",
"object_is_not_numeric": "",
"password_complexity": "",
"password_empty": "",
"password_mismatch": "",
"policy_list_from_exists": "",
"policy_list_from_invalid": "",
"private_key_error": "",
"pushover_credentials_missing": "",
"pushover_key": "",
"pushover_token": "",
"quota_not_0_not_numeric": "",
"recipient_map_entry_exists": "",
"redis_error": "",
"relayhost_invalid": "",
"release_send_failed": "",
"reset_f2b_regex": "",
"resource_invalid": "",
"rl_timeframe": "",
"rspamd_ui_pw_length": "",
"script_empty": "",
"sender_acl_invalid": "",
"set_acl_failed": "",
"settings_map_invalid": "",
"sieve_error": "",
"spam_learn_error": "",
"subject_empty": "",
"target_domain_invalid": "",
"targetd_not_found": "",
"targetd_relay_domain": "",
"template_exists": "",
"template_id_invalid": "",
"template_name_invalid": "",
"temp_error": "",
"text_empty": "",
"tfa_token_invalid": "",
"tls_policy_map_dest_invalid": "",
"tls_policy_map_entry_exists": "",
"tls_policy_map_parameter_invalid": "",
"totp_verification_failed": "",
"webauthn_verification_failed": "",
"webauthn_authenticator_failed": "",
"webauthn_publickey_failed": "",
"webauthn_username_failed": "",
"unknown": "",
"unknown_tfa_method": "",
"unlimited_quota_acl": "",
"username_invalid": "",
"validity_missing": "",
"value_missing": "",
"yotp_verification_failed": ""
},
"quarantine": {
"qinfo": "",
"qitem": "",
"quarantine": "",
"quick_actions": "",
"quick_delete_link": "",
"quick_info_link": "",
"danger": "",
"medium_danger": "",
"neutral_danger": "",
"notified": "",
"qhandler_success": "",
"qid": "",
"settings_info": "",
"action": "",
"atts": "",
"check_hash": "",
"confirm": "",
"confirm_delete": "",
"deliver_inbox": "",
"disabled_by_config": "",
"download_eml": "",
"empty": "",
"high_danger": "",
"info": "",
"junk_folder": "",
"learn_spam_delete": "",
"low_danger": "",
"quick_release_link": "",
"rcpt": "",
"received": "",
"recipients": "",
"refresh": "",
"rejected": "",
"release": "",
"release_body": "",
"release_subject": "",
"remove": "",
"rewrite_subject": "",
"rspamd_result": "",
"sender": "",
"sender_header": "",
"show_item": "",
"spam": "",
"spam_score": "",
"subj": "",
"table_size": "",
"table_size_show_n": "",
"text_from_html_content": "",
"text_plain_content": "",
"toggle_all": "",
"type": ""
},
"start": {
"imap_smtp_server_auth_info": "",
"mailcow_apps_detail": "",
"help": "",
"mailcow_panel_detail": ""
},
"success": {
"domain_admin_added": "",
"admin_added": "",
"admin_api_modified": "",
"domain_admin_modified": "",
"domain_admin_removed": "",
"domain_footer_modified": "",
"domain_modified": "",
"domain_removed": "",
"dovecot_restart_success": "",
"eas_reset": "",
"f2b_banlist_refreshed": "",
"pushover_settings_edited": "",
"qlearn_spam": "",
"queue_command_success": "",
"recipient_map_entry_deleted": "",
"recipient_map_entry_saved": "",
"relayhost_added": "",
"relayhost_removed": "",
"reset_main_logo": "",
"resource_added": "",
"resource_modified": "",
"resource_removed": "",
"rl_saved": "",
"rspamd_ui_pw_set": "",
"saved_settings": "",
"settings_map_added": "",
"settings_map_removed": "",
"sogo_profile_reset": "",
"template_added": "",
"upload_success": "",
"verified_fido2_login": "",
"verified_totp_login": "",
"verified_webauthn_login": "",
"verified_yotp_login": "",
"acl_saved": "",
"admin_modified": "",
"admin_removed": "",
"alias_added": "",
"alias_domain_removed": "",
"alias_modified": "",
"alias_removed": "",
"aliasd_added": "",
"aliasd_modified": "",
"app_links": "",
"app_passwd_added": "",
"app_passwd_removed": "",
"bcc_deleted": "",
"bcc_edited": "",
"bcc_saved": "",
"cors_headers_edited": "",
"db_init_complete": "",
"delete_filter": "",
"delete_filters": "",
"deleted_syncjob": "",
"deleted_syncjobs": "",
"dkim_added": "",
"domain_add_dkim_available": "",
"dkim_duplicated": "",
"dkim_removed": "",
"domain_added": "",
"f2b_modified": "",
"forwarding_host_added": "",
"forwarding_host_removed": "",
"global_filter_written": "",
"hash_deleted": "",
"ip_check_opt_in_modified": "",
"item_deleted": "",
"item_released": "",
"items_deleted": "",
"items_released": "",
"learned_ham": "",
"license_modified": "",
"logged_in_as": "",
"mailbox_added": "",
"mailbox_modified": "",
"mailbox_removed": "",
"nginx_reloaded": "",
"object_modified": "",
"password_policy_saved": "",
"template_modified": "",
"template_removed": "",
"tls_policy_map_entry_deleted": "",
"tls_policy_map_entry_saved": "",
"ui_texts": ""
},
"edit": {
"description": "",
"disable_login": "",
"domain": "",
"sogo_visible_info": "",
"spam_alias": "",
"footer_exclude": "",
"gal_info": "",
"grant_types": "",
"hostname": "",
"inactive": "",
"kind": "",
"last_modified": "",
"lookup_mx": "",
"mailbox": "",
"mailbox_quota_def": "",
"mailbox_relayhost_info": "",
"max_quota": "",
"maxage": "",
"maxbytespersecond": "",
"domain_footer_skip_replies": "",
"encryption": "",
"exclude": "",
"extended_sender_acl": "",
"extended_sender_acl_info": "",
"pushover_sender_array": "",
"pushover_sender_regex": "",
"pushover_text": "",
"pushover_title": "",
"pushover_sound": "",
"pushover_vars": "",
"pushover_verify": "",
"quota_mb": "",
"quota_warning_bcc": "",
"ratelimit": "",
"domain_admin": "",
"domain_footer": "",
"private_comment": "",
"public_comment": "",
"skipcrossduplicates": "",
"sogo_access": "",
"sogo_access_info": "",
"sogo_visible": "",
"spam_score": "",
"subfolder2": "",
"spam_filter": "",
"spam_policy": "",
"syncjob": "",
"target_address": "",
"target_domain": "",
"timeout1": "",
"timeout2": "",
"title": "",
"unchanged_if_empty": "",
"username": "",
"validate_save": "",
"full_name": "",
"gal": "",
"client_id": "",
"max_aliases": "",
"mbox_rl_info": "",
"mins_interval": "",
"multiple_bookings": "",
"none_inherit": "",
"acl": "",
"active": "",
"admin": "",
"advanced_settings": "",
"alias": "",
"allow_from_smtp": "",
"allow_from_smtp_info": "",
"allowed_protocols": "",
"app_name": "",
"app_passwd": "",
"app_passwd_protocols": "",
"automap": "",
"backup_mx_options": "",
"bcc_dest_format": "",
"client_secret": "",
"comment_info": "",
"created_on": "",
"custom_attributes": "",
"delete1": "",
"delete2": "",
"delete2duplicates": "",
"delete_ays": "",
"domain_footer_html": "",
"domain_footer_info": "",
"domain_footer_info_vars": {
"auth_user": "",
"from_user": "",
"from_name": "",
"from_addr": "",
"from_domain": "",
"custom": ""
},
"domain_footer_plain": "",
"domain_quota": "",
"domains": "",
"dont_check_sender_acl": "",
"edit_alias_domain": "",
"force_pw_update": "",
"force_pw_update_info": "",
"generate": "",
"nexthop": "",
"password": "",
"password_repeat": "",
"previous": "",
"pushover": "",
"pushover_evaluate_x_prio": "",
"pushover_info": "",
"pushover_only_x_prio": "",
"quota_warning_bcc_info": "",
"redirect_uri": "",
"relay_all": "",
"relay_all_info": "",
"relay_domain": "",
"relay_transport_info": "",
"relay_unknown_only": "",
"relayhost": "",
"remove": "",
"resource": "",
"save": "",
"scope": "",
"sender_acl": "",
"sender_acl_disabled": "",
"sender_acl_info": "",
"sieve_desc": "",
"sieve_type": "",
"max_mailboxes": ""
},
"fido2": {
"none": "",
"register_status": "",
"rename": "",
"set_fido2": "",
"set_fido2_touchid": "",
"confirm": "",
"fido2_auth": "",
"fido2_success": "",
"fido2_validation_failed": "",
"fn": "",
"known_ids": "",
"set_fn": "",
"start_fido2_validation": ""
},
"mailbox": {
"bcc_sender_map": "",
"bcc_to_rcpt": "",
"bcc_to_sender": "",
"bcc_type": "",
"booking_null": "",
"booking_0_short": "",
"booking_custom": "",
"booking_custom_short": "",
"booking_ltnull": "",
"created_on": "",
"daily": "",
"deactivate": "",
"disable_x": "",
"domain": "",
"excludes": "",
"gal": "",
"goto_ham": "",
"goto_spam": "",
"hourly": "",
"in_use": "",
"mins_interval": "",
"msg_num": "",
"multiple_bookings": "",
"never": "",
"sieve_preset_8": "",
"sieve_preset_header": "",
"sogo_visible": "",
"sogo_visible_n": "",
"sogo_visible_y": "",
"spam_aliases": "",
"tls_policy_maps_long": "",
"add_domain": "",
"booking_lt0_short": "",
"catch_all": "",
"dkim_domains_selector": "",
"description": "",
"disable_login": "",
"dkim_key_length": "",
"domain_admins": "",
"domain_aliases": "",
"domain_quota": "",
"filter_table": "",
"filters": "",
"fname": "",
"force_pw_update": "",
"insert_preset": "",
"kind": "",
"last_mail_login": "",
"last_modified": "",
"last_pw_change": "",
"last_run": "",
"last_run_reset": "",
"mailbox": "",
"mailbox_defaults": "",
"mailbox_defaults_info": "",
"mailbox_defquota": "",
"mailbox_templates": "",
"max_aliases": "",
"max_mailboxes": "",
"remove": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"table_size": "",
"action": "",
"activate": "",
"active": "",
"add": "",
"add_alias": "",
"add_alias_expand": "",
"add_bcc_entry": "",
"add_domain_alias": "",
"add_domain_record_first": "",
"add_filter": "",
"add_mailbox": "",
"add_recipient_map_entry": "",
"add_resource": "",
"add_template": "",
"add_tls_policy_map": "",
"address_rewriting": "",
"alias": "",
"alias_domain_alias_hint": "",
"alias_domain_backupmx": "",
"aliases": "",
"all_domains": "",
"allow_from_smtp": "",
"allow_from_smtp_info": "",
"allowed_protocols": "",
"backup_mx": "",
"bcc": "",
"bcc_destination": "",
"bcc_destinations": "",
"bcc_info": "",
"bcc_local_dest": "",
"bcc_map": "",
"bcc_map_type": "",
"bcc_maps": "",
"bcc_rcpt_map": "",
"domain_templates": "",
"domain_quota_total": "",
"domains": "",
"edit": "",
"empty": "",
"enable_x": "",
"inactive": "",
"mailbox_quota": "",
"mailboxes": "",
"max_quota": "",
"no": "",
"no_record": "",
"no_record_single": "",
"open_logs": "",
"owner": "",
"private_comment": "",
"public_comment": "",
"q_add_header": "",
"q_all": "",
"q_reject": "",
"quarantine_category": "",
"quarantine_notification": "",
"quick_actions": "",
"recipient": "",
"recipient_map": "",
"recipient_map_info": "",
"recipient_map_new": "",
"recipient_map_new_info": "",
"recipient_map_old": "",
"recipient_map_old_info": "",
"recipient_maps": "",
"relay_all": "",
"relay_unknown": "",
"resources": "",
"running": "",
"sender": "",
"set_postfilter": "",
"set_prefilter": "",
"sieve_info": "",
"sieve_preset_1": "",
"sieve_preset_2": "",
"sieve_preset_3": "",
"sieve_preset_4": "",
"sieve_preset_5": "",
"sieve_preset_6": "",
"sieve_preset_7": "",
"stats": "",
"status": "",
"sync_jobs": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"table_size_show_n": "",
"target_address": "",
"target_domain": "",
"templates": "",
"template": "",
"tls_enforce_in": "",
"tls_enforce_out": "",
"tls_map_dest": "",
"tls_map_dest_info": "",
"tls_map_parameters": "",
"tls_map_parameters_info": "",
"tls_map_policy": "",
"tls_policy_maps": "",
"tls_policy_maps_enforced_tls": "",
"tls_policy_maps_info": "",
"toggle_all": "",
"username": "",
"waiting": "",
"weekly": "",
"yes": ""
},
"info": {
"no_action": "",
"awaiting_tfa_confirmation": "",
"session_expires": ""
},
"tfa": {
"api_register": "",
"delete_tfa": "",
"authenticators": "",
"confirm": "",
"confirm_totp_token": "",
"disable_tfa": "",
"error_code": "",
"enter_qr_code": "",
"init_webauthn": "",
"key_id": "",
"key_id_totp": "",
"none": "",
"reload_retry": "",
"scan_qr_code": "",
"select": "",
"set_tfa": "",
"start_webauthn_validation": "",
"tfa": "",
"tfa_token_invalid": "",
"totp": "",
"u2f_deprecated": "",
"u2f_deprecated_important": "",
"webauthn": "",
"waiting_usb_auth": "",
"waiting_usb_register": "",
"yubi_otp": ""
},
"footer": {
"cancel": "",
"confirm_delete": "",
"delete_now": "",
"delete_these_items": "",
"hibp_check": "",
"hibp_nok": "",
"hibp_ok": "",
"restart_now": "",
"restarting_container": "",
"loading": "",
"nothing_selected": "",
"restart_container": "",
"restart_container_info": ""
},
"header": {
"administration": "",
"apps": "",
"debug": "",
"email": "",
"mailcow_system": "",
"mailcow_config": "",
"quarantine": "",
"restart_netfilter": "",
"restart_sogo": "",
"user_settings": ""
},
"user": {
"app_name": "",
"direct_aliases": "",
"direct_aliases_desc": "",
"eas_reset": "",
"expire_in": "",
"pushover_only_x_prio": "",
"quarantine_notification_info": "",
"recent_successful_connections": "",
"spamfilter_bl": "",
"spamfilter_default_score": "",
"status": "",
"tag_help_explain": "",
"tag_in_none": "",
"text": "",
"aliases_send_as_all": "",
"app_hint": "",
"interval": "",
"is_catch_all": "",
"last_mail_login": "",
"last_pw_change": "",
"last_run": "",
"tag_in_subfolder": "",
"tag_in_subject": "",
"title": "",
"quarantine_notification": "",
"action": "",
"active": "",
"active_sieve": "",
"advanced_settings": "",
"alias": "",
"alias_create_random": "",
"alias_extend_all": "",
"alias_full_date": "",
"alias_remove_all": "",
"alias_select_validity": "",
"alias_time_left": "",
"alias_valid_until": "",
"aliases_also_send_as": "",
"allowed_protocols": "",
"app_passwds": "",
"apple_connection_profile": "",
"apple_connection_profile_complete": "",
"apple_connection_profile_mailonly": "",
"apple_connection_profile_with_app_password": "",
"attribute": "",
"change_password": "",
"change_password_hint_app_passwords": "",
"clear_recent_successful_connections": "",
"client_configuration": "",
"create_app_passwd": "",
"create_syncjob": "",
"created_on": "",
"daily": "",
"day": "",
"delete_ays": "",
"direct_protocol_access": "",
"eas_reset_help": "",
"eas_reset_now": "",
"edit": "",
"email": "",
"email_and_dav": "",
"empty": "",
"encryption": "",
"excludes": "",
"fido2_webauthn": "",
"force_pw_update": "",
"from": "",
"generate": "",
"hour": "",
"hourly": "",
"hours": "",
"in_use": "",
"last_ui_login": "",
"loading": "",
"login_history": "",
"mailbox": "",
"mailbox_details": "",
"mailbox_general": "",
"mailbox_settings": "",
"messages": "",
"month": "",
"months": "",
"never": "",
"new_password": "",
"new_password_repeat": "",
"no_active_filter": "",
"no_last_login": "",
"no_record": "",
"open_logs": "",
"open_webmail_sso": "",
"password": "",
"password_now": "",
"password_repeat": "",
"pushover_evaluate_x_prio": "",
"pushover_info": "",
"pushover_sender_array": "",
"pushover_sender_regex": "",
"pushover_text": "",
"pushover_title": "",
"pushover_sound": "",
"pushover_vars": "",
"pushover_verify": "",
"q_add_header": "",
"q_all": "",
"q_reject": "",
"quarantine_category": "",
"quarantine_category_info": "",
"remove": "",
"running": "",
"save": "",
"save_changes": "",
"sender_acl_disabled": "",
"shared_aliases": "",
"shared_aliases_desc": "",
"show_sieve_filters": "",
"sogo_profile_reset": "",
"sogo_profile_reset_help": "",
"sogo_profile_reset_now": "",
"spam_aliases": "",
"spam_score_reset": "",
"spamfilter": "",
"spamfilter_behavior": "",
"spamfilter_bl_desc": "",
"spamfilter_green": "",
"spamfilter_hint": "",
"spamfilter_red": "",
"spamfilter_table_action": "",
"spamfilter_table_add": "",
"spamfilter_table_domain_policy": "",
"spamfilter_table_empty": "",
"spamfilter_table_remove": "",
"spamfilter_table_rule": "",
"spamfilter_wl": "",
"spamfilter_wl_desc": "",
"spamfilter_yellow": "",
"sync_jobs": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"tag_handling": "",
"tag_help_example": "",
"tls_enforce_in": "",
"tls_enforce_out": "",
"tls_policy": "",
"tls_policy_warning": "",
"user_settings": "",
"username": "",
"value": "",
"verify": "",
"waiting": "",
"week": "",
"weekly": "",
"weeks": "",
"with_app_password": "",
"year": "",
"years": ""
},
"warning": {
"session_token": "",
"session_ua": "",
"cannot_delete_self": "",
"domain_added_sogo_failed": "",
"dovecot_restart_failed": "",
"fuzzy_learn_error": "",
"hash_not_found": "",
"ip_invalid": "",
"is_not_primary_alias": "",
"no_active_admin": "",
"quota_exceeded_scope": ""
},
"diagnostics": {
"dns_records_docs": "",
"cname_from_a": "",
"dns_records": "",
"dns_records_24hours": "",
"dns_records_data": "",
"dns_records_name": "",
"dns_records_status": "",
"dns_records_type": "",
"optional": ""
},
"debug": {
"service": "",
"show_ip": "",
"architecture": "",
"chart_this_server": "",
"containers_info": "",
"container_running": "",
"container_disabled": "",
"container_stopped": "",
"cores": "",
"current_time": "",
"disk_usage": "",
"docs": "",
"error_show_ip": "",
"external_logs": "",
"history_all_servers": "",
"in_memory_logs": "",
"jvm_memory_solr": "",
"last_modified": "",
"log_info": "",
"login_time": "",
"logs": "",
"memory": "",
"online_users": "",
"restart_container": "",
"size": "",
"solr_dead": "",
"solr_status": "",
"started_at": "",
"started_on": "",
"static_logs": "",
"success": "",
"system_containers": "",
"timezone": "",
"uptime": "",
"update_available": "",
"no_update_available": "",
"update_failed": "",
"username": "",
"wip": ""
},
"login": {
"fido2_webauthn": "",
"delayed": "",
"login": "",
"mobileconfig_info": "",
"other_logins": "",
"password": "",
"username": ""
},
"datatables": {
"collapse_all": "",
"decimal": "",
"emptyTable": "",
"expand_all": "",
"info": "",
"infoEmpty": "",
"infoFiltered": "",
"infoPostFix": "",
"thousands": "",
"lengthMenu": "",
"loadingRecords": "",
"processing": "",
"search": "",
"zeroRecords": "",
"paginate": {
"first": "",
"last": "",
"next": "",
"previous": ""
},
"aria": {
"sortAscending": "",
"sortDescending": ""
}
},
"oauth2": {
"access_denied": "",
"authorize_app": "",
"deny": "",
"permit": "",
"profile": "",
"profile_desc": "",
"scope_ask_permission": ""
},
"queue": {
"delete": "",
"flush": "",
"info": "",
"legend": "",
"ays": "",
"deliver_mail": "",
"deliver_mail_legend": "",
"hold_mail": "",
"hold_mail_legend": "",
"queue_manager": "",
"show_message": "",
"unban": "",
"unhold_mail": "",
"unhold_mail_legend": ""
},
"ratelimit": {
"disabled": "",
"second": "",
"minute": "",
"hour": "",
"day": ""
} }
} }

View File

@@ -26,7 +26,9 @@
"syncjobs": "Sync jobs", "syncjobs": "Sync jobs",
"tls_policy": "Versleutelingsbeleid", "tls_policy": "Versleutelingsbeleid",
"unlimited_quota": "Onbeperkte quota voor mailboxen", "unlimited_quota": "Onbeperkte quota voor mailboxen",
"domain_desc": "Wijzig domeinbeschrijving" "domain_desc": "Wijzig domeinbeschrijving",
"domain_relayhost": "",
"mailbox_relayhost": ""
}, },
"add": { "add": {
"activate_filter_warn": "Alle andere filters worden gedeactiveerd zolang deze geactiveerd is.", "activate_filter_warn": "Alle andere filters worden gedeactiveerd zolang deze geactiveerd is.",
@@ -104,7 +106,9 @@
"validate": "Verifieer", "validate": "Verifieer",
"validation_success": "Succesvol geverifieerd", "validation_success": "Succesvol geverifieerd",
"tags": "Tags", "tags": "Tags",
"bcc_dest_format": "BCC-bestemming moet één geldig e-mailadres zijn.<br>Als u een kopie naar meerdere adressen wilt sturen, maak dan een alias aan en gebruik die hier." "bcc_dest_format": "BCC-bestemming moet één geldig e-mailadres zijn.<br>Als u een kopie naar meerdere adressen wilt sturen, maak dan een alias aan en gebruik die hier.",
"dry": "",
"app_passwd_protocols": ""
}, },
"admin": { "admin": {
"access": "Toegang", "access": "Toegang",
@@ -185,7 +189,7 @@
"filter_table": "Filtertabel", "filter_table": "Filtertabel",
"forwarding_hosts": "Forwarding hosts", "forwarding_hosts": "Forwarding hosts",
"forwarding_hosts_add_hint": "Het is mogelijk om IPv4- of IPv6-adressen, netwerken in CIDR-notatie, hostnames (worden omgezet naar IP-adressen) of domeinnamen (worden tevens omgezet naar IP-adressen of, bij gebrek daaraan, MX-records) op te geven.", "forwarding_hosts_add_hint": "Het is mogelijk om IPv4- of IPv6-adressen, netwerken in CIDR-notatie, hostnames (worden omgezet naar IP-adressen) of domeinnamen (worden tevens omgezet naar IP-adressen of, bij gebrek daaraan, MX-records) op te geven.",
"forwarding_hosts_hint": "Inkomende berichten worden onvoorwaardelijk geaccepteerd vanaf iedere host hieronder vermeld. Deze hosts worden hierdoor niet gecontroleerd op DNSBLs, en zullen de greylisting omzeilen. Spam wordt daarentegen zoals gebruikelijk in de spamfolder geplaatst. Dit wordt vaak gebruikt om mailservers te specificeren die forwarden naar deze Mailcow-server.", "forwarding_hosts_hint": "Inkomende berichten worden onvoorwaardelijk geaccepteerd vanaf iedere host hieronder vermeld. Deze hosts worden hierdoor niet gecontroleerd op DNSBLs, en zullen de greylisting omzeilen. Spam wordt daarentegen zoals gebruikelijk in de spamfolder geplaatst. Dit wordt vaak gebruikt om mailservers te specificeren die alles doorsturen naar deze Mailcow-server.",
"from": "Afzender", "from": "Afzender",
"generate": "genereer", "generate": "genereer",
"guid": "Identificatienummer - GUID", "guid": "Identificatienummer - GUID",
@@ -295,7 +299,7 @@
"to_top": "Naar boven", "to_top": "Naar boven",
"transport_dest_format": "Voorbeeld: example.org, .example.org, *, mailbox@example.org (meerdere waarden zijn kommagescheiden)", "transport_dest_format": "Voorbeeld: example.org, .example.org, *, mailbox@example.org (meerdere waarden zijn kommagescheiden)",
"transport_maps": "Transport-maps", "transport_maps": "Transport-maps",
"transports_hint": "→ Een transport-map wordt boven een afzendergebonden transport-map verkozen.<br>→ Het uitgaande versleutelingsbeleid van individuele gebruikers wordt genegeerd en kan uitsluitend worden gehandhaafd doormiddel van globaal versleutelingsbeleid.<br>→ De transportservice is altijd \"smtp:\" en zal daarom met TLS proberen te verbinden. Wrapped TLS (SMTPS) wordt niet ondersteund.<br>→ Adressen overeenkomend met \"/localhost$/\" zullen altijd via \"local:\" getransporteerd worden, hierdoor zullen \"*\"-bestemmingen niet van toepassing zijn op deze adressen.<br>→ Om de aanmeldingsgegevens van een (voorbeeld) nexthop \"[host]:25\" te bepalen, zoekt Postfix <b>altijd</b> naar \"nexthop\" voodat er wordt gekeken naar \"[nexthop]:25\". Dit maakt het onmogelijk om \"nexthop\" en \"[nexthop]:25\" tegelijkertijd te gebruiken.", "transports_hint": "→ Een transport-map wordt boven een afzendergebonden transport-map verkozen.<br>→ Het uitgaande versleutelingsbeleid van individuele gebruikers wordt genegeerd en kan uitsluitend worden gehandhaafd door middel van globaal versleutelingsbeleid.<br>→ De transportservice is altijd \"smtp:\" en zal daarom met TLS proberen te verbinden. Wrapped TLS (SMTPS) wordt niet ondersteund.<br>→ Adressen overeenkomend met \"/localhost$/\" zullen altijd via \"local:\" getransporteerd worden, hierdoor zullen \"*\"-bestemmingen niet van toepassing zijn op deze adressen.<br>→ Om de aanmeldingsgegevens van een (voorbeeld) nexthop \"[host]:25\" te bepalen, zoekt Postfix <b>altijd</b> naar \"nexthop\" voodat er wordt gekeken naar \"[nexthop]:25\". Dit maakt het onmogelijk om \"nexthop\" en \"[nexthop]:25\" tegelijkertijd te gebruiken.",
"ui_footer": "Footer (HTML toegestaan)", "ui_footer": "Footer (HTML toegestaan)",
"ui_header_announcement": "Aankondigingen", "ui_header_announcement": "Aankondigingen",
"ui_header_announcement_active": "Activeer aankondiging", "ui_header_announcement_active": "Activeer aankondiging",
@@ -337,7 +341,17 @@
"admins_ldap": "LDAP administrators", "admins_ldap": "LDAP administrators",
"api_read_only": "Alleen-lezen toegang", "api_read_only": "Alleen-lezen toegang",
"api_read_write": "Lees en schrijf toegang", "api_read_write": "Lees en schrijf toegang",
"login_time": "Login tijd" "login_time": "Login tijd",
"allowed_methods": "",
"copy_to_clipboard": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"allowed_origins": "",
"ip_check_opt_in": "",
"queue_unban": "",
"transport_test_rcpt_info": "",
"yes": "",
"no": ""
}, },
"danger": { "danger": {
"access_denied": "Toegang geweigerd of ongeldige gegevens", "access_denied": "Toegang geweigerd of ongeldige gegevens",
@@ -463,7 +477,12 @@
"demo_mode_enabled": "Demo modus is ingeschakeld", "demo_mode_enabled": "Demo modus is ingeschakeld",
"template_exists": "Sjabloon %s bestaat al", "template_exists": "Sjabloon %s bestaat al",
"template_id_invalid": "Sjabloon ID %s ongeldig", "template_id_invalid": "Sjabloon ID %s ongeldig",
"template_name_invalid": "Sjabloon naam ongeldig" "template_name_invalid": "Sjabloon naam ongeldig",
"webauthn_username_failed": "",
"cors_invalid_origin": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": "",
"extended_sender_acl_denied": ""
}, },
"debug": { "debug": {
"chart_this_server": "Grafiek (deze server)", "chart_this_server": "Grafiek (deze server)",
@@ -473,7 +492,7 @@
"history_all_servers": "Geschiedenis (alle servers)", "history_all_servers": "Geschiedenis (alle servers)",
"in_memory_logs": "Geheugenlogs", "in_memory_logs": "Geheugenlogs",
"jvm_memory_solr": "JVM-geheugengebruik", "jvm_memory_solr": "JVM-geheugengebruik",
"log_info": "<p>Mailcows <b>geheugenlogs</b> worden elke minuut afgesneden naar maximaal %d regels (LOG_LINES) om de stabiliteit te garanderen.<br>Geheugenlogs zijn niet bedoeld om bewaard te blijven. Alle applicaties die geheugenlogs schrijven worden ook naar het Docker-proces gelogd.<br>De geheugenlogs kunnen gebruikt worden voor het oplossen van problemen met bepaalde containers.</p><p><b>Externe logs</b> worden verzameld doormiddel van de API van deze applicaties.</p><p><b>Statische logs</b> zijn activiteitenlogs die niet naar het Docker-proces worden gelogd, maar wel bewaard moeten blijven (uitgezonderd API-logs).</p>", "log_info": "<p>Mailcows <b>geheugenlogs</b> worden elke minuut afgesneden naar maximaal %d regels (LOG_LINES) om de stabiliteit te garanderen.<br>Geheugenlogs zijn niet bedoeld om bewaard te blijven. Alle applicaties die geheugenlogs schrijven worden ook naar het Docker-proces gelogd.<br>De geheugenlogs kunnen gebruikt worden voor het oplossen van problemen met bepaalde containers.</p><p><b>Externe logs</b> worden verzameld door middel van de API van deze applicaties.</p><p><b>Statische logs</b> zijn activiteitenlogs die niet naar het Docker-proces worden gelogd, maar wel bewaard moeten blijven (uitgezonderd API-logs).</p>",
"logs": "Logs", "logs": "Logs",
"restart_container": "Herstart", "restart_container": "Herstart",
"solr_dead": "Solr is uitgeschakeld, uitgevallen of nog bezig met opstarten.", "solr_dead": "Solr is uitgeschakeld, uitgevallen of nog bezig met opstarten.",
@@ -627,7 +646,26 @@
"acl": "ACL (Toestemming)", "acl": "ACL (Toestemming)",
"domain_footer": "Domeinbreede footer", "domain_footer": "Domeinbreede footer",
"domain_footer_html": "HTML footer", "domain_footer_html": "HTML footer",
"mailbox_relayhost_info": "Wordt alleen toegepast op de mailbox en directe aliassen, maar heft een domein relayhost op." "mailbox_relayhost_info": "Wordt alleen toegepast op de mailbox en directe aliassen, maar heft een domein relayhost op.",
"lookup_mx": "",
"footer_exclude": "",
"domain_footer_skip_replies": "",
"custom_attributes": "",
"quota_warning_bcc": "",
"domain_footer_info_vars": {
"auth_user": "",
"from_user": "",
"from_name": "",
"from_addr": "",
"from_domain": "",
"custom": ""
},
"pushover": "",
"domain_footer_plain": "",
"none_inherit": "",
"quota_warning_bcc_info": "",
"sogo_access": "",
"sogo_access_info": ""
}, },
"footer": { "footer": {
"cancel": "Annuleren", "cancel": "Annuleren",
@@ -640,7 +678,9 @@
"restart_container": "Herstart container", "restart_container": "Herstart container",
"restart_container_info": "<b>Belangrijk:</b> Een herstart kan enige tijd in beslag nemen, wacht aub totdat dit proces voltooid is.<br>Deze pagina zal zichzelf verversen zodra het proces voltooid is.", "restart_container_info": "<b>Belangrijk:</b> Een herstart kan enige tijd in beslag nemen, wacht aub totdat dit proces voltooid is.<br>Deze pagina zal zichzelf verversen zodra het proces voltooid is.",
"restart_now": "Nu herstarten", "restart_now": "Nu herstarten",
"restarting_container": "Container wordt herstart, even geduld aub..." "restarting_container": "Container wordt herstart, even geduld aub...",
"hibp_check": "",
"nothing_selected": ""
}, },
"header": { "header": {
"administration": "Configuratie & details", "administration": "Configuratie & details",
@@ -651,7 +691,8 @@
"quarantine": "Quarantaine", "quarantine": "Quarantaine",
"restart_netfilter": "Herstart netfilter", "restart_netfilter": "Herstart netfilter",
"restart_sogo": "Herstart SOGo", "restart_sogo": "Herstart SOGo",
"user_settings": "Gebruikersinstellingen" "user_settings": "Gebruikersinstellingen",
"mailcow_system": ""
}, },
"info": { "info": {
"awaiting_tfa_confirmation": "In afwachting van tweefactorauthenticatie...", "awaiting_tfa_confirmation": "In afwachting van tweefactorauthenticatie...",
@@ -684,7 +725,7 @@
"add_tls_policy_map": "Voeg versleutelingsbeleid toe", "add_tls_policy_map": "Voeg versleutelingsbeleid toe",
"address_rewriting": "Adresomleidingen", "address_rewriting": "Adresomleidingen",
"alias": "Alias", "alias": "Alias",
"alias_domain_alias_hint": "Aliassen worden <b>niet</b> automatisch toegepast op domeinaliassen. Aliasadres <code>alias@domein</code> dekt het adres <code>alias@alias-domein</code> <b>niet</b> (waarbij \"alias-domein\" een aliasdomein is voor \"domein\").<br>Gebruik een filter om mail te forwarden naar een externe mailbox (zie het tabje \"Filters\" of gebruik SOGo -> Doorsturen).", "alias_domain_alias_hint": "Aliassen worden <b>niet</b> automatisch toegepast op domeinaliassen. Aliasadres <code>alias@domein</code> dekt het adres <code>alias@alias-domein</code> <b>niet</b> (waarbij \"alias-domein\" een aliasdomein is voor \"domein\").<br>Gebruik een filter om mail door te sturen naar een externe mailbox (zie het tabje \"Filters\" of gebruik SOGo -> Doorsturen).",
"alias_domain_backupmx": "Aliasdomein inactief voor geforward domein", "alias_domain_backupmx": "Aliasdomein inactief voor geforward domein",
"aliases": "Aliassen", "aliases": "Aliassen",
"allow_from_smtp": "Sta enkel de volgende IP-adressen toe voor <b>SMTP</b>", "allow_from_smtp": "Sta enkel de volgende IP-adressen toe voor <b>SMTP</b>",
@@ -694,7 +735,7 @@
"bcc": "BCC", "bcc": "BCC",
"bcc_destination": "BCC-bestemming", "bcc_destination": "BCC-bestemming",
"bcc_destinations": "BCC-bestemmingen", "bcc_destinations": "BCC-bestemmingen",
"bcc_info": "BCC-maps worden gebruikt om kopieën van alle berichten naar een ander adres te forwarden.<br>Wees er van bewust dat er geen melding wordt gedaan van een mislukte aflevering.", "bcc_info": "BCC-maps worden gebruikt om kopieën van alle berichten naar een ander adres door te sturen.<br>Wees er van bewust dat er geen melding wordt gedaan van een mislukte aflevering.",
"bcc_local_dest": "Lokale bestemming", "bcc_local_dest": "Lokale bestemming",
"bcc_map": "BCC-map", "bcc_map": "BCC-map",
"bcc_map_type": "BCC-type", "bcc_map_type": "BCC-type",
@@ -812,7 +853,35 @@
"toggle_all": "Selecteer alles", "toggle_all": "Selecteer alles",
"username": "Gebruikersnaam", "username": "Gebruikersnaam",
"waiting": "Wachten", "waiting": "Wachten",
"weekly": "Wekelijks" "weekly": "Wekelijks",
"add_alias_expand": "",
"all_domains": "",
"goto_spam": "",
"sender": "",
"catch_all": "",
"add_template": "",
"created_on": "",
"domain_templates": "",
"domain_quota_total": "",
"goto_ham": "",
"last_pw_change": "",
"mailbox_templates": "",
"no": "",
"open_logs": "",
"recipient": "",
"relay_unknown": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"templates": "",
"template": "",
"yes": ""
}, },
"oauth2": { "oauth2": {
"access_denied": "Log in als een mailboxgebruiker om toegang via OAuth te verlenen", "access_denied": "Log in als een mailboxgebruiker om toegang via OAuth te verlenen",
@@ -877,7 +946,20 @@
"toggle_all": "Selecteer alles" "toggle_all": "Selecteer alles"
}, },
"queue": { "queue": {
"queue_manager": "Queue manager" "queue_manager": "Queue manager",
"delete": "",
"flush": "",
"info": "",
"legend": "",
"ays": "",
"deliver_mail": "",
"deliver_mail_legend": "",
"hold_mail": "",
"hold_mail_legend": "",
"show_message": "",
"unban": "",
"unhold_mail": "",
"unhold_mail_legend": ""
}, },
"start": { "start": {
"help": "Toon/verberg hulppaneel", "help": "Toon/verberg hulppaneel",
@@ -960,7 +1042,16 @@
"verified_totp_login": "TOTP succesvol geverifieerd", "verified_totp_login": "TOTP succesvol geverifieerd",
"verified_webauthn_login": "WebAuthn succesvol geverifieerd", "verified_webauthn_login": "WebAuthn succesvol geverifieerd",
"verified_fido2_login": "FIDO2 succesvol geverifieerd", "verified_fido2_login": "FIDO2 succesvol geverifieerd",
"verified_yotp_login": "Yubico OTP succesvol geverifieerd" "verified_yotp_login": "Yubico OTP succesvol geverifieerd",
"f2b_banlist_refreshed": "",
"ip_check_opt_in_modified": "",
"password_policy_saved": "",
"template_added": "",
"cors_headers_edited": "",
"domain_add_dkim_available": "",
"domain_footer_modified": "",
"template_modified": "",
"template_removed": ""
}, },
"tfa": { "tfa": {
"api_register": "%s maakt gebruik van de Yubico Cloud API. Om dit te benutten is er een API-key van Yubico vereist, deze kan <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">hier</a> opgevraagd worden", "api_register": "%s maakt gebruik van de Yubico Cloud API. Om dit te benutten is er een API-key van Yubico vereist, deze kan <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">hier</a> opgevraagd worden",
@@ -985,7 +1076,10 @@
"webauthn": "WebAuthn", "webauthn": "WebAuthn",
"waiting_usb_auth": "<i>In afwachting van USB-apparaat...</i><br><br>Druk nu op de knop van je WebAuthn-apparaat.", "waiting_usb_auth": "<i>In afwachting van USB-apparaat...</i><br><br>Druk nu op de knop van je WebAuthn-apparaat.",
"waiting_usb_register": "<i>In afwachting van USB-apparaat...</i><br><br>Voer je wachtwoord hierboven in en bevestig de registratie van het WebAuthn-apparaat door op de knop van het apparaat te drukken.", "waiting_usb_register": "<i>In afwachting van USB-apparaat...</i><br><br>Voer je wachtwoord hierboven in en bevestig de registratie van het WebAuthn-apparaat door op de knop van het apparaat te drukken.",
"yubi_otp": "Yubico OTP" "yubi_otp": "Yubico OTP",
"authenticators": "",
"u2f_deprecated": "",
"u2f_deprecated_important": ""
}, },
"fido2": { "fido2": {
"set_fn": "Stel naam in", "set_fn": "Stel naam in",
@@ -999,7 +1093,8 @@
"start_fido2_validation": "Start FIDO2-validatie", "start_fido2_validation": "Start FIDO2-validatie",
"fido2_auth": "Aanmelden met FIDO2", "fido2_auth": "Aanmelden met FIDO2",
"fido2_success": "Apparaat succesvol geregistreerd", "fido2_success": "Apparaat succesvol geregistreerd",
"fido2_validation_failed": "Validatie mislukt" "fido2_validation_failed": "Validatie mislukt",
"set_fido2_touchid": ""
}, },
"user": { "user": {
"action": "Handeling", "action": "Handeling",
@@ -1129,7 +1224,41 @@
"waiting": "Wachten", "waiting": "Wachten",
"week": "week", "week": "week",
"weekly": "Wekelijks", "weekly": "Wekelijks",
"weeks": "weken" "weeks": "weken",
"attribute": "",
"years": "",
"value": "",
"fido2_webauthn": "",
"recent_successful_connections": "",
"syncjob_check_log": "",
"allowed_protocols": "",
"apple_connection_profile_with_app_password": "",
"direct_protocol_access": "",
"last_pw_change": "",
"last_ui_login": "",
"login_history": "",
"mailbox": "",
"mailbox_general": "",
"mailbox_settings": "",
"month": "",
"months": "",
"open_logs": "",
"open_webmail_sso": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"year": "",
"with_app_password": "",
"from": "",
"change_password_hint_app_passwords": "",
"clear_recent_successful_connections": "",
"created_on": "",
"empty": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "Gebruikers kunnen niet worden verwijderd wanneer deze zijn aangemeld", "cannot_delete_self": "Gebruikers kunnen niet worden verwijderd wanneer deze zijn aangemeld",
@@ -1141,7 +1270,8 @@
"no_active_admin": "Het is niet mogelijk om de laatste actieve administrator te verwijderen", "no_active_admin": "Het is niet mogelijk om de laatste actieve administrator te verwijderen",
"quota_exceeded_scope": "Domeinquota overschreden: Voor dit domein kunnen uitsluitend onbeperkte mailboxen aangemaakt worden.", "quota_exceeded_scope": "Domeinquota overschreden: Voor dit domein kunnen uitsluitend onbeperkte mailboxen aangemaakt worden.",
"session_token": "Token ongeldig: komt niet overeen", "session_token": "Token ongeldig: komt niet overeen",
"session_ua": "Token ongeldig: gebruikersagentvalidatie mislukt" "session_ua": "Token ongeldig: gebruikersagentvalidatie mislukt",
"is_not_primary_alias": ""
}, },
"datatables": { "datatables": {
"emptyTable": "Geen data beschikbaar in tabel", "emptyTable": "Geen data beschikbaar in tabel",
@@ -1165,6 +1295,15 @@
"loadingRecords": "Laden...", "loadingRecords": "Laden...",
"processing": "Wachten alstublieft..", "processing": "Wachten alstublieft..",
"search": "Zoeken:", "search": "Zoeken:",
"zeroRecords": "Geen overeenkomsten gevonden" "zeroRecords": "Geen overeenkomsten gevonden",
"infoPostFix": "",
"infoFiltered": ""
},
"ratelimit": {
"disabled": "",
"second": "",
"minute": "",
"hour": "",
"day": ""
} }
} }

View File

@@ -2,7 +2,33 @@
"acl": { "acl": {
"sogo_profile_reset": "Usuń profil SOGo (webmail)", "sogo_profile_reset": "Usuń profil SOGo (webmail)",
"syncjobs": "Polecenie synchronizacji", "syncjobs": "Polecenie synchronizacji",
"alias_domains": "Dodaj aliasy domen" "alias_domains": "Dodaj aliasy domen",
"quarantine_notification": "",
"ratelimit": "",
"recipient_maps": "",
"smtp_ip_access": "",
"sogo_access": "",
"spam_alias": "",
"spam_policy": "",
"spam_score": "",
"tls_policy": "",
"unlimited_quota": "",
"app_passwds": "",
"bcc_maps": "",
"delimiter_action": "",
"domain_desc": "",
"domain_relayhost": "",
"eas_reset": "",
"extend_sender_acl": "",
"filters": "",
"login_as": "",
"mailbox_relayhost": "",
"prohibited": "",
"protocol_access": "",
"quarantine": "",
"quarantine_attachments": "",
"quarantine_category": "",
"pushover": ""
}, },
"add": { "add": {
"active": "Aktywny", "active": "Aktywny",
@@ -43,7 +69,46 @@
"target_address": "Adresy Idź do:", "target_address": "Adresy Idź do:",
"target_address_info": "<small> Pełny/e adres/y email (oddzielone przecinkami).</small>", "target_address_info": "<small> Pełny/e adres/y email (oddzielone przecinkami).</small>",
"target_domain": "Domena docelowa:", "target_domain": "Domena docelowa:",
"username": "Nazwa użytkownika" "username": "Nazwa użytkownika",
"dry": "",
"add_domain_only": "",
"automap": "",
"bcc_dest_format": "",
"comment_info": "",
"custom_params": "",
"custom_params_hint": "",
"delete2": "",
"disable_login": "",
"domain_matches_hostname": "",
"destination": "",
"sieve_desc": "",
"sieve_type": "",
"skipcrossduplicates": "",
"subscribeall": "",
"tags": "",
"timeout1": "",
"gal": "",
"gal_info": "",
"goto_ham": "",
"goto_null": "",
"goto_spam": "",
"inactive": "",
"mailbox_quota_def": "",
"private_comment": "",
"public_comment": "",
"relay_transport_info": "",
"timeout2": "",
"validate": "",
"relay_unknown_only": "",
"relayhost_wrapped_tls_info": "",
"validation_success": "",
"activate_filter_warn": "",
"add_domain_restart": "",
"app_name": "",
"generate": "",
"nexthop": "",
"app_password": "",
"app_passwd_protocols": ""
}, },
"admin": { "admin": {
"access": "Dostęp", "access": "Dostęp",
@@ -99,7 +164,194 @@
"spamfilter": "Filtr spamu", "spamfilter": "Filtr spamu",
"time": "Czas", "time": "Czas",
"unchanged_if_empty": "W przypadku braku zmian, nie wypełniaj", "unchanged_if_empty": "W przypadku braku zmian, nie wypełniaj",
"username": "Nazwa użytkownika" "username": "Nazwa użytkownika",
"oauth2_redirect_uri": "",
"oauth2_renew_secret": "",
"oauth2_revoke_tokens": "",
"rspamd_global_filters_regex": "",
"ui_header_announcement_type_warning": "",
"logo_normal_label": "",
"logo_dark_label": "",
"rate_name": "",
"ui_texts": "",
"unban_pending": "",
"f2b_ban_time_increment": "",
"f2b_max_ban_time": "",
"relayhosts_hint": "",
"copy_to_clipboard": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"in_use_by": "",
"include_exclude": "",
"include_exclude_info": "",
"includes": "",
"is_mx_based": "",
"nexthop": "",
"no": "",
"no_active_bans": "",
"no_new_rows": "",
"oauth2_apps": "",
"oauth2_add_client": "",
"oauth2_client_id": "",
"oauth2_client_secret": "",
"oauth2_info": "",
"optional": "",
"options": "",
"password_length": "",
"password_policy": "",
"password_policy_chars": "",
"password_policy_length": "",
"quarantine_notification_html": "",
"quarantine_notification_subject": "",
"quarantine_redirect": "",
"quarantine_release_format": "",
"quarantine_release_format_att": "",
"quarantine_release_format_raw": "",
"quarantine_retention_size": "",
"quota_notification_html": "",
"quota_notification_sender": "",
"quota_notification_subject": "",
"quota_notifications": "",
"quota_notifications_info": "",
"quota_notifications_vars": "",
"queue_unban": "",
"recipients": "",
"regen_api_key": "",
"relay_rcpt": "",
"relay_run": "",
"relayhosts": "",
"remove_row": "",
"reset_default": "",
"reset_limit": "",
"rsetting_add_rule": "",
"rsetting_content": "",
"rsetting_desc": "",
"rsetting_no_selection": "",
"rsetting_none": "",
"rsettings_insert_preset": "",
"rsettings_preset_1": "",
"rsettings_preset_2": "",
"rsettings_preset_3": "",
"rsettings_preset_4": "",
"rspamd_com_settings": "",
"rspamd_global_filters": "",
"rspamd_global_filters_agree": "",
"rspamd_global_filters_info": "",
"rspamd_settings_map": "",
"sal_level": "",
"send": "",
"sender": "",
"service": "",
"service_id": "",
"subject": "",
"success": "",
"sys_mails": "",
"text": "",
"title": "",
"ui_header_announcement_type": "",
"ui_header_announcement_type_danger": "",
"ui_header_announcement_type_info": "",
"validate_license_now": "",
"verify": "",
"yes": "",
"allowed_methods": "",
"allowed_origins": "",
"cors_settings": "",
"customize": "",
"credentials_transport_warning": "",
"destination": "",
"dkim_domains_selector": "",
"hash_remove_info": "",
"html": "",
"message_size": "",
"dkim_domains_wo_keys": "",
"dkim_from_title": "",
"dkim_overwrite_key": "",
"excludes": "",
"f2b_blacklist": "",
"f2b_filter": "",
"f2b_list_info": "",
"f2b_netban_ipv4": "",
"f2b_netban_ipv6": "",
"f2b_regex_info": "",
"from": "",
"generate": "",
"guid": "",
"guid_and_license": "",
"help_text": "",
"dkim_to": "",
"dkim_to_title": "",
"domain_admin": "",
"domain_s": "",
"duplicate": "",
"duplicate_dkim": "",
"ip_check": "",
"ip_check_disabled": "",
"ip_check_opt_in": "",
"last_applied": "",
"merged_vars_hint": "",
"license_info": "",
"link": "",
"login_time": "",
"logo_info": "",
"main_name": "",
"password_policy_lowerupper": "",
"password_policy_numbers": "",
"password_policy_special_chars": "",
"quarantine_bcc": "",
"quarantine_exclude_domains": "",
"quarantine_max_age": "",
"quarantine_max_score": "",
"quarantine_max_size": "",
"quarantine_notification_sender": "",
"title_name": "",
"to_top": "",
"transport_dest_format": "",
"transport_maps": "",
"transport_test_rcpt_info": "",
"transports_hint": "",
"ui_header_announcement": "",
"ui_header_announcement_active": "",
"ui_header_announcement_content": "",
"ui_header_announcement_help": "",
"ui_header_announcement_select": "",
"upload": "",
"regex_maps": "",
"relay_from": "",
"dkim_from": "",
"activate_api": "",
"activate_send": "",
"active_rspamd_settings_map": "",
"add_admin": "",
"add_relayhost": "",
"add_relayhost_hint": "",
"add_row": "",
"add_settings_rule": "",
"add_transport": "",
"add_transports_hint": "",
"customer_id": "",
"additional_rows": "",
"admins": "",
"admins_ldap": "",
"advanced_settings": "",
"api_allow_from": "",
"api_info": "",
"api_key": "",
"api_read_only": "",
"api_read_write": "",
"api_skip_ip_check": "",
"app_links": "",
"app_name": "",
"apps_name": "",
"arrival_time": "",
"authed_user": "",
"ays": "",
"ban_list_info": "",
"change_logo": "",
"convert_html_to_text": "",
"routing": "",
"ui_footer": "",
"lookup_mx": ""
}, },
"danger": { "danger": {
"access_denied": "Odmowa dostępu lub nieprawidłowe dane w formularzu", "access_denied": "Odmowa dostępu lub nieprawidłowe dane w formularzu",
@@ -145,7 +397,92 @@
"target_domain_invalid": "Domena Idź do jest nieprawidłowa", "target_domain_invalid": "Domena Idź do jest nieprawidłowa",
"targetd_not_found": "Nie znaleziono domeny docelowej", "targetd_not_found": "Nie znaleziono domeny docelowej",
"username_invalid": "Nie można użyć nazwy użytkownika", "username_invalid": "Nie można użyć nazwy użytkownika",
"validity_missing": "Proszę wyznaczyć termin ważności" "validity_missing": "Proszę wyznaczyć termin ważności",
"webauthn_authenticator_failed": "",
"app_name_empty": "",
"app_passwd_id_invalid": "",
"bcc_empty": "",
"bcc_exists": "",
"bcc_must_be_email": "",
"cors_invalid_method": "",
"cors_invalid_origin": "",
"mysql_error": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": "",
"invalid_filter_type": "",
"invalid_host": "",
"invalid_mime_type": "",
"invalid_nexthop": "",
"invalid_nexthop_authenticated": "",
"invalid_recipient_map_new": "",
"invalid_recipient_map_old": "",
"mailbox_defquota_exceeds_mailbox_maxquota": "",
"map_content_empty": "",
"network_host_invalid": "",
"next_hop_interferes": "",
"next_hop_interferes_any": "",
"nginx_reload_failed": "",
"no_user_defined": "",
"tls_policy_map_entry_exists": "",
"tls_policy_map_parameter_invalid": "",
"totp_verification_failed": "",
"transport_dest_exists": "",
"webauthn_verification_failed": "",
"webauthn_publickey_failed": "",
"webauthn_username_failed": "",
"unknown": "",
"value_missing": "",
"yotp_verification_failed": "",
"unknown_tfa_method": "",
"unlimited_quota_acl": "",
"comment_too_long": "",
"defquota_empty": "",
"demo_mode_enabled": "",
"dkim_domain_or_sel_exists": "",
"domain_cannot_match_hostname": "",
"extended_sender_acl_denied": "",
"from_invalid": "",
"global_filter_write_error": "",
"global_map_invalid": "",
"global_map_write_error": "",
"ham_learn_error": "",
"imagick_exception": "",
"img_invalid": "",
"img_tmp_missing": "",
"invalid_bcc_map_type": "",
"invalid_destination": "",
"private_key_error": "",
"pushover_credentials_missing": "",
"pushover_key": "",
"pushover_token": "",
"recipient_map_entry_exists": "",
"redis_error": "",
"relayhost_invalid": "",
"release_send_failed": "",
"reset_f2b_regex": "",
"rl_timeframe": "",
"rspamd_ui_pw_length": "",
"set_acl_failed": "",
"settings_map_invalid": "",
"sieve_error": "",
"spam_learn_error": "",
"subject_empty": "",
"template_exists": "",
"template_id_invalid": "",
"template_name_invalid": "",
"text_empty": "",
"tls_policy_map_dest_invalid": "",
"malformed_username": "",
"extra_acl_invalid": "",
"targetd_relay_domain": "",
"temp_error": "",
"tfa_token_invalid": "",
"script_empty": "",
"ip_list_empty": "",
"extra_acl_invalid_domain": "",
"fido2_verification_failed": "",
"file_open_error": "",
"filter_type": ""
}, },
"edit": { "edit": {
"active": "Aktywny", "active": "Aktywny",
@@ -190,7 +527,93 @@
"target_domain": "Domena docelowa", "target_domain": "Domena docelowa",
"title": "Edytuj obiekt", "title": "Edytuj obiekt",
"unchanged_if_empty": "Jeżli bez zmian, nie wypełniaj", "unchanged_if_empty": "Jeżli bez zmian, nie wypełniaj",
"username": "Nazwa użytkownika" "username": "Nazwa użytkownika",
"comment_info": "",
"created_on": "",
"footer_exclude": "",
"domain_footer_skip_replies": "",
"relay_transport_info": "",
"relay_unknown_only": "",
"scope": "",
"sender_acl_disabled": "",
"sender_acl_info": "",
"sieve_type": "",
"skipcrossduplicates": "",
"sogo_access": "",
"sogo_access_info": "",
"timeout2": "",
"validate_save": "",
"custom_attributes": "",
"domain_footer_info_vars": {
"from_user": "",
"from_addr": "",
"custom": "",
"auth_user": "",
"from_name": "",
"from_domain": ""
},
"domain_footer_plain": "",
"relayhost": "",
"timeout1": "",
"acl": "",
"admin": "",
"advanced_settings": "",
"allow_from_smtp": "",
"bcc_dest_format": "",
"client_id": "",
"client_secret": "",
"domain_footer": "",
"domain_footer_html": "",
"domain_footer_info": "",
"pushover_sender_array": "",
"pushover_sender_regex": "",
"pushover_text": "",
"pushover_title": "",
"ratelimit": "",
"redirect_uri": "",
"sogo_visible": "",
"sogo_visible_info": "",
"spam_alias": "",
"spam_filter": "",
"spam_policy": "",
"spam_score": "",
"sieve_desc": "",
"gal_info": "",
"grant_types": "",
"last_modified": "",
"delete2": "",
"delete_ays": "",
"disable_login": "",
"extended_sender_acl": "",
"extended_sender_acl_info": "",
"force_pw_update": "",
"force_pw_update_info": "",
"mailbox_quota_def": "",
"mailbox_relayhost_info": "",
"mbox_rl_info": "",
"none_inherit": "",
"nexthop": "",
"private_comment": "",
"public_comment": "",
"pushover": "",
"pushover_evaluate_x_prio": "",
"pushover_info": "",
"pushover_only_x_prio": "",
"maxbytespersecond": "",
"allow_from_smtp_info": "",
"allowed_protocols": "",
"app_name": "",
"app_passwd": "",
"app_passwd_protocols": "",
"automap": "",
"gal": "",
"generate": "",
"pushover_sound": "",
"pushover_vars": "",
"pushover_verify": "",
"quota_warning_bcc": "",
"quota_warning_bcc_info": "",
"lookup_mx": ""
}, },
"footer": { "footer": {
"cancel": "Anuluj", "cancel": "Anuluj",
@@ -198,7 +621,14 @@
"delete_now": "Usuń teraz", "delete_now": "Usuń teraz",
"delete_these_items": "Czy jesteś pewien, że chcesz usunąć następujące elementy?", "delete_these_items": "Czy jesteś pewien, że chcesz usunąć następujące elementy?",
"loading": "Proszę czekać...", "loading": "Proszę czekać...",
"restart_now": "Uruchom ponownie teraz" "restart_now": "Uruchom ponownie teraz",
"hibp_check": "",
"hibp_nok": "",
"restart_container_info": "",
"restarting_container": "",
"hibp_ok": "",
"nothing_selected": "",
"restart_container": ""
}, },
"header": { "header": {
"administration": "Administrowanie", "administration": "Administrowanie",
@@ -206,16 +636,25 @@
"mailcow_config": "Konfiguracja", "mailcow_config": "Konfiguracja",
"quarantine": "Kwarantanna", "quarantine": "Kwarantanna",
"restart_sogo": "Uruchom ponownie SOGo", "restart_sogo": "Uruchom ponownie SOGo",
"user_settings": "Ustawienia użytkownika" "user_settings": "Ustawienia użytkownika",
"apps": "",
"debug": "",
"mailcow_system": "",
"restart_netfilter": ""
}, },
"info": { "info": {
"no_action": "Żadne działanie nie ma zastosowania" "no_action": "Żadne działanie nie ma zastosowania",
"awaiting_tfa_confirmation": "",
"session_expires": ""
}, },
"login": { "login": {
"delayed": "Logowanie zostało opóźnione o %s sekund.", "delayed": "Logowanie zostało opóźnione o %s sekund.",
"login": "Zaloguj się", "login": "Zaloguj się",
"password": "Hasło", "password": "Hasło",
"username": "Nazwa użytkownika" "username": "Nazwa użytkownika",
"mobileconfig_info": "",
"fido2_webauthn": "",
"other_logins": ""
}, },
"mailbox": { "mailbox": {
"action": "Działanie", "action": "Działanie",
@@ -275,7 +714,122 @@
"tls_enforce_out": "Uruchom TLS wychodzące", "tls_enforce_out": "Uruchom TLS wychodzące",
"toggle_all": "Zaznacz wszystkie", "toggle_all": "Zaznacz wszystkie",
"username": "Nazwa użytkownika", "username": "Nazwa użytkownika",
"weekly": "Co tydzień" "weekly": "Co tydzień",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"add_alias_expand": "",
"add_bcc_entry": "",
"add_filter": "",
"add_recipient_map_entry": "",
"allow_from_smtp": "",
"bcc_info": "",
"bcc_local_dest": "",
"bcc_map": "",
"bcc_map_type": "",
"bcc_maps": "",
"bcc_rcpt_map": "",
"bcc_sender_map": "",
"bcc_to_rcpt": "",
"bcc_to_sender": "",
"bcc_type": "",
"booking_null": "",
"booking_0_short": "",
"booking_custom": "",
"booking_custom_short": "",
"booking_ltnull": "",
"booking_lt0_short": "",
"catch_all": "",
"created_on": "",
"goto_spam": "",
"insert_preset": "",
"last_mail_login": "",
"last_modified": "",
"last_pw_change": "",
"last_run_reset": "",
"mailbox": "",
"mailbox_defaults": "",
"mailbox_defaults_info": "",
"mailbox_defquota": "",
"mailbox_templates": "",
"no": "",
"q_add_header": "",
"q_all": "",
"q_reject": "",
"quarantine_category": "",
"recipient": "",
"recipient_map": "",
"recipient_map_info": "",
"recipient_map_old": "",
"recipient_map_old_info": "",
"recipient_maps": "",
"relay_unknown": "",
"sogo_visible_y": "",
"stats": "",
"status": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EXIT_TLS_FAILURE": "",
"tls_policy_maps_info": "",
"tls_policy_maps_long": "",
"waiting": "",
"yes": "",
"sieve_preset_8": "",
"add_template": "",
"add_tls_policy_map": "",
"address_rewriting": "",
"allow_from_smtp_info": "",
"table_size": "",
"alias_domain_alias_hint": "",
"disable_login": "",
"disable_x": "",
"dkim_domains_selector": "",
"domain_templates": "",
"sieve_preset_3": "",
"sieve_preset_5": "",
"allowed_protocols": "",
"bcc": "",
"bcc_destination": "",
"bcc_destinations": "",
"enable_x": "",
"filters": "",
"force_pw_update": "",
"gal": "",
"goto_ham": "",
"open_logs": "",
"owner": "",
"private_comment": "",
"public_comment": "",
"recipient_map_new": "",
"recipient_map_new_info": "",
"running": "",
"sender": "",
"set_postfilter": "",
"set_prefilter": "",
"sieve_info": "",
"sieve_preset_1": "",
"sieve_preset_2": "",
"sieve_preset_6": "",
"sieve_preset_7": "",
"sieve_preset_header": "",
"sogo_visible": "",
"sogo_visible_n": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"table_size_show_n": "",
"templates": "",
"template": "",
"tls_map_parameters_info": "",
"tls_map_policy": "",
"tls_policy_maps": "",
"tls_policy_maps_enforced_tls": "",
"sieve_preset_4": "",
"alias_domain_backupmx": "",
"all_domains": "",
"tls_map_dest": "",
"tls_map_dest_info": "",
"tls_map_parameters": ""
}, },
"quarantine": { "quarantine": {
"action": "Działanie", "action": "Działanie",
@@ -283,10 +837,68 @@
"quarantine": "Kwarantanna", "quarantine": "Kwarantanna",
"quick_actions": "Szybkie działania", "quick_actions": "Szybkie działania",
"remove": "Usuń", "remove": "Usuń",
"toggle_all": "Zaznacz wszystkie" "toggle_all": "Zaznacz wszystkie",
"deliver_inbox": "",
"disabled_by_config": "",
"download_eml": "",
"high_danger": "",
"neutral_danger": "",
"info": "",
"junk_folder": "",
"learn_spam_delete": "",
"low_danger": "",
"medium_danger": "",
"notified": "",
"rcpt": "",
"atts": "",
"check_hash": "",
"confirm": "",
"confirm_delete": "",
"danger": "",
"qhandler_success": "",
"qid": "",
"qinfo": "",
"quick_delete_link": "",
"quick_info_link": "",
"quick_release_link": "",
"received": "",
"recipients": "",
"refresh": "",
"rejected": "",
"release": "",
"release_body": "",
"rspamd_result": "",
"sender": "",
"sender_header": "",
"show_item": "",
"spam": "",
"spam_score": "",
"subj": "",
"table_size": "",
"table_size_show_n": "",
"text_from_html_content": "",
"text_plain_content": "",
"type": "",
"settings_info": "",
"release_subject": "",
"rewrite_subject": "",
"qitem": ""
}, },
"queue": { "queue": {
"queue_manager": "Queue Manager" "queue_manager": "Queue Manager",
"hold_mail_legend": "",
"delete": "",
"flush": "",
"info": "",
"legend": "",
"ays": "",
"deliver_mail": "",
"deliver_mail_legend": "",
"hold_mail": "",
"show_message": "",
"unban": "",
"unhold_mail": "",
"unhold_mail_legend": ""
}, },
"start": { "start": {
"help": "Pokaż/Ukryj panel pomocy", "help": "Pokaż/Ukryj panel pomocy",
@@ -322,7 +934,63 @@
"object_modified": "Zapisano zmiany w obiekcie %s", "object_modified": "Zapisano zmiany w obiekcie %s",
"resource_added": "Dodano śródło %s", "resource_added": "Dodano śródło %s",
"resource_modified": "Zapisano zmiany w skrzynce %s", "resource_modified": "Zapisano zmiany w skrzynce %s",
"resource_removed": "Usunięto zasób %s" "resource_removed": "Usunięto zasób %s",
"hash_deleted": "",
"template_removed": "",
"tls_policy_map_entry_saved": "",
"ui_texts": "",
"upload_success": "",
"verified_fido2_login": "",
"verified_webauthn_login": "",
"verified_totp_login": "",
"verified_yotp_login": "",
"tls_policy_map_entry_deleted": "",
"acl_saved": "",
"admin_added": "",
"admin_api_modified": "",
"admin_removed": "",
"app_links": "",
"app_passwd_added": "",
"app_passwd_removed": "",
"bcc_deleted": "",
"bcc_edited": "",
"bcc_saved": "",
"cors_headers_edited": "",
"db_init_complete": "",
"delete_filter": "",
"delete_filters": "",
"deleted_syncjob": "",
"deleted_syncjobs": "",
"domain_add_dkim_available": "",
"dkim_duplicated": "",
"domain_footer_modified": "",
"f2b_banlist_refreshed": "",
"ip_check_opt_in_modified": "",
"item_released": "",
"items_released": "",
"learned_ham": "",
"license_modified": "",
"nginx_reloaded": "",
"password_policy_saved": "",
"pushover_settings_edited": "",
"qlearn_spam": "",
"queue_command_success": "",
"recipient_map_entry_deleted": "",
"recipient_map_entry_saved": "",
"relayhost_added": "",
"relayhost_removed": "",
"reset_main_logo": "",
"rl_saved": "",
"rspamd_ui_pw_set": "",
"saved_settings": "",
"settings_map_added": "",
"settings_map_removed": "",
"sogo_profile_reset": "",
"template_added": "",
"template_modified": "",
"dovecot_restart_success": "",
"global_filter_written": "",
"logged_in_as": ""
}, },
"tfa": { "tfa": {
"api_register": "%s używa Yubico Cloud API. Proszę pobrać klucz API dla Twojego klucza <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">here</a>", "api_register": "%s używa Yubico Cloud API. Proszę pobrać klucz API dla Twojego klucza <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">here</a>",
@@ -342,7 +1010,15 @@
"webauthn": "Uwierzytelnianie WebAuthn", "webauthn": "Uwierzytelnianie WebAuthn",
"waiting_usb_auth": "<i>Czekam na urządzenie USB...</i><br><br>Wciśnij teraz przycisk na urządzeniu WebAuthn USB.", "waiting_usb_auth": "<i>Czekam na urządzenie USB...</i><br><br>Wciśnij teraz przycisk na urządzeniu WebAuthn USB.",
"waiting_usb_register": "<i> Czekam na urządzenie USB...</i><br><br>Wprowadź swoje hasło powyżej i potwierdź rejestrację WebAuthn przez naciśnięcie przycisku na urządzeniu WebAuthn USB.", "waiting_usb_register": "<i> Czekam na urządzenie USB...</i><br><br>Wprowadź swoje hasło powyżej i potwierdź rejestrację WebAuthn przez naciśnięcie przycisku na urządzeniu WebAuthn USB.",
"yubi_otp": "Uwierzytelnianie Yubico OTP" "yubi_otp": "Uwierzytelnianie Yubico OTP",
"authenticators": "",
"init_webauthn": "",
"reload_retry": "",
"start_webauthn_validation": "",
"tfa_token_invalid": "",
"u2f_deprecated": "",
"u2f_deprecated_important": "",
"error_code": ""
}, },
"user": { "user": {
"action": "Działanie", "action": "Działanie",
@@ -429,6 +1105,205 @@
"username": "Nazwa użytkownika", "username": "Nazwa użytkownika",
"week": "Tydzień", "week": "Tydzień",
"weekly": "Co tydzień", "weekly": "Co tydzień",
"weeks": "Tygodnie" "weeks": "Tygodnie",
"last_ui_login": "",
"loading": "",
"spam_score_reset": "",
"status": "",
"change_password_hint_app_passwords": "",
"verify": "",
"email": "",
"login_history": "",
"mailbox": "",
"mailbox_general": "",
"mailbox_settings": "",
"month": "",
"months": "",
"app_name": "",
"apple_connection_profile": "",
"from": "",
"generate": "",
"pushover_sound": "",
"value": "",
"quarantine_category_info": "",
"running": "",
"pushover_sender_regex": "",
"pushover_text": "",
"pushover_title": "",
"pushover_vars": "",
"pushover_verify": "",
"title": "",
"advanced_settings": "",
"app_hint": "",
"allowed_protocols": "",
"apple_connection_profile_complete": "",
"apple_connection_profile_mailonly": "",
"apple_connection_profile_with_app_password": "",
"attribute": "",
"clear_recent_successful_connections": "",
"created_on": "",
"direct_protocol_access": "",
"email_and_dav": "",
"fido2_webauthn": "",
"last_mail_login": "",
"last_pw_change": "",
"no_last_login": "",
"open_logs": "",
"open_webmail_sso": "",
"password": "",
"password_repeat": "",
"pushover_evaluate_x_prio": "",
"pushover_info": "",
"pushover_only_x_prio": "",
"pushover_sender_array": "",
"q_add_header": "",
"q_all": "",
"q_reject": "",
"quarantine_category": "",
"quarantine_notification_info": "",
"recent_successful_connections": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"waiting": "",
"with_app_password": "",
"year": "",
"years": "",
"empty": "",
"save": "",
"sender_acl_disabled": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"expire_in": "",
"app_passwds": "",
"text": "",
"create_app_passwd": "",
"delete_ays": ""
},
"debug": {
"size": "",
"started_at": "",
"started_on": "",
"static_logs": "",
"show_ip": "",
"solr_dead": "",
"solr_status": "",
"no_update_available": "",
"update_failed": "",
"architecture": "",
"chart_this_server": "",
"container_disabled": "",
"log_info": "",
"online_users": "",
"restart_container": "",
"success": "",
"system_containers": "",
"timezone": "",
"uptime": "",
"update_available": "",
"username": "",
"wip": "",
"containers_info": "",
"container_running": "",
"in_memory_logs": "",
"jvm_memory_solr": "",
"last_modified": "",
"logs": "",
"memory": "",
"service": "",
"container_stopped": "",
"cores": "",
"current_time": "",
"disk_usage": "",
"docs": "",
"error_show_ip": "",
"external_logs": "",
"history_all_servers": "",
"login_time": ""
},
"oauth2": {
"deny": "",
"access_denied": "",
"authorize_app": "",
"permit": "",
"profile_desc": "",
"scope_ask_permission": "",
"profile": ""
},
"fido2": {
"confirm": "",
"fido2_auth": "",
"fido2_success": "",
"fido2_validation_failed": "",
"fn": "",
"known_ids": "",
"none": "",
"register_status": "",
"set_fido2": "",
"set_fido2_touchid": "",
"set_fn": "",
"start_fido2_validation": "",
"rename": ""
},
"warning": {
"quota_exceeded_scope": "",
"session_token": "",
"session_ua": "",
"no_active_admin": "",
"cannot_delete_self": "",
"domain_added_sogo_failed": "",
"dovecot_restart_failed": "",
"fuzzy_learn_error": "",
"hash_not_found": "",
"ip_invalid": "",
"is_not_primary_alias": ""
},
"datatables": {
"paginate": {
"next": "",
"first": "",
"last": "",
"previous": ""
},
"collapse_all": "",
"emptyTable": "",
"infoEmpty": "",
"infoFiltered": "",
"thousands": "",
"lengthMenu": "",
"loadingRecords": "",
"processing": "",
"search": "",
"zeroRecords": "",
"aria": {
"sortAscending": "",
"sortDescending": ""
},
"expand_all": "",
"info": "",
"decimal": "",
"infoPostFix": ""
},
"diagnostics": {
"dns_records_24hours": "",
"dns_records_data": "",
"dns_records_status": "",
"dns_records_type": "",
"optional": "",
"dns_records_docs": "",
"dns_records": "",
"cname_from_a": "",
"dns_records_name": ""
},
"ratelimit": {
"disabled": "",
"second": "",
"minute": "",
"hour": "",
"day": ""
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -107,7 +107,8 @@
"username": "Nume de utilizator", "username": "Nume de utilizator",
"validate": "Validează", "validate": "Validează",
"validation_success": "Validat cu succes", "validation_success": "Validat cu succes",
"tags": "Etichete" "tags": "Etichete",
"dry": ""
}, },
"admin": { "admin": {
"access": "Acces", "access": "Acces",
@@ -343,7 +344,14 @@
"ip_check_disabled": "Verificarea IP este dezactivată. Puteţi activa la<br> <strong>Sistem > Configuraţie > Opţiuni > Personalizează</strong>", "ip_check_disabled": "Verificarea IP este dezactivată. Puteţi activa la<br> <strong>Sistem > Configuraţie > Opţiuni > Personalizează</strong>",
"ip_check_opt_in": "Alegeţi să folosiţi servicile <strong>ipv4.mailcow.email</strong> şi <strong>ipv6.mailcow.email</strong> să rezolvaţi addrese IP externale.", "ip_check_opt_in": "Alegeţi să folosiţi servicile <strong>ipv4.mailcow.email</strong> şi <strong>ipv6.mailcow.email</strong> să rezolvaţi addrese IP externale.",
"options": "Opţiuni", "options": "Opţiuni",
"queue_unban": "retractează interzicere" "queue_unban": "retractează interzicere",
"logo_normal_label": "",
"logo_dark_label": "",
"allowed_methods": "",
"copy_to_clipboard": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"allowed_origins": ""
}, },
"danger": { "danger": {
"access_denied": "Accesul a fost respins sau datele formularului sunt invalide", "access_denied": "Accesul a fost respins sau datele formularului sunt invalide",
@@ -471,7 +479,10 @@
"extended_sender_acl_denied": "lipseşte ACL pentru setarea adrese externe", "extended_sender_acl_denied": "lipseşte ACL pentru setarea adrese externe",
"template_exists": "Şablon %s deja există", "template_exists": "Şablon %s deja există",
"template_id_invalid": "Şablon ID %s este invalid", "template_id_invalid": "Şablon ID %s este invalid",
"template_name_invalid": "Nume de şablon este invalid" "template_name_invalid": "Nume de şablon este invalid",
"cors_invalid_origin": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": ""
}, },
"debug": { "debug": {
"chart_this_server": "Grafic (acest server)", "chart_this_server": "Grafic (acest server)",
@@ -498,7 +509,21 @@
"success": "Succes", "success": "Succes",
"system_containers": "Sistem și Containere", "system_containers": "Sistem și Containere",
"uptime": "Timp de funcționare", "uptime": "Timp de funcționare",
"username": "Utilizator" "username": "Utilizator",
"architecture": "",
"container_running": "",
"show_ip": "",
"wip": "",
"error_show_ip": "",
"memory": "",
"timezone": "",
"update_available": "",
"no_update_available": "",
"update_failed": "",
"container_disabled": "",
"container_stopped": "",
"cores": "",
"current_time": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Valoare derivată din înregistrarea A/AAAA. Acest lucru este acceptat atâta timp cât înregistrarea indică resursele corecte.", "cname_from_a": "Valoare derivată din înregistrarea A/AAAA. Acest lucru este acceptat atâta timp cât înregistrarea indică resursele corecte.",
@@ -624,7 +649,23 @@
"title": "Editează obiectul", "title": "Editează obiectul",
"unchanged_if_empty": "Dacă rămâne neschimbat se lasă necompletat", "unchanged_if_empty": "Dacă rămâne neschimbat se lasă necompletat",
"username": "Nume de utilizator", "username": "Nume de utilizator",
"validate_save": "Validează și salvează" "validate_save": "Validează și salvează",
"footer_exclude": "",
"domain_footer_skip_replies": "",
"custom_attributes": "",
"domain_footer_info_vars": {
"custom": "",
"auth_user": "",
"from_user": "",
"from_name": "",
"from_addr": "",
"from_domain": ""
},
"domain_footer": "",
"domain_footer_html": "",
"domain_footer_info": "",
"domain_footer_plain": "",
"pushover_sound": ""
}, },
"fido2": { "fido2": {
"set_fn": "Setați un nume prietenos", "set_fn": "Setați un nume prietenos",
@@ -665,7 +706,8 @@
"quarantine": "Carantină", "quarantine": "Carantină",
"restart_netfilter": "Repornire netfilter", "restart_netfilter": "Repornire netfilter",
"restart_sogo": "Repornire SOGo", "restart_sogo": "Repornire SOGo",
"user_settings": "Setări utilizator" "user_settings": "Setări utilizator",
"mailcow_system": ""
}, },
"info": { "info": {
"awaiting_tfa_confirmation": "În așteptarea confirmării TFA", "awaiting_tfa_confirmation": "În așteptarea confirmării TFA",
@@ -848,7 +890,13 @@
"username": "Nume de utilizator", "username": "Nume de utilizator",
"waiting": "Aşteptare", "waiting": "Aşteptare",
"weekly": "Săptămânal", "weekly": "Săptămânal",
"yes": "&#10003;" "yes": "&#10003;",
"mailbox_templates": "",
"template": "",
"templates": "",
"add_template": "",
"domain_templates": "",
"relay_unknown": ""
}, },
"oauth2": { "oauth2": {
"access_denied": "Conectează-te ca proprietar al cutiei poștale pentru a acorda acces prin OAuth2.", "access_denied": "Conectează-te ca proprietar al cutiei poștale pentru a acorda acces prin OAuth2.",
@@ -913,7 +961,20 @@
"toggle_all": "Comută toate" "toggle_all": "Comută toate"
}, },
"queue": { "queue": {
"queue_manager": "Manager de coadă" "queue_manager": "Manager de coadă",
"deliver_mail_legend": "",
"hold_mail": "",
"hold_mail_legend": "",
"show_message": "",
"unban": "",
"unhold_mail": "",
"unhold_mail_legend": "",
"delete": "",
"flush": "",
"ays": "",
"deliver_mail": "",
"info": "",
"legend": ""
}, },
"ratelimit": { "ratelimit": {
"disabled": "Dezactivat", "disabled": "Dezactivat",
@@ -1005,7 +1066,14 @@
"verified_webauthn_login": "Autentificarea WebAuthn verificată", "verified_webauthn_login": "Autentificarea WebAuthn verificată",
"verified_fido2_login": "Conectare FIDO2 verificată", "verified_fido2_login": "Conectare FIDO2 verificată",
"verified_yotp_login": "Autentificarea Yubico OTP verificată", "verified_yotp_login": "Autentificarea Yubico OTP verificată",
"domain_add_dkim_available": "O cheie DKIM deja a existat" "domain_add_dkim_available": "O cheie DKIM deja a existat",
"domain_footer_modified": "",
"f2b_banlist_refreshed": "",
"ip_check_opt_in_modified": "",
"cors_headers_edited": "",
"template_added": "",
"template_modified": "",
"template_removed": ""
}, },
"tfa": { "tfa": {
"api_register": "%s utilizează API-ul Yubico Cloud. Obțineți o cheie API pentru cheia dvs. de <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">aici</a>", "api_register": "%s utilizează API-ul Yubico Cloud. Obțineți o cheie API pentru cheia dvs. de <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">aici</a>",
@@ -1030,7 +1098,10 @@
"webauthn": "Autentificare WebAuthn", "webauthn": "Autentificare WebAuthn",
"waiting_usb_auth": "<i>În așteptarea dispozitivului USB...</i><br><br>Apasă acum butonul de pe dispozitivul tău USB WebAuthn.", "waiting_usb_auth": "<i>În așteptarea dispozitivului USB...</i><br><br>Apasă acum butonul de pe dispozitivul tău USB WebAuthn.",
"waiting_usb_register": "<i>În așteptarea dispozitivului USB...</i><br><br>Introdu parola ta mai sus și confirmă înregistrarea ta WebAuthn atingând butonul de pe dispozitivul tău USB WebAuthn.", "waiting_usb_register": "<i>În așteptarea dispozitivului USB...</i><br><br>Introdu parola ta mai sus și confirmă înregistrarea ta WebAuthn atingând butonul de pe dispozitivul tău USB WebAuthn.",
"yubi_otp": "Autentificare Yubico OTP" "yubi_otp": "Autentificare Yubico OTP",
"authenticators": "",
"u2f_deprecated_important": "",
"u2f_deprecated": ""
}, },
"user": { "user": {
"action": "Acțiune", "action": "Acțiune",
@@ -1191,7 +1262,10 @@
"weeks": "săptămâni", "weeks": "săptămâni",
"with_app_password": "cu parola aplicație", "with_app_password": "cu parola aplicație",
"year": "an", "year": "an",
"years": "ani" "years": "ani",
"attribute": "",
"pushover_sound": "",
"value": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "Nu se poate șterge utilizatorul conectat", "cannot_delete_self": "Nu se poate șterge utilizatorul conectat",
@@ -1208,6 +1282,28 @@
}, },
"datatables": { "datatables": {
"expand_all": "Expandează tot", "expand_all": "Expandează tot",
"decimal": "," "decimal": ",",
"infoPostFix": "",
"emptyTable": "",
"thousands": "",
"info": "",
"infoEmpty": "",
"infoFiltered": "",
"lengthMenu": "",
"loadingRecords": "",
"processing": "",
"search": "",
"zeroRecords": "",
"paginate": {
"first": "",
"last": "",
"next": "",
"previous": ""
},
"aria": {
"sortAscending": "",
"sortDescending": ""
},
"collapse_all": ""
} }
} }

View File

@@ -348,7 +348,10 @@
"ip_check_opt_in": "Согласие на использование сторонних служб <strong>ipv4.mailcow.email</strong> и <strong>ipv6.mailcow.email</strong> для разрешения внешних IP-адресов.", "ip_check_opt_in": "Согласие на использование сторонних служб <strong>ipv4.mailcow.email</strong> и <strong>ipv6.mailcow.email</strong> для разрешения внешних IP-адресов.",
"f2b_manage_external": "Внешнее управление Fail2Ban", "f2b_manage_external": "Внешнее управление Fail2Ban",
"f2b_manage_external_info": "Fail2ban по-прежнему будет вести банлист, но не будет активно устанавливать правила для блокировки трафика. Используйте сгенерированный ниже банлист для внешнего блокирования трафика.", "f2b_manage_external_info": "Fail2ban по-прежнему будет вести банлист, но не будет активно устанавливать правила для блокировки трафика. Используйте сгенерированный ниже банлист для внешнего блокирования трафика.",
"copy_to_clipboard": "Текст скопирован в буфер обмена!" "copy_to_clipboard": "Текст скопирован в буфер обмена!",
"logo_normal_label": "",
"logo_dark_label": "",
"options": ""
}, },
"danger": { "danger": {
"access_denied": "Доступ запрещён, или указаны неверные данные", "access_denied": "Доступ запрещён, или указаны неверные данные",
@@ -470,7 +473,16 @@
"yotp_verification_failed": "Ошибка валидации Yubico OTP: %s", "yotp_verification_failed": "Ошибка валидации Yubico OTP: %s",
"cors_invalid_method": "Указан недопустимый метод разрешения", "cors_invalid_method": "Указан недопустимый метод разрешения",
"demo_mode_enabled": "Демонстрационный режим включен", "demo_mode_enabled": "Демонстрационный режим включен",
"cors_invalid_origin": "Указан неверный Allow-Origin" "cors_invalid_origin": "Указан неверный Allow-Origin",
"webauthn_authenticator_failed": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": "",
"webauthn_publickey_failed": "",
"webauthn_username_failed": "",
"extended_sender_acl_denied": "",
"template_exists": "",
"template_id_invalid": "",
"template_name_invalid": ""
}, },
"debug": { "debug": {
"chart_this_server": "Диаграмма (текущий сервер)", "chart_this_server": "Диаграмма (текущий сервер)",
@@ -497,7 +509,21 @@
"success": "Успех", "success": "Успех",
"system_containers": "Система и контейнеры", "system_containers": "Система и контейнеры",
"uptime": "Время работы", "uptime": "Время работы",
"username": "Имя пользователя" "username": "Имя пользователя",
"wip": "",
"architecture": "",
"container_running": "",
"container_disabled": "",
"container_stopped": "",
"cores": "",
"current_time": "",
"error_show_ip": "",
"memory": "",
"show_ip": "",
"timezone": "",
"update_available": "",
"no_update_available": "",
"update_failed": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Значение, полученное из записи A/AAAA. Это поддерживается до тех пор, пока запись указывает на правильный ресурс.", "cname_from_a": "Значение, полученное из записи A/AAAA. Это поддерживается до тех пор, пока запись указывает на правильный ресурс.",
@@ -636,7 +662,10 @@
"domain_footer": "Нижний колонтитул домена", "domain_footer": "Нижний колонтитул домена",
"domain_footer_html": "HTML нижний колонтитул", "domain_footer_html": "HTML нижний колонтитул",
"domain_footer_plain": "ПРОСТОЙ нижний колонтитул", "domain_footer_plain": "ПРОСТОЙ нижний колонтитул",
"custom_attributes": "Пользовательские атрибуты" "custom_attributes": "Пользовательские атрибуты",
"domain_footer_skip_replies": "",
"pushover_sound": "",
"sogo_access": ""
}, },
"fido2": { "fido2": {
"confirm": "Подтвердить", "confirm": "Подтвердить",
@@ -677,7 +706,8 @@
"quarantine": "Карантин", "quarantine": "Карантин",
"restart_netfilter": "Перезапустить netfilter", "restart_netfilter": "Перезапустить netfilter",
"restart_sogo": "Перезапустить SOGo", "restart_sogo": "Перезапустить SOGo",
"user_settings": "Настройки пользователя" "user_settings": "Настройки пользователя",
"mailcow_system": ""
}, },
"info": { "info": {
"awaiting_tfa_confirmation": "В ожидании подтверждения TFA", "awaiting_tfa_confirmation": "В ожидании подтверждения TFA",
@@ -860,7 +890,13 @@
"username": "Имя пользователя", "username": "Имя пользователя",
"waiting": "В ожидании", "waiting": "В ожидании",
"weekly": "Раз в неделю", "weekly": "Раз в неделю",
"yes": "&#10003;" "yes": "&#10003;",
"domain_templates": "",
"add_template": "",
"mailbox_templates": "",
"relay_unknown": "",
"templates": "",
"template": ""
}, },
"oauth2": { "oauth2": {
"access_denied": "Пожалуйста, войдите в систему как владелец почтового аккаунта, чтобы получить доступ через OAuth2.", "access_denied": "Пожалуйста, войдите в систему как владелец почтового аккаунта, чтобы получить доступ через OAuth2.",
@@ -925,7 +961,20 @@
"type": "Тип" "type": "Тип"
}, },
"queue": { "queue": {
"queue_manager": "Очередь на отправку" "queue_manager": "Очередь на отправку",
"delete": "",
"info": "",
"unhold_mail_legend": "",
"flush": "",
"legend": "",
"ays": "",
"deliver_mail": "",
"deliver_mail_legend": "",
"hold_mail": "",
"hold_mail_legend": "",
"show_message": "",
"unban": "",
"unhold_mail": ""
}, },
"ratelimit": { "ratelimit": {
"disabled": "Отключен", "disabled": "Отключен",
@@ -1019,7 +1068,12 @@
"verified_yotp_login": "Авторизация Yubico OTP пройдена", "verified_yotp_login": "Авторизация Yubico OTP пройдена",
"cors_headers_edited": "Настройки CORS сохранены", "cors_headers_edited": "Настройки CORS сохранены",
"domain_footer_modified": "Изменения в нижнем колонтитуле домена %s сохранены", "domain_footer_modified": "Изменения в нижнем колонтитуле домена %s сохранены",
"f2b_banlist_refreshed": "Идентификатор банлиста был успешно обновлен." "f2b_banlist_refreshed": "Идентификатор банлиста был успешно обновлен.",
"domain_add_dkim_available": "",
"ip_check_opt_in_modified": "",
"template_added": "",
"template_modified": "",
"template_removed": ""
}, },
"tfa": { "tfa": {
"api_register": "%s использует Yubico Cloud API. Пожалуйста, получите ключ API для вашего ключа <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">здесь</a>", "api_register": "%s использует Yubico Cloud API. Пожалуйста, получите ключ API для вашего ключа <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">здесь</a>",
@@ -1045,7 +1099,9 @@
"waiting_usb_auth": "<i>Ожидание устройства USB...</i><br><br>Пожалуйста, нажмите кнопку на USB устройстве сейчас.", "waiting_usb_auth": "<i>Ожидание устройства USB...</i><br><br>Пожалуйста, нажмите кнопку на USB устройстве сейчас.",
"waiting_usb_register": "<i>Ожидание устройства USB...</i><br><br>Пожалуйста, введите пароль выше и подтвердите регистрацию, нажав кнопку на USB устройстве.", "waiting_usb_register": "<i>Ожидание устройства USB...</i><br><br>Пожалуйста, введите пароль выше и подтвердите регистрацию, нажав кнопку на USB устройстве.",
"yubi_otp": "Yubico OTP аутентификация", "yubi_otp": "Yubico OTP аутентификация",
"u2f_deprecated": "Похоже, что ваш ключ был зарегистрирован с использованием устаревшего метода U2F. Мы деактивируем для вас двухфакторную аутентификацию и удалим ваш ключ." "u2f_deprecated": "Похоже, что ваш ключ был зарегистрирован с использованием устаревшего метода U2F. Мы деактивируем для вас двухфакторную аутентификацию и удалим ваш ключ.",
"authenticators": "",
"u2f_deprecated_important": ""
}, },
"user": { "user": {
"action": "Действия", "action": "Действия",
@@ -1208,7 +1264,8 @@
"with_app_password": "с паролем приложения", "with_app_password": "с паролем приложения",
"change_password_hint_app_passwords": "В вашей учетной записи есть {{number_of_app_passwords}} паролей приложений, которые не будут изменены. Чтобы управлять ими, перейдите на вкладку \"Пароли приложений\".", "change_password_hint_app_passwords": "В вашей учетной записи есть {{number_of_app_passwords}} паролей приложений, которые не будут изменены. Чтобы управлять ими, перейдите на вкладку \"Пароли приложений\".",
"attribute": "Атрибут", "attribute": "Атрибут",
"value": "Значение" "value": "Значение",
"pushover_sound": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "Вы не можете удалить сами себя", "cannot_delete_self": "Вы не можете удалить сами себя",
@@ -1224,6 +1281,29 @@
"session_ua": "Неверный токен формы: ошибка проверки User-Agent" "session_ua": "Неверный токен формы: ошибка проверки User-Agent"
}, },
"datatables": { "datatables": {
"infoPostFix": "" "collapse_all": "Свернуть все",
"expand_all": "Развернуть все",
"infoPostFix": "",
"decimal": "",
"thousands": "",
"lengthMenu": "",
"loadingRecords": "",
"processing": "",
"search": "",
"zeroRecords": "",
"paginate": {
"last": "",
"first": "",
"next": "",
"previous": ""
},
"aria": {
"sortAscending": "",
"sortDescending": ""
},
"emptyTable": "",
"info": "",
"infoEmpty": "",
"infoFiltered": ""
} }
} }

View File

@@ -107,7 +107,8 @@
"post_domain_add": "SOGo container \"sogo-mailcow\" mora biti ponovno zagnan po dodajanju nove domene!<br><br>Dodatno se mora preveriti DNS konfiguracija domene. Ko je DNS konfiguracija domene odobrena, ponovno zaženite \"acme-mailcow\" za samodejno generiranje certifikatov za novo domeno (autoconfig.&lt;domain&gt;, autodiscover.&lt;domain&gt;).<br>Ta korak je opcijski in se ponovno poskuša vsakih 24 ur.", "post_domain_add": "SOGo container \"sogo-mailcow\" mora biti ponovno zagnan po dodajanju nove domene!<br><br>Dodatno se mora preveriti DNS konfiguracija domene. Ko je DNS konfiguracija domene odobrena, ponovno zaženite \"acme-mailcow\" za samodejno generiranje certifikatov za novo domeno (autoconfig.&lt;domain&gt;, autodiscover.&lt;domain&gt;).<br>Ta korak je opcijski in se ponovno poskuša vsakih 24 ur.",
"relay_transport_info": "<div class=\"badge fs-6 bg-info\">Info</div> Definirate lahko preslikave transportov za cilj po meri za to domeno. Če ni nastavljena, se ustvari MX poizvedba.", "relay_transport_info": "<div class=\"badge fs-6 bg-info\">Info</div> Definirate lahko preslikave transportov za cilj po meri za to domeno. Če ni nastavljena, se ustvari MX poizvedba.",
"syncjob_hint": "Pozor! Gesla se morajo shraniti v plain-text!", "syncjob_hint": "Pozor! Gesla se morajo shraniti v plain-text!",
"timeout2": "Časovna omejitev za povezavo do lokalnega gostitelja" "timeout2": "Časovna omejitev za povezavo do lokalnega gostitelja",
"dry": ""
}, },
"admin": { "admin": {
"access": "Dostop", "access": "Dostop",
@@ -347,7 +348,10 @@
"logo_dark_label": "Za temni način", "logo_dark_label": "Za temni način",
"cors_settings": "Nastavitve CORS", "cors_settings": "Nastavitve CORS",
"allowed_methods": "Dovoljene metode za upravljanje dostopa", "allowed_methods": "Dovoljene metode za upravljanje dostopa",
"allowed_origins": "Upravljanje-dostopa-Dovoljeni-Viri" "allowed_origins": "Upravljanje-dostopa-Dovoljeni-Viri",
"copy_to_clipboard": "",
"f2b_manage_external": "",
"f2b_manage_external_info": ""
}, },
"danger": { "danger": {
"alias_goto_identical": "Alias in goto naslov morata biti identična", "alias_goto_identical": "Alias in goto naslov morata biti identična",
@@ -476,7 +480,9 @@
"temp_error": "Začasna napaka", "temp_error": "Začasna napaka",
"cors_invalid_method": "Navedena neveljavna Allow metoda", "cors_invalid_method": "Navedena neveljavna Allow metoda",
"cors_invalid_origin": "Naveden neveljaven Allow-Origin", "cors_invalid_origin": "Naveden neveljaven Allow-Origin",
"invalid_recipient_map_new": "Naveden neveljaven nov prejemnik: %s" "invalid_recipient_map_new": "Naveden neveljaven nov prejemnik: %s",
"img_dimensions_exceeded": "",
"img_size_exceeded": ""
}, },
"debug": { "debug": {
"containers_info": "Informacije o vsebniku (containerju)", "containers_info": "Informacije o vsebniku (containerju)",
@@ -511,7 +517,13 @@
"no_update_available": "Sistem je na najnovejši verziji", "no_update_available": "Sistem je na najnovejši verziji",
"update_failed": "Ni mogoče preveriti za posodobitve", "update_failed": "Ni mogoče preveriti za posodobitve",
"username": "Uporabniško ime", "username": "Uporabniško ime",
"wip": "Trenutno v delu" "wip": "Trenutno v delu",
"log_info": "",
"login_time": "",
"logs": "",
"memory": "",
"online_users": "",
"restart_container": ""
}, },
"datatables": { "datatables": {
"infoFiltered": "(filtrirano od _MAX_ skupaj zapisov)", "infoFiltered": "(filtrirano od _MAX_ skupaj zapisov)",
@@ -536,7 +548,8 @@
"aria": { "aria": {
"sortAscending": ": aktivirajte za razvrstitev stolpca naraščajoče", "sortAscending": ": aktivirajte za razvrstitev stolpca naraščajoče",
"sortDescending": ": aktivirajte za razvrstitev stolpca padajoče" "sortDescending": ": aktivirajte za razvrstitev stolpca padajoče"
} },
"infoPostFix": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Vrednost pridobljena iz A/AAAA zapisa. To je podprto, če zapis kaže na pravilen resurs.", "cname_from_a": "Vrednost pridobljena iz A/AAAA zapisa. To je podprto, če zapis kaže na pravilen resurs.",
@@ -551,6 +564,746 @@
}, },
"edit": { "edit": {
"acl": "ACL (Dovoljenje)", "acl": "ACL (Dovoljenje)",
"active": "Aktivno" "active": "Aktivno",
"maxbytespersecond": "",
"footer_exclude": "",
"gal_info": "",
"inactive": "",
"kind": "",
"last_modified": "",
"lookup_mx": "",
"mailbox": "",
"mailbox_quota_def": "",
"mailbox_relayhost_info": "",
"maxage": "",
"mins_interval": "",
"domain_quota": "",
"spam_alias": "",
"gal": "",
"domain_footer_skip_replies": "",
"domains": "",
"dont_check_sender_acl": "",
"full_name": "",
"edit_alias_domain": "",
"encryption": "",
"exclude": "",
"extended_sender_acl": "",
"pushover_evaluate_x_prio": "",
"pushover_info": "",
"pushover": "",
"pushover_only_x_prio": "",
"pushover_sender_array": "",
"spam_filter": "",
"skipcrossduplicates": "",
"sogo_access": "",
"sogo_access_info": "",
"sogo_visible": "",
"sogo_visible_info": "",
"spam_policy": "",
"spam_score": "",
"subfolder2": "",
"syncjob": "",
"target_address": "",
"title": "",
"username": "",
"app_name": "",
"custom_attributes": "",
"delete2": "",
"delete2duplicates": "",
"generate": "",
"grant_types": "",
"redirect_uri": "",
"domain_footer_plain": "",
"extended_sender_acl_info": "",
"force_pw_update": "",
"force_pw_update_info": "",
"mbox_rl_info": "",
"multiple_bookings": "",
"none_inherit": "",
"nexthop": "",
"password": "",
"domain_footer": "",
"domain_footer_html": "",
"pushover_sender_regex": "",
"alias": "",
"max_aliases": "",
"max_mailboxes": "",
"max_quota": "",
"admin": "",
"advanced_settings": "",
"allow_from_smtp": "",
"allow_from_smtp_info": "",
"allowed_protocols": "",
"app_passwd": "",
"app_passwd_protocols": "",
"automap": "",
"backup_mx_options": "",
"bcc_dest_format": "",
"client_id": "",
"client_secret": "",
"comment_info": "",
"created_on": "",
"delete1": "",
"delete_ays": "",
"description": "",
"disable_login": "",
"domain": "",
"domain_admin": "",
"domain_footer_info": "",
"domain_footer_info_vars": {
"auth_user": "",
"from_user": "",
"from_name": "",
"from_addr": "",
"from_domain": "",
"custom": ""
},
"password_repeat": "",
"previous": "",
"private_comment": "",
"public_comment": "",
"pushover_text": "",
"pushover_title": "",
"pushover_sound": "",
"pushover_vars": "",
"pushover_verify": "",
"quota_mb": "",
"quota_warning_bcc": "",
"quota_warning_bcc_info": "",
"ratelimit": "",
"relay_all": "",
"relay_all_info": "",
"relay_domain": "",
"relay_transport_info": "",
"relay_unknown_only": "",
"relayhost": "",
"remove": "",
"hostname": "",
"resource": "",
"save": "",
"scope": "",
"sender_acl": "",
"sender_acl_disabled": "",
"sender_acl_info": "",
"sieve_desc": "",
"sieve_type": "",
"target_domain": "",
"timeout1": "",
"timeout2": "",
"unchanged_if_empty": "",
"validate_save": ""
},
"mailbox": {
"add_resource": "",
"domain_templates": "",
"activate": "",
"public_comment": "",
"set_prefilter": "",
"sieve_preset_5": "",
"active": "",
"add": "",
"add_alias": "",
"add_alias_expand": "",
"add_bcc_entry": "",
"bcc_destinations": "",
"bcc_local_dest": "",
"mailbox_defaults_info": "",
"mailbox_defquota": "",
"mailbox_templates": "",
"multiple_bookings": "",
"private_comment": "",
"q_add_header": "",
"q_all": "",
"q_reject": "",
"quarantine_category": "",
"quarantine_notification": "",
"quick_actions": "",
"recipient": "",
"recipient_map": "",
"recipient_map_info": "",
"recipient_map_new": "",
"recipient_map_new_info": "",
"recipient_map_old": "",
"recipient_map_old_info": "",
"recipient_maps": "",
"relay_unknown": "",
"running": "",
"sender": "",
"set_postfilter": "",
"sieve_preset_1": "",
"sieve_preset_2": "",
"sieve_info": "",
"sieve_preset_3": "",
"sieve_preset_4": "",
"sieve_preset_6": "",
"sieve_preset_7": "",
"sieve_preset_8": "",
"sogo_visible": "",
"status": "",
"target_address": "",
"target_domain": "",
"template": "",
"templates": "",
"tls_enforce_in": "",
"tls_enforce_out": "",
"tls_map_dest_info": "",
"tls_map_parameters": "",
"tls_map_policy": "",
"tls_policy_maps": "",
"tls_policy_maps_enforced_tls": "",
"tls_policy_maps_long": "",
"backup_mx": "",
"force_pw_update": "",
"gal": "",
"last_run": "",
"last_run_reset": "",
"filter_table": "",
"filters": "",
"fname": "",
"remove": "",
"tls_map_dest": "",
"add_mailbox": "",
"domain_admins": "",
"domain_aliases": "",
"edit": "",
"empty": "",
"enable_x": "",
"excludes": "",
"catch_all": "",
"no_record_single": "",
"relay_all": "",
"action": "",
"add_domain": "",
"add_domain_alias": "",
"add_domain_record_first": "",
"add_filter": "",
"add_recipient_map_entry": "",
"add_template": "",
"add_tls_policy_map": "",
"address_rewriting": "",
"alias": "",
"alias_domain_alias_hint": "",
"alias_domain_backupmx": "",
"aliases": "",
"all_domains": "",
"allow_from_smtp": "",
"allow_from_smtp_info": "",
"allowed_protocols": "",
"bcc": "",
"bcc_destination": "",
"bcc_info": "",
"bcc_map": "",
"bcc_map_type": "",
"bcc_maps": "",
"bcc_rcpt_map": "",
"bcc_sender_map": "",
"bcc_to_rcpt": "",
"bcc_to_sender": "",
"bcc_type": "",
"booking_null": "",
"booking_0_short": "",
"booking_custom": "",
"booking_custom_short": "",
"booking_ltnull": "",
"booking_lt0_short": "",
"created_on": "",
"daily": "",
"deactivate": "",
"description": "",
"disable_login": "",
"disable_x": "",
"dkim_domains_selector": "",
"dkim_key_length": "",
"domain": "",
"domain_quota": "",
"domain_quota_total": "",
"domains": "",
"goto_ham": "",
"goto_spam": "",
"hourly": "",
"in_use": "",
"inactive": "",
"insert_preset": "",
"kind": "",
"last_mail_login": "",
"last_modified": "",
"last_pw_change": "",
"mailbox": "",
"mailbox_defaults": "",
"mailbox_quota": "",
"mailboxes": "",
"max_aliases": "",
"max_mailboxes": "",
"max_quota": "",
"mins_interval": "",
"msg_num": "",
"never": "",
"no": "",
"no_record": "",
"open_logs": "",
"owner": "",
"resources": "",
"sieve_preset_header": "",
"sogo_visible_n": "",
"sogo_visible_y": "",
"spam_aliases": "",
"stats": "",
"sync_jobs": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"table_size": "",
"table_size_show_n": "",
"tls_map_parameters_info": "",
"tls_policy_maps_info": "",
"toggle_all": "",
"username": "",
"waiting": "",
"weekly": "",
"yes": ""
},
"user": {
"login_history": "",
"advanced_settings": "",
"alias": "",
"alias_create_random": "",
"alias_extend_all": "",
"alias_full_date": "",
"alias_remove_all": "",
"action": "",
"active": "",
"active_sieve": "",
"alias_select_validity": "",
"alias_time_left": "",
"alias_valid_until": "",
"delete_ays": "",
"direct_aliases": "",
"email_and_dav": "",
"spamfilter_table_rule": "",
"spamfilter_wl": "",
"verify": "",
"waiting": "",
"week": "",
"weekly": "",
"month": "",
"months": "",
"sogo_profile_reset_now": "",
"spam_aliases": "",
"spam_score_reset": "",
"spamfilter": "",
"value": "",
"eas_reset_now": "",
"remove": "",
"text": "",
"no_active_filter": "",
"no_last_login": "",
"spamfilter_bl_desc": "",
"spamfilter_default_score": "",
"day": "",
"never": "",
"pushover_verify": "",
"tag_handling": "",
"edit": "",
"last_ui_login": "",
"title": "",
"tls_enforce_in": "",
"tls_enforce_out": "",
"tls_policy": "",
"tls_policy_warning": "",
"aliases_also_send_as": "",
"aliases_send_as_all": "",
"app_hint": "",
"allowed_protocols": "",
"app_name": "",
"app_passwds": "",
"apple_connection_profile": "",
"apple_connection_profile_complete": "",
"apple_connection_profile_mailonly": "",
"apple_connection_profile_with_app_password": "",
"attribute": "",
"change_password": "",
"change_password_hint_app_passwords": "",
"clear_recent_successful_connections": "",
"client_configuration": "",
"create_app_passwd": "",
"create_syncjob": "",
"created_on": "",
"daily": "",
"direct_aliases_desc": "",
"direct_protocol_access": "",
"eas_reset": "",
"eas_reset_help": "",
"email": "",
"empty": "",
"encryption": "",
"excludes": "",
"expire_in": "",
"fido2_webauthn": "",
"force_pw_update": "",
"from": "",
"generate": "",
"hour": "",
"hourly": "",
"hours": "",
"in_use": "",
"interval": "",
"is_catch_all": "",
"last_mail_login": "",
"last_pw_change": "",
"last_run": "",
"loading": "",
"mailbox": "",
"mailbox_details": "",
"mailbox_general": "",
"mailbox_settings": "",
"messages": "",
"new_password": "",
"new_password_repeat": "",
"no_record": "",
"open_logs": "",
"open_webmail_sso": "",
"password": "",
"password_now": "",
"password_repeat": "",
"pushover_evaluate_x_prio": "",
"pushover_info": "",
"pushover_only_x_prio": "",
"pushover_sender_array": "",
"pushover_sender_regex": "",
"pushover_text": "",
"pushover_title": "",
"pushover_sound": "",
"pushover_vars": "",
"q_add_header": "",
"q_all": "",
"q_reject": "",
"quarantine_category": "",
"quarantine_category_info": "",
"quarantine_notification": "",
"quarantine_notification_info": "",
"recent_successful_connections": "",
"running": "",
"save": "",
"save_changes": "",
"sender_acl_disabled": "",
"shared_aliases": "",
"shared_aliases_desc": "",
"show_sieve_filters": "",
"sogo_profile_reset": "",
"sogo_profile_reset_help": "",
"spamfilter_behavior": "",
"spamfilter_bl": "",
"spamfilter_green": "",
"spamfilter_hint": "",
"spamfilter_red": "",
"spamfilter_table_action": "",
"spamfilter_table_add": "",
"spamfilter_table_domain_policy": "",
"spamfilter_table_empty": "",
"spamfilter_table_remove": "",
"spamfilter_wl_desc": "",
"spamfilter_yellow": "",
"status": "",
"sync_jobs": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "",
"tag_help_example": "",
"tag_help_explain": "",
"tag_in_none": "",
"tag_in_subfolder": "",
"tag_in_subject": "",
"user_settings": "",
"username": "",
"weeks": "",
"with_app_password": "",
"year": "",
"years": ""
},
"fido2": {
"set_fn": "",
"rename": "",
"set_fido2": "",
"set_fido2_touchid": "",
"start_fido2_validation": "",
"confirm": "",
"fido2_auth": "",
"fido2_success": "",
"fido2_validation_failed": "",
"fn": "",
"known_ids": "",
"none": "",
"register_status": ""
},
"footer": {
"cancel": "",
"confirm_delete": "",
"delete_now": "",
"delete_these_items": "",
"hibp_check": "",
"hibp_nok": "",
"hibp_ok": "",
"loading": "",
"nothing_selected": "",
"restart_container": "",
"restart_container_info": "",
"restart_now": "",
"restarting_container": ""
},
"quarantine": {
"qid": "",
"quarantine": "",
"quick_actions": "",
"quick_delete_link": "",
"neutral_danger": "",
"qitem": "",
"download_eml": "",
"action": "",
"atts": "",
"check_hash": "",
"confirm": "",
"confirm_delete": "",
"danger": "",
"deliver_inbox": "",
"disabled_by_config": "",
"empty": "",
"high_danger": "",
"info": "",
"junk_folder": "",
"learn_spam_delete": "",
"low_danger": "",
"medium_danger": "",
"notified": "",
"qhandler_success": "",
"qinfo": "",
"quick_info_link": "",
"quick_release_link": "",
"rcpt": "",
"received": "",
"recipients": "",
"refresh": "",
"rejected": "",
"release": "",
"release_body": "",
"release_subject": "",
"remove": "",
"rewrite_subject": "",
"rspamd_result": "",
"sender": "",
"sender_header": "",
"settings_info": "",
"show_item": "",
"spam": "",
"spam_score": "",
"subj": "",
"table_size": "",
"table_size_show_n": "",
"text_from_html_content": "",
"text_plain_content": "",
"toggle_all": "",
"type": ""
},
"ratelimit": {
"minute": "",
"hour": "",
"day": "",
"disabled": "",
"second": ""
},
"start": {
"help": "",
"imap_smtp_server_auth_info": "",
"mailcow_panel_detail": "",
"mailcow_apps_detail": ""
},
"queue": {
"unhold_mail": "",
"unhold_mail_legend": "",
"delete": "",
"flush": "",
"info": "",
"legend": "",
"deliver_mail": "",
"ays": "",
"deliver_mail_legend": "",
"hold_mail": "",
"hold_mail_legend": "",
"queue_manager": "",
"show_message": "",
"unban": ""
},
"success": {
"acl_saved": "",
"admin_added": "",
"cors_headers_edited": "",
"db_init_complete": "",
"delete_filter": "",
"delete_filters": "",
"deleted_syncjob": "",
"deleted_syncjobs": "",
"dkim_added": "",
"domain_add_dkim_available": "",
"dkim_duplicated": "",
"dkim_removed": "",
"domain_added": "",
"domain_admin_removed": "",
"domain_footer_modified": "",
"domain_modified": "",
"domain_removed": "",
"dovecot_restart_success": "",
"f2b_banlist_refreshed": "",
"domain_admin_added": "",
"domain_admin_modified": "",
"f2b_modified": "",
"forwarding_host_added": "",
"resource_modified": "",
"resource_removed": "",
"rl_saved": "",
"reset_main_logo": "",
"resource_added": "",
"rspamd_ui_pw_set": "",
"saved_settings": "",
"settings_map_added": "",
"settings_map_removed": "",
"sogo_profile_reset": "",
"template_added": "",
"template_modified": "",
"template_removed": "",
"tls_policy_map_entry_deleted": "",
"eas_reset": "",
"mailbox_added": "",
"items_deleted": "",
"items_released": "",
"learned_ham": "",
"license_modified": "",
"logged_in_as": "",
"password_policy_saved": "",
"hash_deleted": "",
"app_links": "",
"admin_api_modified": "",
"admin_modified": "",
"admin_removed": "",
"alias_added": "",
"alias_domain_removed": "",
"alias_modified": "",
"alias_removed": "",
"aliasd_added": "",
"aliasd_modified": "",
"app_passwd_added": "",
"app_passwd_removed": "",
"bcc_deleted": "",
"bcc_edited": "",
"bcc_saved": "",
"forwarding_host_removed": "",
"global_filter_written": "",
"ip_check_opt_in_modified": "",
"item_deleted": "",
"item_released": "",
"mailbox_modified": "",
"mailbox_removed": "",
"nginx_reloaded": "",
"object_modified": "",
"pushover_settings_edited": "",
"qlearn_spam": "",
"queue_command_success": "",
"recipient_map_entry_deleted": "",
"recipient_map_entry_saved": "",
"relayhost_added": "",
"relayhost_removed": "",
"tls_policy_map_entry_saved": "",
"ui_texts": "",
"upload_success": "",
"verified_fido2_login": "",
"verified_totp_login": "",
"verified_webauthn_login": "",
"verified_yotp_login": ""
},
"tfa": {
"webauthn": "",
"waiting_usb_register": "",
"authenticators": "",
"api_register": "",
"confirm_totp_token": "",
"none": "",
"select": "",
"yubi_otp": "",
"waiting_usb_auth": "",
"delete_tfa": "",
"disable_tfa": "",
"enter_qr_code": "",
"error_code": "",
"init_webauthn": "",
"key_id": "",
"confirm": "",
"key_id_totp": "",
"reload_retry": "",
"scan_qr_code": "",
"set_tfa": "",
"start_webauthn_validation": "",
"tfa": "",
"tfa_token_invalid": "",
"totp": "",
"u2f_deprecated": "",
"u2f_deprecated_important": ""
},
"header": {
"debug": "",
"administration": "",
"apps": "",
"email": "",
"mailcow_system": "",
"mailcow_config": "",
"quarantine": "",
"restart_netfilter": "",
"restart_sogo": "",
"user_settings": ""
},
"warning": {
"domain_added_sogo_failed": "",
"dovecot_restart_failed": "",
"fuzzy_learn_error": "",
"hash_not_found": "",
"ip_invalid": "",
"no_active_admin": "",
"quota_exceeded_scope": "",
"session_token": "",
"session_ua": "",
"cannot_delete_self": "",
"is_not_primary_alias": ""
},
"info": {
"awaiting_tfa_confirmation": "",
"no_action": "",
"session_expires": ""
},
"login": {
"delayed": "",
"fido2_webauthn": "",
"login": "",
"mobileconfig_info": "",
"other_logins": "",
"password": "",
"username": ""
},
"oauth2": {
"access_denied": "",
"authorize_app": "",
"deny": "",
"permit": "",
"profile": "",
"profile_desc": "",
"scope_ask_permission": ""
} }
} }

View File

@@ -342,7 +342,16 @@
"username": "Prihlasovacie meno", "username": "Prihlasovacie meno",
"validate_license_now": "Validovať GUID cez licenčný server", "validate_license_now": "Validovať GUID cez licenčný server",
"verify": "Kontrola", "verify": "Kontrola",
"yes": "&#10003;" "yes": "&#10003;",
"queue_unban": "",
"allowed_origins": "",
"cors_settings": "",
"f2b_ban_time_increment": "",
"f2b_max_ban_time": "",
"copy_to_clipboard": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"allowed_methods": ""
}, },
"danger": { "danger": {
"access_denied": "Prístup zamietnutý alebo nesprávne dáta formulára", "access_denied": "Prístup zamietnutý alebo nesprávne dáta formulára",
@@ -464,7 +473,16 @@
"username_invalid": "Používateľské meno %s nemôže byť použité", "username_invalid": "Používateľské meno %s nemôže byť použité",
"validity_missing": "Zadajte periódu platnosti", "validity_missing": "Zadajte periódu platnosti",
"value_missing": "Prosím poskytnite všetky hodnoty", "value_missing": "Prosím poskytnite všetky hodnoty",
"yotp_verification_failed": "Overenie cez OTP Yubico zlyhalo: %s" "yotp_verification_failed": "Overenie cez OTP Yubico zlyhalo: %s",
"webauthn_publickey_failed": "",
"webauthn_username_failed": "",
"webauthn_authenticator_failed": "",
"cors_invalid_method": "",
"cors_invalid_origin": "",
"demo_mode_enabled": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": "",
"extended_sender_acl_denied": ""
}, },
"datatables": { "datatables": {
"info": "Záznamy _START_ až _END_ z celkom _TOTAL_", "info": "Záznamy _START_ až _END_ z celkom _TOTAL_",
@@ -489,7 +507,8 @@
"decimal": ",", "decimal": ",",
"thousands": " ", "thousands": " ",
"collapse_all": "Zbaliť všetko", "collapse_all": "Zbaliť všetko",
"expand_all": "Rozbaliť všetko" "expand_all": "Rozbaliť všetko",
"infoPostFix": ""
}, },
"debug": { "debug": {
"chart_this_server": "Graf (tento server)", "chart_this_server": "Graf (tento server)",
@@ -516,7 +535,21 @@
"success": "Úspech", "success": "Úspech",
"system_containers": "Systém & Kontajnery", "system_containers": "Systém & Kontajnery",
"uptime": "Doba behu", "uptime": "Doba behu",
"username": "Používateľské meno" "username": "Používateľské meno",
"architecture": "",
"error_show_ip": "",
"update_failed": "",
"show_ip": "",
"timezone": "",
"update_available": "",
"no_update_available": "",
"wip": "",
"current_time": "",
"memory": "",
"container_running": "",
"container_disabled": "",
"container_stopped": "",
"cores": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Hodnota odvodená od A/AAAA záznamu. Toto je podporené len v prípade ak záznam poukazuje na správny zdroj.", "cname_from_a": "Hodnota odvodená od A/AAAA záznamu. Toto je podporené len v prípade ak záznam poukazuje na správny zdroj.",
@@ -648,12 +681,17 @@
"from_domain": "{= from_domain =} - Doména odosielateľa", "from_domain": "{= from_domain =} - Doména odosielateľa",
"auth_user": "{= auth_user =} - Prihlasovacie meno odosielateľa", "auth_user": "{= auth_user =} - Prihlasovacie meno odosielateľa",
"from_user": "{= from_user =} - Používateľská časť e-mailovej adresy odosielateľa, napr. pre \"moo@mailcow.tld\" vráti \"moo\"", "from_user": "{= from_user =} - Používateľská časť e-mailovej adresy odosielateľa, napr. pre \"moo@mailcow.tld\" vráti \"moo\"",
"from_name": "{= from_name =} - Meno odosielateľa, napr. pre \"Mailcow &lt;moo@mailcow.tld&gt;\" vráti \"Mailcow\"" "from_name": "{= from_name =} - Meno odosielateľa, napr. pre \"Mailcow &lt;moo@mailcow.tld&gt;\" vráti \"Mailcow\"",
"custom": ""
}, },
"domain_footer": "Pätička pre celú doménu", "domain_footer": "Pätička pre celú doménu",
"domain_footer_html": "HTML text", "domain_footer_html": "HTML text",
"domain_footer_info": "Pätička pre celú doménu sa pridáva do všetkých odchádzajúcich e-mailov spojených s adresou v rámci tejto domény. <br> Pre pätičku je možné použiť nasledujúce premenné:", "domain_footer_info": "Pätička pre celú doménu sa pridáva do všetkých odchádzajúcich e-mailov spojených s adresou v rámci tejto domény. <br> Pre pätičku je možné použiť nasledujúce premenné:",
"domain_footer_plain": "Obyčajný text" "domain_footer_plain": "Obyčajný text",
"footer_exclude": "",
"domain_footer_skip_replies": "",
"custom_attributes": "",
"pushover_sound": ""
}, },
"fido2": { "fido2": {
"confirm": "Potvrdiť", "confirm": "Potvrdiť",
@@ -883,7 +921,8 @@
"username": "Používateľské meno", "username": "Používateľské meno",
"waiting": "Čakanie", "waiting": "Čakanie",
"weekly": "Týždenný", "weekly": "Týždenný",
"yes": "&#10003;" "yes": "&#10003;",
"relay_unknown": ""
}, },
"oauth2": { "oauth2": {
"access_denied": "Prosím prihláste sa ako používateľ mailovej schránky, aby ste mohli získať prístup cez OAuth2.", "access_denied": "Prosím prihláste sa ako používateľ mailovej schránky, aby ste mohli získať prístup cez OAuth2.",
@@ -960,7 +999,8 @@
"unhold_mail": "Uvoľniť", "unhold_mail": "Uvoľniť",
"unhold_mail_legend": "Uvoľniť vybrané e-maily na doručenie. (Len v prípade predchádzajúceho podržania)", "unhold_mail_legend": "Uvoľniť vybrané e-maily na doručenie. (Len v prípade predchádzajúceho podržania)",
"hold_mail": "Podržať", "hold_mail": "Podržať",
"hold_mail_legend": "Podržať vybrané e-maily. (Zabráni ďalším pokusom o doručenie)" "hold_mail_legend": "Podržať vybrané e-maily. (Zabráni ďalším pokusom o doručenie)",
"unban": ""
}, },
"ratelimit": { "ratelimit": {
"disabled": "Vypnuté", "disabled": "Vypnuté",
@@ -1055,7 +1095,11 @@
"verified_totp_login": "Overené TOTP prihlásenie", "verified_totp_login": "Overené TOTP prihlásenie",
"verified_webauthn_login": "Overené WebAuthn prihlásenie", "verified_webauthn_login": "Overené WebAuthn prihlásenie",
"verified_yotp_login": "Overené Yubico OTP prihlásenie", "verified_yotp_login": "Overené Yubico OTP prihlásenie",
"domain_footer_modified": "Zmeny v pätičke domény %s boli uložené" "domain_footer_modified": "Zmeny v pätičke domény %s boli uložené",
"cors_headers_edited": "",
"f2b_banlist_refreshed": "",
"ip_check_opt_in_modified": "",
"domain_add_dkim_available": ""
}, },
"tfa": { "tfa": {
"api_register": "%s využíva Yubico Cloud API. Prosím, zaobstarajte si API kľúč pre váš kľúč <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">tu</a>", "api_register": "%s využíva Yubico Cloud API. Prosím, zaobstarajte si API kľúč pre váš kľúč <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">tu</a>",
@@ -1082,7 +1126,8 @@
"waiting_usb_register": "<i>Čakanie na USB zariadenie...</i><br><br>Prosím zadajte vaše heslo a potvrďte registráciu stlačením tlačidla na vašom USB zariadení.", "waiting_usb_register": "<i>Čakanie na USB zariadenie...</i><br><br>Prosím zadajte vaše heslo a potvrďte registráciu stlačením tlačidla na vašom USB zariadení.",
"yubi_otp": "Yubico OTP autentifikácia", "yubi_otp": "Yubico OTP autentifikácia",
"u2f_deprecated_important": "Zaregistrujte si svoj Kľúč v paneli správcu pomocou novej metódy WebAuthn.", "u2f_deprecated_important": "Zaregistrujte si svoj Kľúč v paneli správcu pomocou novej metódy WebAuthn.",
"u2f_deprecated": "Zdá sa, že váš kľúč bol zaregistrovaný pomocou zastaranej metódy U2F. Deaktivujeme vám dvojfaktorovú autentifikáciu a odstránime váš Kľúč." "u2f_deprecated": "Zdá sa, že váš kľúč bol zaregistrovaný pomocou zastaranej metódy U2F. Deaktivujeme vám dvojfaktorovú autentifikáciu a odstránime váš Kľúč.",
"authenticators": ""
}, },
"user": { "user": {
"action": "Akcia", "action": "Akcia",
@@ -1243,7 +1288,10 @@
"weeks": "týždne", "weeks": "týždne",
"with_app_password": "s heslom aplikácie", "with_app_password": "s heslom aplikácie",
"year": "rok", "year": "rok",
"years": "rokov" "years": "rokov",
"value": "",
"attribute": "",
"pushover_sound": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "Nemožno vymazať prihláseného používateľa", "cannot_delete_self": "Nemožno vymazať prihláseného používateľa",

View File

@@ -60,7 +60,7 @@
"exclude": "Exkludera objekt (regex-filter)", "exclude": "Exkludera objekt (regex-filter)",
"full_name": "Fullständiga namn", "full_name": "Fullständiga namn",
"gal": "Global adressbok", "gal": "Global adressbok",
"gal_info": "Den global adressboken innehåller alla objekt i en domän och kan inte redigeras av någon användare. Informationen om tillgänglighet i SOGo är endast synlig när den globala adressboken är påslagen. <b>Starta om SOGo för att tillämpa ändringar.</b>", "gal_info": "Den global adressboken innehåller alla objekt i en domän och kan inte redigeras av någon användare. Informationen om tillgänglighet i SOGo är endast synlig när den globala adressboken är påslagen. <b>Starta om SOGo för att tillämpa ändringar.</b>",
"generate": "generera", "generate": "generera",
"goto_ham": "Markera detta som en <span class=\"text-success\"><b>felaktig spam-registrering</b>, detta kommer förhindra liknande fel i framtiden</span>", "goto_ham": "Markera detta som en <span class=\"text-success\"><b>felaktig spam-registrering</b>, detta kommer förhindra liknande fel i framtiden</span>",
"goto_null": "Kasta e-postmeddelanande omedelbart", "goto_null": "Kasta e-postmeddelanande omedelbart",
@@ -106,7 +106,9 @@
"validate": "Validera", "validate": "Validera",
"validation_success": "Korrekt validerad", "validation_success": "Korrekt validerad",
"app_passwd_protocols": "Tillåtna protokoll för applösenord", "app_passwd_protocols": "Tillåtna protokoll för applösenord",
"bcc_dest_format": "BCC-destinationen måste vara en enda giltig e-postadress.<br>Om du behöver skicka en kopia till flera adresser skapar du ett alias och använder det här." "bcc_dest_format": "BCC-destinationen måste vara en enda giltig e-postadress.<br>Om du behöver skicka en kopia till flera adresser skapar du ett alias och använder det här.",
"dry": "",
"tags": ""
}, },
"admin": { "admin": {
"access": "Åtkomst", "access": "Åtkomst",
@@ -325,7 +327,31 @@
"username": "Användarnamn", "username": "Användarnamn",
"validate_license_now": "Validera installations-ID mot licensservern", "validate_license_now": "Validera installations-ID mot licensservern",
"verify": "Verifiera", "verify": "Verifiera",
"yes": "&#10003;" "yes": "&#10003;",
"allowed_origins": "",
"allowed_methods": "",
"logo_dark_label": "",
"cors_settings": "",
"logo_normal_label": "",
"ip_check": "",
"f2b_ban_time_increment": "",
"copy_to_clipboard": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"f2b_max_ban_time": "",
"ip_check_disabled": "",
"login_time": "",
"oauth2_apps": "",
"oauth2_add_client": "",
"options": "",
"api_read_only": "",
"ip_check_opt_in": "",
"is_mx_based": "",
"queue_unban": "",
"rsettings_preset_4": "",
"service": "",
"success": "",
"api_read_write": ""
}, },
"danger": { "danger": {
"access_denied": "Nekad åtkomst, eller ofullständig/ogiltig data", "access_denied": "Nekad åtkomst, eller ofullständig/ogiltig data",
@@ -444,7 +470,19 @@
"username_invalid": "Användarnamnet %s kan inte användas", "username_invalid": "Användarnamnet %s kan inte användas",
"validity_missing": "Ange en giltighetsperiod", "validity_missing": "Ange en giltighetsperiod",
"value_missing": "Ange alla värden", "value_missing": "Ange alla värden",
"yotp_verification_failed": "Yubico OTP-verifiering misslyckades: %s" "yotp_verification_failed": "Yubico OTP-verifiering misslyckades: %s",
"webauthn_authenticator_failed": "",
"cors_invalid_method": "",
"cors_invalid_origin": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": "",
"webauthn_publickey_failed": "",
"webauthn_username_failed": "",
"demo_mode_enabled": "",
"extended_sender_acl_denied": "",
"template_exists": "",
"template_id_invalid": "",
"template_name_invalid": ""
}, },
"debug": { "debug": {
"chart_this_server": "Tabell (denna server)", "chart_this_server": "Tabell (denna server)",
@@ -467,7 +505,25 @@
"uptime": "Upptid", "uptime": "Upptid",
"started_on": "Startades", "started_on": "Startades",
"static_logs": "Statiska loggar", "static_logs": "Statiska loggar",
"system_containers": "System & behållare" "system_containers": "System & behållare",
"success": "",
"architecture": "",
"login_time": "",
"update_available": "",
"container_running": "",
"container_disabled": "",
"container_stopped": "",
"cores": "",
"current_time": "",
"error_show_ip": "",
"memory": "",
"service": "",
"show_ip": "",
"timezone": "",
"update_failed": "",
"username": "",
"wip": "",
"no_update_available": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "Värde härstammar från A/AAAA-uppslaget. Detta stöds så länge som uppslaget pekar mot rätt resurs.", "cname_from_a": "Värde härstammar från A/AAAA-uppslaget. Detta stöds så länge som uppslaget pekar mot rätt resurs.",
@@ -585,7 +641,31 @@
"title": "Ändra objekt", "title": "Ändra objekt",
"unchanged_if_empty": "Lämna blakt, om oförändrat", "unchanged_if_empty": "Lämna blakt, om oförändrat",
"username": "Användarnamn", "username": "Användarnamn",
"validate_save": "Validera och spara" "validate_save": "Validera och spara",
"footer_exclude": "",
"mailbox_relayhost_info": "",
"domain_footer_skip_replies": "",
"pushover_sound": "",
"custom_attributes": "",
"sogo_access": "",
"domain_footer": "",
"domain_footer_html": "",
"domain_footer_info_vars": {
"auth_user": "",
"from_user": "",
"from_name": "",
"from_addr": "",
"from_domain": "",
"custom": ""
},
"app_passwd_protocols": "",
"domain_footer_info": "",
"domain_footer_plain": "",
"none_inherit": "",
"sogo_access_info": "",
"pushover": "",
"acl": "",
"lookup_mx": ""
}, },
"footer": { "footer": {
"cancel": "Avbryt", "cancel": "Avbryt",
@@ -598,7 +678,9 @@
"restart_container": "Starta om kontainer", "restart_container": "Starta om kontainer",
"restart_container_info": "<b>Viktigt:</b> En fullständig omstart kan ta ett tag att slutföra, vänta tills att det är klart.", "restart_container_info": "<b>Viktigt:</b> En fullständig omstart kan ta ett tag att slutföra, vänta tills att det är klart.",
"restart_now": "Starta om nu", "restart_now": "Starta om nu",
"restarting_container": "Startar om kontainern, det kan ta en stund" "restarting_container": "Startar om kontainern, det kan ta en stund",
"hibp_check": "",
"nothing_selected": ""
}, },
"header": { "header": {
"administration": "Konfiguration & detaljer", "administration": "Konfiguration & detaljer",
@@ -609,7 +691,8 @@
"quarantine": "Karantän", "quarantine": "Karantän",
"restart_netfilter": "Starta om netfilter", "restart_netfilter": "Starta om netfilter",
"restart_sogo": "Starta om SOGo", "restart_sogo": "Starta om SOGo",
"user_settings": "Användarinställningar" "user_settings": "Användarinställningar",
"mailcow_system": ""
}, },
"info": { "info": {
"awaiting_tfa_confirmation": "Inväntar en TFA-bekräftelse", "awaiting_tfa_confirmation": "Inväntar en TFA-bekräftelse",
@@ -775,7 +858,30 @@
"username": "Användarnamn", "username": "Användarnamn",
"waiting": "Väntar", "waiting": "Väntar",
"weekly": "Varje vecka", "weekly": "Varje vecka",
"yes": "&#10003;" "yes": "&#10003;",
"goto_ham": "",
"goto_spam": "",
"templates": "",
"template": "",
"add_template": "",
"catch_all": "",
"all_domains": "",
"domain_templates": "",
"last_pw_change": "",
"mailbox_templates": "",
"open_logs": "",
"recipient": "",
"relay_unknown": "",
"sender": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": ""
}, },
"oauth2": { "oauth2": {
"access_denied": "Logga in som ägare av en postlåda för att tilldela åtkomst via OAuth2.", "access_denied": "Logga in som ägare av en postlåda för att tilldela åtkomst via OAuth2.",
@@ -840,7 +946,20 @@
"toggle_all": "Markera alla" "toggle_all": "Markera alla"
}, },
"queue": { "queue": {
"queue_manager": "Kö-hanteraring" "queue_manager": "Kö-hanteraring",
"unban": "",
"ays": "",
"deliver_mail": "",
"deliver_mail_legend": "",
"hold_mail": "",
"hold_mail_legend": "",
"delete": "",
"flush": "",
"info": "",
"legend": "",
"show_message": "",
"unhold_mail": "",
"unhold_mail_legend": ""
}, },
"start": { "start": {
"help": "Visa/dölj hjälppanel", "help": "Visa/dölj hjälppanel",
@@ -924,7 +1043,15 @@
"verified_totp_login": "Verifierad TOTP inloggning", "verified_totp_login": "Verifierad TOTP inloggning",
"verified_webauthn_login": "Verifierad WebAuthn inloggning", "verified_webauthn_login": "Verifierad WebAuthn inloggning",
"verified_fido2_login": "Verifierad FIDO2 inloggning", "verified_fido2_login": "Verifierad FIDO2 inloggning",
"verified_yotp_login": "Verifierad Yubico OTP inloggning" "verified_yotp_login": "Verifierad Yubico OTP inloggning",
"domain_footer_modified": "",
"template_added": "",
"template_modified": "",
"cors_headers_edited": "",
"domain_add_dkim_available": "",
"f2b_banlist_refreshed": "",
"ip_check_opt_in_modified": "",
"template_removed": ""
}, },
"tfa": { "tfa": {
"api_register": "%s använder Yubico Moln-API. Vänligen skaffa en API-nyckel för din nyckel <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">här</a>", "api_register": "%s använder Yubico Moln-API. Vänligen skaffa en API-nyckel för din nyckel <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">här</a>",
@@ -949,7 +1076,10 @@
"webauthn": "WebAuthn-autentisering", "webauthn": "WebAuthn-autentisering",
"waiting_usb_auth": "<i>Väntar på USB-enhet...</i><br><br>Tryck på knappen på USB-enheten nu.", "waiting_usb_auth": "<i>Väntar på USB-enhet...</i><br><br>Tryck på knappen på USB-enheten nu.",
"waiting_usb_register": "<i>Väntar på USB-enhet...</i><br><br>Vänligen fyll i det övre lösenordsfältet först och tryck sedan på knappen på USB-enheten.", "waiting_usb_register": "<i>Väntar på USB-enhet...</i><br><br>Vänligen fyll i det övre lösenordsfältet först och tryck sedan på knappen på USB-enheten.",
"yubi_otp": "Yubico OTP-autentisering" "yubi_otp": "Yubico OTP-autentisering",
"authenticators": "",
"u2f_deprecated": "",
"u2f_deprecated_important": ""
}, },
"fido2": { "fido2": {
"set_fn": "Ange ett eget namn", "set_fn": "Ange ett eget namn",
@@ -963,7 +1093,8 @@
"start_fido2_validation": "Starta FIDO2 verifiering", "start_fido2_validation": "Starta FIDO2 verifiering",
"fido2_auth": "Loggain med FIDO2", "fido2_auth": "Loggain med FIDO2",
"fido2_success": "Enheten har registrerats", "fido2_success": "Enheten har registrerats",
"fido2_validation_failed": "Verifiering misslyckades" "fido2_validation_failed": "Verifiering misslyckades",
"set_fido2_touchid": ""
}, },
"user": { "user": {
"action": "Åtgärd", "action": "Åtgärd",
@@ -1097,7 +1228,37 @@
"weekly": "Varje vecka", "weekly": "Varje vecka",
"weeks": "veckor", "weeks": "veckor",
"year": "år", "year": "år",
"years": "år" "years": "år",
"empty": "",
"pushover_sound": "",
"fido2_webauthn": "",
"recent_successful_connections": "",
"value": "",
"with_app_password": "",
"attribute": "",
"from": "",
"allowed_protocols": "",
"apple_connection_profile_with_app_password": "",
"change_password_hint_app_passwords": "",
"clear_recent_successful_connections": "",
"direct_protocol_access": "",
"last_pw_change": "",
"last_ui_login": "",
"login_history": "",
"mailbox": "",
"mailbox_general": "",
"mailbox_settings": "",
"open_logs": "",
"open_webmail_sso": "",
"syncjob_check_log": "",
"syncjob_last_run_result": "",
"syncjob_EX_OK": "",
"syncjob_EXIT_CONNECTION_FAILURE": "",
"syncjob_EXIT_TLS_FAILURE": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE": "",
"syncjob_EXIT_OVERQUOTA": "",
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "Inloggade användare kan inte tas bort", "cannot_delete_self": "Inloggade användare kan inte tas bort",
@@ -1111,5 +1272,38 @@
"quota_exceeded_scope": "Domänkvoten fylld: Endast postlådor med obegränsade kvoter kan skapas på den här domänen.", "quota_exceeded_scope": "Domänkvoten fylld: Endast postlådor med obegränsade kvoter kan skapas på den här domänen.",
"session_token": "Formulär-nyckeln är ogiltig: Nyckeln matchar inte", "session_token": "Formulär-nyckeln är ogiltig: Nyckeln matchar inte",
"session_ua": "Formulär-nyckeln är ogiltig: User-Agenten kunde inte valideras" "session_ua": "Formulär-nyckeln är ogiltig: User-Agenten kunde inte valideras"
},
"datatables": {
"info": "",
"expand_all": "",
"emptyTable": "",
"infoFiltered": "",
"infoEmpty": "",
"lengthMenu": "",
"loadingRecords": "",
"processing": "",
"search": "",
"zeroRecords": "",
"paginate": {
"first": "",
"last": "",
"next": "",
"previous": ""
},
"aria": {
"sortAscending": "",
"sortDescending": ""
},
"collapse_all": "",
"thousands": "",
"decimal": "",
"infoPostFix": ""
},
"ratelimit": {
"day": "",
"disabled": "",
"second": "",
"minute": "",
"hour": ""
} }
} }

View File

@@ -350,7 +350,8 @@
"reset_limit": "Hashi kaldır", "reset_limit": "Hashi kaldır",
"routing": "Yönlendirme", "routing": "Yönlendirme",
"rsetting_add_rule": "Kural ekle", "rsetting_add_rule": "Kural ekle",
"rsetting_content": "Kural içeriği" "rsetting_content": "Kural içeriği",
"add": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "Cannot delete logged in user", "cannot_delete_self": "Cannot delete logged in user",
@@ -388,7 +389,8 @@
"loadingRecords": "Yükleniyor...", "loadingRecords": "Yükleniyor...",
"processing": "Lütfen bekleyin...", "processing": "Lütfen bekleyin...",
"search": "Ara:", "search": "Ara:",
"zeroRecords": "Eşleşen kayıt bulunamadı" "zeroRecords": "Eşleşen kayıt bulunamadı",
"infoPostFix": ""
}, },
"edit": { "edit": {
"inactive": "Pasif", "inactive": "Pasif",

View File

@@ -349,7 +349,9 @@
"queue_unban": "розблокувати", "queue_unban": "розблокувати",
"f2b_manage_external": "Керування Fail2Ban ззовні", "f2b_manage_external": "Керування Fail2Ban ззовні",
"f2b_manage_external_info": "Fail2ban буде підтримувати список заборонених, але не буде активно встановлювати правила для блокування трафіку. Використовуйте згенерований список заборон нижче для зовнішнього блокування трафіку.", "f2b_manage_external_info": "Fail2ban буде підтримувати список заборонених, але не буде активно встановлювати правила для блокування трафіку. Використовуйте згенерований список заборон нижче для зовнішнього блокування трафіку.",
"copy_to_clipboard": "Текст скопійовано в буфер обміну!" "copy_to_clipboard": "Текст скопійовано в буфер обміну!",
"logo_normal_label": "",
"logo_dark_label": ""
}, },
"danger": { "danger": {
"alias_domain_invalid": "Неприпустимий псевдонім домену: %s", "alias_domain_invalid": "Неприпустимий псевдонім домену: %s",
@@ -478,7 +480,9 @@
"extended_sender_acl_denied": "відсутній ACL для встановлення зовнішніх адрес відправників", "extended_sender_acl_denied": "відсутній ACL для встановлення зовнішніх адрес відправників",
"template_exists": "Шаблон %s вже існує", "template_exists": "Шаблон %s вже існує",
"template_id_invalid": "Ідентифікатор шаблону %s недійсний", "template_id_invalid": "Ідентифікатор шаблону %s недійсний",
"template_name_invalid": "Ім'я шаблону невірне" "template_name_invalid": "Ім'я шаблону невірне",
"img_dimensions_exceeded": "",
"img_size_exceeded": ""
}, },
"debug": { "debug": {
"chart_this_server": "Діаграма (цей сервер)", "chart_this_server": "Діаграма (цей сервер)",
@@ -660,7 +664,8 @@
}, },
"domain_footer_html": "Нижній колонтитул HTML", "domain_footer_html": "Нижній колонтитул HTML",
"domain_footer_plain": "ЗВИЧАЙНИЙ нижній колонтитул", "domain_footer_plain": "ЗВИЧАЙНИЙ нижній колонтитул",
"custom_attributes": "Користувацькі атрибути" "custom_attributes": "Користувацькі атрибути",
"domain_footer_skip_replies": ""
}, },
"fido2": { "fido2": {
"confirm": "Підтвердити", "confirm": "Підтвердити",
@@ -1067,7 +1072,8 @@
"cors_headers_edited": "Налаштування CORS збережено", "cors_headers_edited": "Налаштування CORS збережено",
"ip_check_opt_in_modified": "Перевірка IP-адреси успішно збережено", "ip_check_opt_in_modified": "Перевірка IP-адреси успішно збережено",
"template_removed": "Шаблону із ID %s видалено", "template_removed": "Шаблону із ID %s видалено",
"f2b_banlist_refreshed": "Ідентифікатор списку заборонених успішно оновлено." "f2b_banlist_refreshed": "Ідентифікатор списку заборонених успішно оновлено.",
"domain_footer_modified": ""
}, },
"tfa": { "tfa": {
"confirm": "Підтвердьте", "confirm": "Підтвердьте",
@@ -1094,7 +1100,8 @@
"set_tfa": "Встановити метод двофакторної перевірки", "set_tfa": "Встановити метод двофакторної перевірки",
"u2f_deprecated": "Схоже, ваш ключ був зареєстрований за допомогою застарілого методу U2F. Ми дезактивуємо двофакторну автентифікацію для вас і видалимо ваш ключ.", "u2f_deprecated": "Схоже, ваш ключ був зареєстрований за допомогою застарілого методу U2F. Ми дезактивуємо двофакторну автентифікацію для вас і видалимо ваш ключ.",
"waiting_usb_auth": "<i>Очікування пристрою USB...</i><br><br>Будь ласка, натисніть зараз кнопку на USB пристрої.", "waiting_usb_auth": "<i>Очікування пристрою USB...</i><br><br>Будь ласка, натисніть зараз кнопку на USB пристрої.",
"waiting_usb_register": "<i>Очікування USB-пристрою...</i><br><br>Будь ласка, введіть пароль вище та підтвердіть реєстрацію, натиснувши кнопку на USB пристрої." "waiting_usb_register": "<i>Очікування USB-пристрою...</i><br><br>Будь ласка, введіть пароль вище та підтвердіть реєстрацію, натиснувши кнопку на USB пристрої.",
"authenticators": ""
}, },
"user": { "user": {
"action": "Дії", "action": "Дії",

View File

@@ -107,7 +107,8 @@
"timeout2": "本地主机连接超时时间", "timeout2": "本地主机连接超时时间",
"username": "用户名", "username": "用户名",
"validate": "验证", "validate": "验证",
"validation_success": "验证成功" "validation_success": "验证成功",
"dry": ""
}, },
"admin": { "admin": {
"access": "权限管理", "access": "权限管理",
@@ -336,7 +337,21 @@
"validate_license_now": "通过证书服务器验证 GUID", "validate_license_now": "通过证书服务器验证 GUID",
"verify": "验证", "verify": "验证",
"yes": "&#10003;", "yes": "&#10003;",
"options": "选项" "options": "选项",
"f2b_max_ban_time": "最长封禁时间(秒)",
"copy_to_clipboard": "复制到粘贴板",
"allowed_methods": "",
"allowed_origins": "",
"logo_dark_label": "",
"logo_normal_label": "",
"cors_settings": "",
"f2b_ban_time_increment": "",
"f2b_manage_external": "",
"f2b_manage_external_info": "",
"ip_check": "",
"ip_check_disabled": "",
"ip_check_opt_in": "",
"queue_unban": ""
}, },
"danger": { "danger": {
"access_denied": "访问被拒绝或者表单数据无效", "access_denied": "访问被拒绝或者表单数据无效",
@@ -456,7 +471,18 @@
"validity_missing": "请设置有效期", "validity_missing": "请设置有效期",
"value_missing": "请填入所有值", "value_missing": "请填入所有值",
"yotp_verification_failed": "Yubico OTP 认证失败: %s", "yotp_verification_failed": "Yubico OTP 认证失败: %s",
"template_exists": "模板 %s 已存在" "template_exists": "模板 %s 已存在",
"template_name_invalid": "模板名称无效",
"webauthn_authenticator_failed": "",
"webauthn_username_failed": "",
"cors_invalid_method": "",
"cors_invalid_origin": "",
"img_dimensions_exceeded": "",
"img_size_exceeded": "",
"webauthn_publickey_failed": "",
"demo_mode_enabled": "",
"extended_sender_acl_denied": "",
"template_id_invalid": ""
}, },
"debug": { "debug": {
"chart_this_server": "图表 (此服务器)", "chart_this_server": "图表 (此服务器)",
@@ -487,7 +513,17 @@
"container_disabled": "容器已被停止或禁用", "container_disabled": "容器已被停止或禁用",
"container_running": "运行中", "container_running": "运行中",
"cores": "核心数", "cores": "核心数",
"memory": "内存" "memory": "内存",
"error_show_ip": "无法解析公网IP地址",
"show_ip": "显示公网IP",
"update_available": "有可用更新",
"update_failed": "无法检查更新",
"container_stopped": "",
"architecture": "",
"no_update_available": "",
"wip": "",
"current_time": "",
"timezone": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "来自 A/AAAA 记录的值。但只要记录指向正确的资源即可。", "cname_from_a": "来自 A/AAAA 记录的值。但只要记录指向正确的资源即可。",
@@ -611,7 +647,25 @@
"title": "编辑对象", "title": "编辑对象",
"unchanged_if_empty": "如果不更改则留空", "unchanged_if_empty": "如果不更改则留空",
"username": "用户名", "username": "用户名",
"validate_save": "验证并保存" "validate_save": "验证并保存",
"footer_exclude": "",
"created_on": "",
"domain_footer_skip_replies": "",
"last_modified": "",
"custom_attributes": "",
"domain_footer": "",
"domain_footer_html": "",
"domain_footer_info": "",
"domain_footer_info_vars": {
"auth_user": "",
"from_user": "",
"from_name": "",
"from_addr": "",
"from_domain": "",
"custom": ""
},
"domain_footer_plain": "",
"pushover_sound": ""
}, },
"fido2": { "fido2": {
"confirm": "确认", "confirm": "确认",
@@ -652,7 +706,8 @@
"quarantine": "隔离", "quarantine": "隔离",
"restart_netfilter": "重启 netfilter", "restart_netfilter": "重启 netfilter",
"restart_sogo": "重启 SOGo", "restart_sogo": "重启 SOGo",
"user_settings": "用户设置" "user_settings": "用户设置",
"mailcow_system": ""
}, },
"info": { "info": {
"awaiting_tfa_confirmation": "等待 TFA 确认", "awaiting_tfa_confirmation": "等待 TFA 确认",
@@ -831,7 +886,17 @@
"mailbox_templates": "邮箱模板", "mailbox_templates": "邮箱模板",
"gal": "全局地址列表", "gal": "全局地址列表",
"max_aliases": "最大别名数", "max_aliases": "最大别名数",
"max_mailboxes": "最大可能的邮箱数" "max_mailboxes": "最大可能的邮箱数",
"goto_ham": "",
"goto_spam": "",
"templates": "",
"template": "",
"force_pw_update": "",
"last_modified": "",
"add_template": "",
"created_on": "",
"max_quota": "",
"relay_unknown": ""
}, },
"oauth2": { "oauth2": {
"access_denied": "请作为邮箱所有者登录以使用 OAuth2 授权", "access_denied": "请作为邮箱所有者登录以使用 OAuth2 授权",
@@ -897,13 +962,25 @@
}, },
"queue": { "queue": {
"queue_manager": "队列管理器", "queue_manager": "队列管理器",
"delete": "全部删除" "delete": "全部删除",
"show_message": "",
"unban": "",
"unhold_mail": "",
"unhold_mail_legend": "",
"flush": "",
"info": "",
"legend": "",
"ays": "",
"deliver_mail": "",
"deliver_mail_legend": "",
"hold_mail": "",
"hold_mail_legend": ""
}, },
"ratelimit": { "ratelimit": {
"disabled": "禁用", "disabled": "禁用",
"second": "msgs / 秒", "second": "msgs / 秒",
"minute": "msgs / 分钟", "minute": "msgs / 分钟",
"hour": "msgs / 小", "hour": "msgs / 小",
"day": "msgs / 天" "day": "msgs / 天"
}, },
"start": { "start": {
@@ -989,7 +1066,14 @@
"verified_fido2_login": "FIDO2 登录验证成功", "verified_fido2_login": "FIDO2 登录验证成功",
"verified_totp_login": "TOTP 登录验证成功", "verified_totp_login": "TOTP 登录验证成功",
"verified_webauthn_login": "WebAuthn 登录验证成功", "verified_webauthn_login": "WebAuthn 登录验证成功",
"verified_yotp_login": "Yubico OTP 登录验证成功" "verified_yotp_login": "Yubico OTP 登录验证成功",
"cors_headers_edited": "",
"domain_footer_modified": "",
"f2b_banlist_refreshed": "",
"ip_check_opt_in_modified": "",
"template_added": "",
"template_modified": "",
"template_removed": ""
}, },
"tfa": { "tfa": {
"api_register": "%s 使用了 Yubico Cloud API请<a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">在此</a>为你的密钥获取 API 密钥", "api_register": "%s 使用了 Yubico Cloud API请<a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">在此</a>为你的密钥获取 API 密钥",
@@ -1016,7 +1100,8 @@
"webauthn": "WebAuthn 认证", "webauthn": "WebAuthn 认证",
"waiting_usb_auth": "<i>等待 USB 设备中...</i><br><br>现在请触碰你的 WebAuthn USB 设备上的按钮。", "waiting_usb_auth": "<i>等待 USB 设备中...</i><br><br>现在请触碰你的 WebAuthn USB 设备上的按钮。",
"waiting_usb_register": "<i>等待 USB 设备中...</i><br><br>请在上方输入你的密码并请触碰你的 WebAuthn USB 设备上的按钮以确认注册该 WebAuthn 设备。", "waiting_usb_register": "<i>等待 USB 设备中...</i><br><br>请在上方输入你的密码并请触碰你的 WebAuthn USB 设备上的按钮以确认注册该 WebAuthn 设备。",
"yubi_otp": "Yubico OTP 认证" "yubi_otp": "Yubico OTP 认证",
"authenticators": ""
}, },
"user": { "user": {
"action": "操作", "action": "操作",
@@ -1177,7 +1262,10 @@
"weeks": "周", "weeks": "周",
"with_app_password": "包含应用密码", "with_app_password": "包含应用密码",
"year": "年", "year": "年",
"years": "年" "years": "年",
"pushover_sound": "",
"attribute": "",
"value": ""
}, },
"warning": { "warning": {
"cannot_delete_self": "不能删除已登录的用户", "cannot_delete_self": "不能删除已登录的用户",
@@ -1202,7 +1290,20 @@
"paginate": { "paginate": {
"first": "第一页", "first": "第一页",
"last": "最后一页", "last": "最后一页",
"previous": "上一页" "previous": "上一页",
} "next": "下一页"
},
"decimal": "",
"infoPostFix": "",
"infoFiltered": "",
"thousands": "",
"lengthMenu": "",
"loadingRecords": "",
"zeroRecords": "",
"aria": {
"sortAscending": "",
"sortDescending": ""
},
"emptyTable": ""
} }
} }

View File

@@ -480,7 +480,9 @@
"extended_sender_acl_denied": "缺少設定外部寄件者地址的 ACL", "extended_sender_acl_denied": "缺少設定外部寄件者地址的 ACL",
"template_exists": "模板 %s 已存在", "template_exists": "模板 %s 已存在",
"template_id_invalid": "範本 ID %s 無效", "template_id_invalid": "範本 ID %s 無效",
"template_name_invalid": "模板名稱無效" "template_name_invalid": "模板名稱無效",
"img_dimensions_exceeded": "",
"img_size_exceeded": ""
}, },
"debug": { "debug": {
"chart_this_server": "圖表 (此伺服器)", "chart_this_server": "圖表 (此伺服器)",
@@ -520,7 +522,8 @@
"update_available": "有可用更新", "update_available": "有可用更新",
"no_update_available": "系統已經是最新版本", "no_update_available": "系統已經是最新版本",
"update_failed": "無法檢查更新", "update_failed": "無法檢查更新",
"wip": "工作正在進行中" "wip": "工作正在進行中",
"timezone": ""
}, },
"diagnostics": { "diagnostics": {
"cname_from_a": "由 A/AAAA 紀錄獲取。只要紀錄指向正確的資源,此功能就會持續運作。", "cname_from_a": "由 A/AAAA 紀錄獲取。只要紀錄指向正確的資源,此功能就會持續運作。",
@@ -650,7 +653,19 @@
"validate_save": "驗證並儲存", "validate_save": "驗證並儲存",
"domain_footer_info": "網域範圍的頁尾將會新增至與該網域內的位址關聯的所有外發電子郵件。 <br> 以下變數可用於頁尾:", "domain_footer_info": "網域範圍的頁尾將會新增至與該網域內的位址關聯的所有外發電子郵件。 <br> 以下變數可用於頁尾:",
"custom_attributes": "自訂屬性", "custom_attributes": "自訂屬性",
"pushover_sound": "聲音" "pushover_sound": "聲音",
"domain_footer_skip_replies": "",
"domain_footer": "",
"domain_footer_html": "",
"domain_footer_info_vars": {
"auth_user": "",
"from_user": "",
"from_name": "",
"from_addr": "",
"from_domain": "",
"custom": ""
},
"domain_footer_plain": ""
}, },
"fido2": { "fido2": {
"confirm": "確認", "confirm": "確認",
@@ -1069,7 +1084,8 @@
"webauthn": "WebAuthn 認證", "webauthn": "WebAuthn 認證",
"waiting_usb_auth": "<i>等待 USB 裝置...</i><br><br>請觸碰 USB 裝置上的按鈕。", "waiting_usb_auth": "<i>等待 USB 裝置...</i><br><br>請觸碰 USB 裝置上的按鈕。",
"waiting_usb_register": "<i>等待 USB 裝置...</i><br><br>請輸入密碼並觸碰 USB 裝置上的按鈕來確認註冊。", "waiting_usb_register": "<i>等待 USB 裝置...</i><br><br>請輸入密碼並觸碰 USB 裝置上的按鈕來確認註冊。",
"yubi_otp": "Yubico OTP 認證" "yubi_otp": "Yubico OTP 認證",
"authenticators": ""
}, },
"user": { "user": {
"action": "操作", "action": "操作",
@@ -1271,7 +1287,8 @@
"collapse_all": "全部折疊", "collapse_all": "全部折疊",
"emptyTable": "表中沒有可用數據", "emptyTable": "表中沒有可用數據",
"thousands": ",", "thousands": ",",
"decimal": "." "decimal": ".",
"infoPostFix": ""
}, },
"queue": { "queue": {
"deliver_mail_legend": "嘗試重新投遞選定的郵件。", "deliver_mail_legend": "嘗試重新投遞選定的郵件。",

View File

@@ -146,7 +146,6 @@
var lang_fido2 = {{ lang_fido2|raw }}; var lang_fido2 = {{ lang_fido2|raw }};
var docker_timeout = {{ docker_timeout|raw }} * 1000; var docker_timeout = {{ docker_timeout|raw }} * 1000;
var mailcow_cc_role = '{{ mailcow_cc_role }}'; var mailcow_cc_role = '{{ mailcow_cc_role }}';
var last_login = '{{ last_login }}';
var mailcow_info = { var mailcow_info = {
version_tag: '{{ mailcow_info.version_tag }}', version_tag: '{{ mailcow_info.version_tag }}',
last_version_tag: '{{ mailcow_info.last_version_tag }}', last_version_tag: '{{ mailcow_info.last_version_tag }}',

View File

@@ -77,7 +77,7 @@
<td>Version</td> <td>Version</td>
<td class="text-break"> <td class="text-break">
<div class="fw-bolder"> <div class="fw-bolder">
<p ><a href="#" id="mailcow_version">{{ mailcow_info.version_tag }}</a></p> <p><a href="{{ mailcow_info.git_project_url }}/releases/tag/{{ mailcow_info.version_tag }}" id="mailcow_version" target="_blank">{{ mailcow_info.version_tag }}</a></p>
<p id="mailcow_update"></p> <p id="mailcow_update"></p>
</div> </div>
</td> </td>

View File

@@ -155,7 +155,7 @@
<li class="login-history" data-days="31"><a class="dropdown-item" href="#">1 {{ lang.user.month }}</a></li> <li class="login-history" data-days="31"><a class="dropdown-item" href="#">1 {{ lang.user.month }}</a></li>
</ul> </ul>
</div> </div>
<div class="last-login mt-4"></div> <div class="last-login mt-4" id="recent-logins"></div>
<span class="clear-last-logins mt-2"> <span class="clear-last-logins mt-2">
{{ lang.user.clear_recent_successful_connections }} {{ lang.user.clear_recent_successful_connections }}
</span> </span>

View File

@@ -1,8 +1,7 @@
version: '2.1'
services: services:
unbound-mailcow: unbound-mailcow:
image: mailcow/unbound:1.21 image: mailcow/unbound:1.22
environment: environment:
- TZ=${TZ} - TZ=${TZ}
- SKIP_UNBOUND_HEALTHCHECK=${SKIP_UNBOUND_HEALTHCHECK:-n} - SKIP_UNBOUND_HEALTHCHECK=${SKIP_UNBOUND_HEALTHCHECK:-n}
@@ -62,7 +61,7 @@ services:
- redis - redis
clamd-mailcow: clamd-mailcow:
image: mailcow/clamd:1.65 image: mailcow/clamd:1.66
restart: always restart: always
depends_on: depends_on:
unbound-mailcow: unbound-mailcow:
@@ -81,7 +80,7 @@ services:
- clamd - clamd
rspamd-mailcow: rspamd-mailcow:
image: mailcow/rspamd:1.95 image: mailcow/rspamd:1.96
stop_grace_period: 30s stop_grace_period: 30s
depends_on: depends_on:
- dovecot-mailcow - dovecot-mailcow
@@ -111,7 +110,7 @@ services:
- rspamd - rspamd
php-fpm-mailcow: php-fpm-mailcow:
image: mailcow/phpfpm:1.87 image: mailcow/phpfpm:1.88
command: "php-fpm -d date.timezone=${TZ} -d expose_php=0" command: "php-fpm -d date.timezone=${TZ} -d expose_php=0"
depends_on: depends_on:
- redis-mailcow - redis-mailcow
@@ -222,7 +221,7 @@ services:
- sogo - sogo
dovecot-mailcow: dovecot-mailcow:
image: mailcow/dovecot:1.28.2 image: mailcow/dovecot:1.30
depends_on: depends_on:
- mysql-mailcow - mysql-mailcow
- netfilter-mailcow - netfilter-mailcow
@@ -265,6 +264,7 @@ services:
- REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-} - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-}
- REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-} - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-}
- COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized} - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized}
- FLATCURVE_EXPERIMENTAL=${FLATCURVE_EXPERIMENTAL:-n}
ports: ports:
- "${DOVEADM_PORT:-127.0.0.1:19991}:12345" - "${DOVEADM_PORT:-127.0.0.1:19991}:12345"
- "${IMAP_PORT:-143}:143" - "${IMAP_PORT:-143}:143"
@@ -290,7 +290,7 @@ services:
ofelia.job-exec.dovecot_sarules.schedule: "@every 24h" ofelia.job-exec.dovecot_sarules.schedule: "@every 24h"
ofelia.job-exec.dovecot_sarules.command: "/bin/bash -c \"/usr/local/bin/sa-rules.sh\"" ofelia.job-exec.dovecot_sarules.command: "/bin/bash -c \"/usr/local/bin/sa-rules.sh\""
ofelia.job-exec.dovecot_fts.schedule: "@every 24h" ofelia.job-exec.dovecot_fts.schedule: "@every 24h"
ofelia.job-exec.dovecot_fts.command: "/usr/bin/curl http://solr:8983/solr/dovecot-fts/update?optimize=true" ofelia.job-exec.dovecot_fts.command: "/bin/bash -c \"/usr/local/bin/gosu vmail /usr/local/bin/optimize-fts.sh\""
ofelia.job-exec.dovecot_repl_health.schedule: "@every 5m" ofelia.job-exec.dovecot_repl_health.schedule: "@every 5m"
ofelia.job-exec.dovecot_repl_health.command: "/bin/bash -c \"/usr/local/bin/gosu vmail /usr/local/bin/repl_health.sh\"" ofelia.job-exec.dovecot_repl_health.command: "/bin/bash -c \"/usr/local/bin/gosu vmail /usr/local/bin/repl_health.sh\""
ulimits: ulimits:
@@ -305,7 +305,7 @@ services:
- dovecot - dovecot
postfix-mailcow: postfix-mailcow:
image: mailcow/postfix:1.74 image: mailcow/postfix:1.75
depends_on: depends_on:
mysql-mailcow: mysql-mailcow:
condition: service_started condition: service_started
@@ -405,13 +405,14 @@ services:
condition: service_started condition: service_started
unbound-mailcow: unbound-mailcow:
condition: service_healthy condition: service_healthy
image: mailcow/acme:1.87 image: mailcow/acme:1.88
dns: dns:
- ${IPV4_NETWORK:-172.22.1}.254 - ${IPV4_NETWORK:-172.22.1}.254
environment: environment:
- LOG_LINES=${LOG_LINES:-9999} - LOG_LINES=${LOG_LINES:-9999}
- ACME_CONTACT=${ACME_CONTACT:-} - ACME_CONTACT=${ACME_CONTACT:-}
- ADDITIONAL_SAN=${ADDITIONAL_SAN} - ADDITIONAL_SAN=${ADDITIONAL_SAN}
- AUTODISCOVER_SAN=${AUTODISCOVER_SAN:-y}
- MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME} - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
- DBNAME=${DBNAME} - DBNAME=${DBNAME}
- DBUSER=${DBUSER} - DBUSER=${DBUSER}
@@ -441,7 +442,7 @@ services:
- acme - acme
netfilter-mailcow: netfilter-mailcow:
image: mailcow/netfilter:1.58 image: mailcow/netfilter:1.59
stop_grace_period: 30s stop_grace_period: 30s
restart: always restart: always
privileged: true privileged: true
@@ -460,7 +461,7 @@ services:
- /lib/modules:/lib/modules:ro - /lib/modules:/lib/modules:ro
watchdog-mailcow: watchdog-mailcow:
image: mailcow/watchdog:2.02 image: mailcow/watchdog:2.03
dns: dns:
- ${IPV4_NETWORK:-172.22.1}.254 - ${IPV4_NETWORK:-172.22.1}.254
tmpfs: tmpfs:
@@ -532,7 +533,7 @@ services:
- watchdog - watchdog
dockerapi-mailcow: dockerapi-mailcow:
image: mailcow/dockerapi:2.07 image: mailcow/dockerapi:2.08
security_opt: security_opt:
- label=disable - label=disable
restart: always restart: always
@@ -553,7 +554,7 @@ services:
##### Will be removed soon ##### ##### Will be removed soon #####
solr-mailcow: solr-mailcow:
image: mailcow/solr:1.8.2 image: mailcow/solr:1.8.3
restart: always restart: always
depends_on: depends_on:
- netfilter-mailcow - netfilter-mailcow
@@ -565,6 +566,7 @@ services:
- TZ=${TZ} - TZ=${TZ}
- SOLR_HEAP=${SOLR_HEAP:-1024} - SOLR_HEAP=${SOLR_HEAP:-1024}
- SKIP_SOLR=${SKIP_SOLR:-y} - SKIP_SOLR=${SKIP_SOLR:-y}
- FLATCURVE_EXPERIMENTAL=${FLATCURVE_EXPERIMENTAL:-n}
networks: networks:
mailcow-network: mailcow-network:
aliases: aliases:
@@ -572,7 +574,7 @@ services:
################################ ################################
olefy-mailcow: olefy-mailcow:
image: mailcow/olefy:1.12 image: mailcow/olefy:1.13
restart: always restart: always
environment: environment:
- TZ=${TZ} - TZ=${TZ}

View File

@@ -336,6 +336,13 @@ MAILDIR_GC_TIME=7200
ADDITIONAL_SAN= ADDITIONAL_SAN=
# Obtain certificates for autodiscover.* and autoconfig.* domains.
# This can be useful to switch off in case you are in a scenario where a reverse proxy already handles those.
# There are mixed scenarios where ports 80,443 are occupied and you do not want to share certs
# between services. So acme-mailcow obtains for maildomains and all web-things get handled
# in the reverse proxy.
AUTODISCOVER_SAN=y
# Additional server names for mailcow UI # Additional server names for mailcow UI
# #
# Specify alternative addresses for the mailcow UI to respond to # Specify alternative addresses for the mailcow UI to respond to

View File

@@ -1,4 +1,3 @@
version: '2.1'
services: services:
unbound-mailcow: unbound-mailcow:
build: ./data/Dockerfiles/unbound build: ./data/Dockerfiles/unbound

View File

@@ -1,4 +1,3 @@
version: '2.1'
services: services:
clamd-mailcow: clamd-mailcow:

View File

@@ -1,4 +1,3 @@
version: '2.1'
services: services:
php-fpm-mailcow: php-fpm-mailcow:
@@ -26,6 +25,6 @@ services:
- /var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock - /var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock
mysql-mailcow: mysql-mailcow:
image: alpine:3.19 image: alpine:3.20
command: /bin/true command: /bin/true
restart: "no" restart: "no"

View File

@@ -2,7 +2,6 @@
## Set haproxy_trusted_networks in Dovecots extra.conf! ## Set haproxy_trusted_networks in Dovecots extra.conf!
## ##
version: '2.1'
services: services:
dovecot-mailcow: dovecot-mailcow:

View File

@@ -1,6 +1,39 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# renovate: datasource=github-releases depName=nextcloud/server versioning=semver extractVersion=^v(?<version>.*)$ # renovate: datasource=github-releases depName=nextcloud/server versioning=semver extractVersion=^v(?<version>.*)$
NEXTCLOUD_VERSION=28.0.1 NEXTCLOUD_VERSION=28.0.6
display_warning() {
local message=("$@")
local max_length=0
for line in "${message[@]}"; do
if (( ${#line} > max_length )); then
max_length=${#line}
fi
done
local border=$(printf '%*s' "$((max_length + 4))" '' | tr ' ' '#')
echo -e "\e[31m${border}"
for line in "${message[@]}"; do
printf "\e[31m# %-*s #\n" "$max_length" "$line"
done
echo -e "\e[31m${border}"
echo -e "\e[0m"
}
display_warning "WARNING: This Script is deprecated and will be removed in December 2024!" \
"mailcow will drop this installation/maintenance script within December 2024..." \
"To ensure you can still use your Nextcloud Datas, please migrate to a standalone" \
"Nextcloud instance either on a new Host or this host." \
"You can either use Nextcloud in Docker or install it manually." \
" "\
"mailcow will NOT DELETE any Nextcloud Data, even when this script was removed!!"
echo -e "Waiting 5 seconds before continuing..."
sleep 5
echo -ne "Checking prerequisites..." echo -ne "Checking prerequisites..."
sleep 1 sleep 1

View File

@@ -450,6 +450,7 @@ CONFIG_ARRAY=(
"SKIP_CLAMD" "SKIP_CLAMD"
"SKIP_IP_CHECK" "SKIP_IP_CHECK"
"ADDITIONAL_SAN" "ADDITIONAL_SAN"
"AUTODISCOVER_SAN"
"DOVEADM_PORT" "DOVEADM_PORT"
"IPV4_NETWORK" "IPV4_NETWORK"
"IPV6_NETWORK" "IPV6_NETWORK"
@@ -715,6 +716,18 @@ for option in ${CONFIG_ARRAY[@]}; do
echo '# Comma separated list without spaces! Example: ADDITIONAL_SERVER_NAMES=a.b.c,d.e.f' >> mailcow.conf echo '# Comma separated list without spaces! Example: ADDITIONAL_SERVER_NAMES=a.b.c,d.e.f' >> mailcow.conf
echo 'ADDITIONAL_SERVER_NAMES=' >> mailcow.conf echo 'ADDITIONAL_SERVER_NAMES=' >> mailcow.conf
fi fi
elif [[ ${option} == "AUTODISCOVER_SAN" ]]; then
if ! grep -q ${option} mailcow.conf; then
echo "Adding new option \"${option}\" to mailcow.conf"
echo '# Obtain certificates for autodiscover.* and autoconfig.* domains.' >> mailcow.conf
echo '# This can be useful to switch off in case you are in a scenario where a reverse proxy already handles those.' >> mailcow.conf
echo '# There are mixed scenarios where ports 80,443 are occupied and you do not want to share certs' >> mailcow.conf
echo '# between services. So acme-mailcow obtains for maildomains and all web-things get handled' >> mailcow.conf
echo '# in the reverse proxy.' >> mailcow.conf
echo 'AUTODISCOVER_SAN=y' >> mailcow.conf
fi
elif [[ ${option} == "ACME_CONTACT" ]]; then elif [[ ${option} == "ACME_CONTACT" ]]; then
if ! grep -q ${option} mailcow.conf; then if ! grep -q ${option} mailcow.conf; then
echo "Adding new option \"${option}\" to mailcow.conf" echo "Adding new option \"${option}\" to mailcow.conf"