diff --git a/actions/email_server b/actions/email_server new file mode 100755 index 000000000..1cc122e5d --- /dev/null +++ b/actions/email_server @@ -0,0 +1,82 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: AGPL-3.0-or-later + +import argparse +import logging +import os +import sys + +import plinth.log + +EXIT_SYNTAX = 10 +EXIT_PERM = 20 + +# Set up logging +plinth.log.pipe_to_syslog(to_stderr='tty') +logger = logging.getLogger(os.path.basename(__file__)) + + +def reserved_for_root(fun): + def wrapped(*args, **kwargs): + if os.getuid() != 0: + logger.critical('This action is reserved for root') + sys.exit(EXIT_PERM) + return fun(*args, **kwargs) + return wrapped + + +def main(): + if not sys.stdin.isatty(): + print('WARNING: Output will not be shown. Check syslog for logs', + file=sys.stderr) + + parser = argparse.ArgumentParser() + group = parser.add_mutually_exclusive_group(required=True) + group.add_argument('-i', nargs='+', dest='ipc') + + # Select the first non-empty dict item + adict = vars(parser.parse_args()) + generator = (kv for kv in adict.items() if kv[1] is not None) + subcommand, arguments = next(generator) + + function = globals()['subcommand_' + subcommand] + try: + function(*arguments) + except Exception as e: + logger.exception(e) + _log_additional_info() + sys.exit(1) + + +@reserved_for_root +def subcommand_ipc(module_name, action_name, *args): + import plinth.modules.email_server.audit as audit + + # We only run actions defined in the audit module + if module_name not in audit.__all__: + logger.critical('Bad module name: %r', module_name) + sys.exit(EXIT_SYNTAX) + + module = getattr(audit, module_name) + function = getattr(module, 'action_' + action_name, None) + if function is None: + logger.critical('Bad action: %s/%r', module_name, action_name) + sys.exit(EXIT_SYNTAX) + + function(*args) + + +def _log_additional_info(): + import grp + import pwd + resu = ','.join(pwd.getpwuid(uid).pw_name for uid in os.getresuid()) + resg = ','.join(grp.getgrgid(gid).gr_name for gid in os.getresgid()) + pyver = sys.version.replace('\n', ' ') + logger.error('--- Additional Information ---') + logger.error('resuid=%s, resgid=%s', resu, resg) + logger.error('argv=%r, cwd=%r', sys.argv, os.getcwd()) + logger.error('pyver=%s (%s)', pyver, os.uname().machine) + + +if __name__ == '__main__': + main() diff --git a/actions/wordpress b/actions/wordpress new file mode 100755 index 000000000..ee2afe868 --- /dev/null +++ b/actions/wordpress @@ -0,0 +1,189 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +Configuration helper for WordPress. +""" + +import argparse +import os +import pathlib +import random +import shutil +import string +import subprocess + +import augeas +from plinth import action_utils +from plinth.modules.wordpress import PUBLIC_ACCESS_FILE + +_config_file_path = pathlib.Path('/etc/wordpress/config-default.php') +_db_file_path = pathlib.Path('/etc/wordpress/database.php') +_db_backup_file = pathlib.Path( + '/var/lib/plinth/backups-data/wordpress-database.sql') +DB_HOST = 'localhost' +DB_NAME = 'wordpress_fbx' +DB_USER = 'wordpress_fbx' + + +def parse_arguments(): + """Return parsed command line arguments as dictionary.""" + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(dest='subcommand', help='Sub command') + + subparsers.add_parser('setup', + help='Create initial configuration and database') + subparsers.add_parser('dump-database', help='Dump database to file') + subparsers.add_parser('restore-database', + help='Restore database from file') + subparser = subparsers.add_parser('set-public', + help='Allow/disallow public access') + subparser.add_argument('--enable', choices=('True', 'False'), + help='Whether to enable or disable public acceess') + + subparsers.required = True + return parser.parse_args() + + +def subcommand_setup(_): + """Create initial configuration and database for WordPress.""" + if _db_file_path.exists() or _config_file_path.exists(): + return + + db_password = _generate_secret_key(16) + + _create_config_file(DB_HOST, DB_NAME, DB_USER, db_password) + _create_database(DB_NAME) + _set_privileges(DB_HOST, DB_NAME, DB_USER, db_password) + + +def _create_config_file(db_host, db_name, db_user, db_password): + """Create a PHP configuration file included by WordPress.""" + secret_keys = [_generate_secret_key() for _ in range(8)] + + config_contents = f'''~`+=,.:/?|') + rand = random.SystemRandom() + return ''.join(rand.choice(chars) for _ in range(length)) + + +def subcommand_set_public(arguments): + """Allow/disallow public access.""" + public_access_file = pathlib.Path(PUBLIC_ACCESS_FILE) + if arguments.enable == 'True': + public_access_file.touch() + else: + public_access_file.unlink(missing_ok=True) + + action_utils.service_reload('apache2') + + +def subcommand_dump_database(_): + """Dump database to file.""" + _db_backup_file.parent.mkdir(parents=True, exist_ok=True) + with _db_backup_file.open('w') as file_handle: + subprocess.run([ + 'mysqldump', '--add-drop-database', '--add-drop-table', + '--add-drop-trigger', '--user', 'root', '--databases', DB_NAME + ], stdout=file_handle, check=True) + + +def subcommand_restore_database(_): + """Restore database from file.""" + with _db_backup_file.open('r') as file_handle: + subprocess.run(['mysql', '--user', 'root'], stdin=file_handle, + check=True) + + _set_privileges(DB_HOST, DB_NAME, DB_USER, _read_db_password()) + + +def _read_db_password(): + """Return the password stored in the DB configuration file.""" + aug = _load_augeas() + return aug.get('./$dbpass').strip('\'"') + + +def _load_augeas(): + """Initialize augeas.""" + aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD + + augeas.Augeas.NO_MODL_AUTOLOAD) + aug.transform('Phpvars', str(_db_file_path)) + aug.set('/augeas/context', '/files' + str(_db_file_path)) + aug.load() + + return aug + + +def main(): + """Parse arguments and perform all duties.""" + arguments = parse_arguments() + + subcommand = arguments.subcommand.replace('-', '_') + subcommand_method = globals()['subcommand_' + subcommand] + subcommand_method(arguments) + + +if __name__ == '__main__': + main() diff --git a/container b/container index 1b9082446..c02e6b7b2 100755 --- a/container +++ b/container @@ -126,7 +126,6 @@ import sys import tempfile import time import urllib.parse - from urllib.request import urlopen URLS = { @@ -139,7 +138,7 @@ URLS = { } TRUSTED_KEYS = ['013D86D8BA32EAB4A6691BF85D4153D6FE188FC8'] -KEY_SERVER = 'keys.gnupg.net' +KEY_SERVER = 'keyserver.ubuntu.com' PROVISION_SCRIPT = ''' set -x diff --git a/debian/changelog b/debian/changelog index 067b21f78..b1d6fe8d2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,71 @@ +freedombox (21.8) unstable; urgency=medium + + [ Andrij Mizyk ] + * Translated using Weblate (Ukrainian) + * Translated using Weblate (Ukrainian) + * Translated using Weblate (Ukrainian) + + [ fliu ] + * diagnostics: Allow underscores (_) in app names + * doc/dev: Using mocking instead of importing external modules + * email: Basic app to manage an email server + * email: Enable LDAP by calling postconf in a thread-safe way + * email: Implement `email_server ipc set_sasl` and `set_submission` + * email: Set up local delivery (no spam filtering) + * email: Code quality fixes + * email: Fix enabling SMTPS; check return value + * email: dovecot: Support user lookup by UID number + * email: Address some code review comments + * email: Install rspamd; proxy its web interface + * email: Parse command arguments with a mutually exclusive group + * email: mutex: create lock file as plinth user + * email, plinth.log: Write more information to syslog + * email: postconf: Handle postconf returning an empty key + * email: audit: improve the speed of post-installation setup + * email: Open lock file as plinth user + * email: Support UID number lookup in Dovecot + * email: diagnostics: Fix sudo permission problem + * email: views: Implement tab rendering + * email: Implement alias management + * email: aliases: Use bootstrap styles + * email: Add UI for creating the home directory + * email: Add templates for TLS and domains + * email: Implement view for setting up domains + * email: postfix: Install LDAP map support + * email: Implement spam sorting with sieve + * email: apache: X-Robots-Tag header, full URL match + * email: Implement auto-discovery + * email: LMTP: remove the recipient's UID number from email headers + * email: Code cleanup + * email: Implement outbound mail filtering + * email: Reload postfix in domain view + * email: Code cleanup, address reviews + * email: Local delivery: use full email address + * email: postfix: dovecot: Set strong security parameters + * email: setup: Find Let's Encrypt certificates + * email: Documentation, code cleanup + * email: setup: Configure Roundcube + * email: Sender spoofing patch 1/2: domain rewriting + * email: implemented service alert + + [ Sunil Mohan Adapa ] + * doc/dev: Drop seemingly irrelevant automodule reference + * container: Use keyserver.ubuntu.com as the default keyserver + * d/lintian-overrides: Allow all systemd services paths + * d/control: Drop wireless-tools as recommends + * tests: functional: Add a convenience method to logout + * wordpress: New app to manage a WordPress site/blog + + [ Petter Reinholdtsen ] + * Translated using Weblate (Norwegian Bokmål) + + [ James Valleroy ] + * security: Remove display of past vulnerabilities + * locale: Update translation strings + * doc: Fetch latest manual + + -- James Valleroy Mon, 30 Aug 2021 20:01:46 -0400 + freedombox (21.7~bpo11+1) bullseye-backports; urgency=medium * Rebuild for bullseye-backports. diff --git a/debian/control b/debian/control index a21a63897..b0241cbe3 100644 --- a/debian/control +++ b/debian/control @@ -176,8 +176,6 @@ Recommends: tcpdump, # Basic editor, VIM style vim-tiny, -# iwconfig, iwlist and other wireless network tools - wireless-tools, # Priority: standard whois, # Basic editor, Emacs style diff --git a/debian/copyright b/debian/copyright index 6d594ce10..dc737e4d1 100644 --- a/debian/copyright +++ b/debian/copyright @@ -278,6 +278,12 @@ Copyright: 2005 Andrew Dolgov Comment: https://git.tt-rss.org/fox/tt-rss/src/master/images/favicon-72px.png License: GPL-3+ +Files: static/themes/default/icons/wordpress.png + static/themes/default/icons/wordpress.svg +Copyright: 2011-2021 WordPress Contributors +Comment: https://github.com/WordPress/wordpress-develop/blob/master/src/wp-admin/images/wordpress-logo.svg +License: GPL-2+ + Files: static/themes/default/icons/windows.png static/themes/default/icons/windows.svg Copyright: 2007 ruli (https://thenounproject.com/2007ruli/) diff --git a/debian/freedombox.lintian-overrides b/debian/freedombox.lintian-overrides index 408a2e0a6..549015397 100644 --- a/debian/freedombox.lintian-overrides +++ b/debian/freedombox.lintian-overrides @@ -15,3 +15,6 @@ freedombox binary: non-standard-apache2-configuration-name * # web servers. At some point we would like to work with other web servers but # that requires significant effort. freedombox binary: web-application-works-only-with-apache + +# Temporary workaround for https://bugs.debian.org/992465 +freedombox: systemd-service-file-outside-lib usr/lib/systemd/system/*.service diff --git a/debian/gbp.conf b/debian/gbp.conf index 9746d42be..973a10492 100644 --- a/debian/gbp.conf +++ b/debian/gbp.conf @@ -1,3 +1,7 @@ [dch] git-log = --no-merges multimaint-merge = True + +[tag] +debian-tag = v%(version)s +sign-tags = True diff --git a/doc/dev/conf.py b/doc/dev/conf.py index 80d680a1b..937d93efd 100644 --- a/doc/dev/conf.py +++ b/doc/dev/conf.py @@ -16,24 +16,8 @@ list see the documentation: http://www.sphinx-doc.org/en/master/config import os import sys -import django -import django.conf - sys.path.insert(0, os.path.abspath('../../')) -# -- Django setup ------------------------------------------------------------ - -# Ensure that Django models can be imported by Sphinx -import plinth.settings # noqa pylint: disable=E402 isort:skip - -kwargs = {} -for setting in dir(plinth.settings): - if setting.isupper(): - kwargs[setting] = getattr(plinth.settings, setting) - -django.conf.settings.configure(**kwargs) -django.setup(set_prefix=True) - # -- Project information ----------------------------------------------------- # pylint: disable=invalid-name @@ -209,4 +193,29 @@ autodoc_default_options = { 'special-members': '__init__', } +# Mock importing packages +autodoc_mock_imports = [ + 'apt', + 'augeas', + 'axes', + 'bootstrapform', + 'captcha', + 'cherrypy', + 'configobj', + 'dbus', + 'django', + 'gi', + 'markupsafe', + 'OpenSSL', + 'pam', + 'paramiko', + 'psutil', + 'pytest', + 'requests', + 'ruamel', + 'setuptools', + 'stronghold', + 'yaml', +] + html_favicon = './_static/favicon.ico' diff --git a/doc/dev/reference/index.rst b/doc/dev/reference/index.rst index 1a16ce3e5..bf40769aa 100644 --- a/doc/dev/reference/index.rst +++ b/doc/dev/reference/index.rst @@ -20,5 +20,3 @@ and are updated when the API is updated. views forms notifications - -.. automodule:: plinth.modules.ttrss diff --git a/doc/manual/en/Download.raw.wiki b/doc/manual/en/Download.raw.wiki index d29e85a7f..623caea35 100644 --- a/doc/manual/en/Download.raw.wiki +++ b/doc/manual/en/Download.raw.wiki @@ -44,25 +44,11 @@ It is important to verify the images you have downloaded to ensure that the file * First open a terminal and import the public keys of the !FreedomBox developers who built the images: {{{ -$ gpg --recv-keys BCBEBD57A11F70B23782BC5736C361440C9BC971 - -$ gpg --recv-keys 7D6ADB750F91085589484BE677C0C75E7B650808 - -# This is the FreedomBox CI server's key -$ gpg --recv-keys 013D86D8BA32EAB4A6691BF85D4153D6FE188FC8 -}}} - If this command shows an error such as ''new key but contains no user ID - skipped'', then use a different keyserver to download the keys: - {{{ -$ gpg --keyserver keys.gnupg.net --recv-keys BCBEBD57A11F70B23782BC5736C361440C9BC971 -$ gpg --keyserver keys.gnupg.net --recv-keys 7D6ADB750F91085589484BE677C0C75E7B650808 -$ gpg --keyserver keys.gnupg.net --recv-keys 013D86D8BA32EAB4A6691BF85D4153D6FE188FC8 - }}} - Or - {{{ $ gpg --keyserver keyserver.ubuntu.com --recv-keys BCBEBD57A11F70B23782BC5736C361440C9BC971 $ gpg --keyserver keyserver.ubuntu.com --recv-keys 7D6ADB750F91085589484BE677C0C75E7B650808 +# This is the FreedomBox CI server's key $ gpg --keyserver keyserver.ubuntu.com --recv-keys 013D86D8BA32EAB4A6691BF85D4153D6FE188FC8 - }}} +}}} * Next, verify the fingerprint of the public keys: {{{ $ gpg --fingerprint BCBEBD57A11F70B23782BC5736C361440C9BC971 diff --git a/doc/manual/en/ReleaseNotes.raw.wiki b/doc/manual/en/ReleaseNotes.raw.wiki index 838e5cbf2..c5c45d25f 100644 --- a/doc/manual/en/ReleaseNotes.raw.wiki +++ b/doc/manual/en/ReleaseNotes.raw.wiki @@ -10,6 +10,20 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 21.8 (2021-08-30) == + +=== Highlights === + + * wordpress: New app to manage a !WordPress site/blog + +=== Other Changes === + + * d/control: Drop wireless-tools as recommends + * email: Basic app to manage an email server + - Email server app is currently disabled by default, so it is not yet visible in the interface. + * locale: Update translations for Norwegian Bokmål, Ukrainian + * security: Remove display of past vulnerabilities + == FreedomBox 21.7 (2021-08-16) == === Highlights === diff --git a/doc/manual/en/ejabberd.raw.wiki b/doc/manual/en/ejabberd.raw.wiki index 5ed1a8d27..2662cbe2c 100644 --- a/doc/manual/en/ejabberd.raw.wiki +++ b/doc/manual/en/ejabberd.raw.wiki @@ -40,12 +40,6 @@ Once you have a Domain Name, you can tell your !FreedomBox to use it by setting Please note that [[FreedomBox/Manual/PageKite|PageKite]] does not support the XMPP protocol at this time. -=== Use Let's encrypt certificate for ejabberd === - -If your !FreedomBox server uses a Let's Encrypt certificate, you will also want to use it for ejabberd. To do so, as your !FreedomBox admin, go to '''System''' > '''Let's Encrypt''', and select the checkbox at `Use certificate for ejabberd`: - -{{attachment:certificate-for-ejabberd.png|Use of certificate for Ejabberd}} - === Registering FreedomBox users to use XMPP === Currently, all users created through !FreedomBox will be able to login to the XMPP server. You can add new users through the System module [[FreedomBox/Manual/Users|Users and Groups]]. It does not matter which Groups are selected for the new user. diff --git a/doc/manual/en/images/certificate-for-ejabberd.png b/doc/manual/en/images/certificate-for-ejabberd.png deleted file mode 100644 index 5e68901e3..000000000 Binary files a/doc/manual/en/images/certificate-for-ejabberd.png and /dev/null differ diff --git a/doc/manual/es/Download.raw.wiki b/doc/manual/es/Download.raw.wiki index 713f24e92..3b0775e7e 100644 --- a/doc/manual/es/Download.raw.wiki +++ b/doc/manual/es/Download.raw.wiki @@ -41,25 +41,11 @@ Es importante verificar las imágenes que has descargado para asegurar que el fi * Primero abre un terminal e importa las claves publicas de los desarrolladores de !FreedomBox que construyeron las imágenes: {{{ -$ gpg --recv-keys BCBEBD57A11F70B23782BC5736C361440C9BC971 - -$ gpg --recv-keys 7D6ADB750F91085589484BE677C0C75E7B650808 - -# Esta es la clave del servidor de integración contínua de FreedomBox -$ gpg --recv-keys 013D86D8BA32EAB4A6691BF85D4153D6FE188FC8 -}}} - Si este comando muestra un error como ''new key but contains no user ID - skipped'' usa un servidor de claves diferente para descargarlas: - {{{ -$ gpg --keyserver keys.gnupg.net --recv-keys BCBEBD57A11F70B23782BC5736C361440C9BC971 -$ gpg --keyserver keys.gnupg.net --recv-keys 7D6ADB750F91085589484BE677C0C75E7B650808 -$ gpg --keyserver keys.gnupg.net --recv-keys 013D86D8BA32EAB4A6691BF85D4153D6FE188FC8 - }}} - O - {{{ $ gpg --keyserver keyserver.ubuntu.com --recv-keys BCBEBD57A11F70B23782BC5736C361440C9BC971 $ gpg --keyserver keyserver.ubuntu.com --recv-keys 7D6ADB750F91085589484BE677C0C75E7B650808 +# Esta es la clave del servidor de integración contínua de FreedomBox $ gpg --keyserver keyserver.ubuntu.com --recv-keys 013D86D8BA32EAB4A6691BF85D4153D6FE188FC8 - }}} +}}} * A continuación, verifica la huella de las claves públicas: {{{ $ gpg --fingerprint BCBEBD57A11F70B23782BC5736C361440C9BC971 diff --git a/doc/manual/es/ReleaseNotes.raw.wiki b/doc/manual/es/ReleaseNotes.raw.wiki index 838e5cbf2..c5c45d25f 100644 --- a/doc/manual/es/ReleaseNotes.raw.wiki +++ b/doc/manual/es/ReleaseNotes.raw.wiki @@ -10,6 +10,20 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 21.8 (2021-08-30) == + +=== Highlights === + + * wordpress: New app to manage a !WordPress site/blog + +=== Other Changes === + + * d/control: Drop wireless-tools as recommends + * email: Basic app to manage an email server + - Email server app is currently disabled by default, so it is not yet visible in the interface. + * locale: Update translations for Norwegian Bokmål, Ukrainian + * security: Remove display of past vulnerabilities + == FreedomBox 21.7 (2021-08-16) == === Highlights === diff --git a/doc/manual/es/ejabberd.raw.wiki b/doc/manual/es/ejabberd.raw.wiki index baea0f7aa..287633db3 100644 --- a/doc/manual/es/ejabberd.raw.wiki +++ b/doc/manual/es/ejabberd.raw.wiki @@ -38,12 +38,6 @@ Una vez tengas ya tu Nombre de Dominio puedes decirle a tu !FreedomBox que lo us Ten en cuenta que de momento [[es/FreedomBox/Manual/PageKite|PageKite]] no soporta el protocolo XMPP. -=== Usar certificado Let's encrypt para ejabberd === - -Si tu servidor !FreedomBox usa certificado Let's Encrypt querrás emplearlo también para ejabberd. Para ello, ve como admin de !FreedomBox a '''Sistema''' > '''Let's Encrypt''' y marca la caja `Usar certificado para ejabberd`: - -{{attachment:FreedomBox/Manual/ejabberd/certificate-for-ejabberd.png|Uso de certificado para Ejabberd}} - === Habilitar a usuarios para usar XMPP === Actualmente todos los usuarios creados con !FreedomBox podrán ingresar al servidor XMPP. Puedes añadir usuarios nuevos con el módulo [[es/FreedomBox/Manual/Users|Usuarios y Grupos]] del Sistema. Los grupos seleccionados para el usuario nuevo no importan. diff --git a/doc/manual/es/images/certificate-for-ejabberd.png b/doc/manual/es/images/certificate-for-ejabberd.png deleted file mode 100644 index 5e68901e3..000000000 Binary files a/doc/manual/es/images/certificate-for-ejabberd.png and /dev/null differ diff --git a/plinth/__init__.py b/plinth/__init__.py index 74f79da13..6a912bf81 100644 --- a/plinth/__init__.py +++ b/plinth/__init__.py @@ -3,4 +3,4 @@ Package init file. """ -__version__ = '21.7' +__version__ = '21.8' diff --git a/plinth/locale/ar_SA/LC_MESSAGES/django.po b/plinth/locale/ar_SA/LC_MESSAGES/django.po index 3fe0a0407..17e4cfba7 100644 --- a/plinth/locale/ar_SA/LC_MESSAGES/django.po +++ b/plinth/locale/ar_SA/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2020-06-10 15:41+0000\n" "Last-Translator: aiman an \n" "Language-Team: Arabic (Saudi Arabia) Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Web Server" +msgid "Email Server" +msgstr "خادم ويب" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +msgid "Delete selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:31 +msgid "Create a new email alias" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +msgid "Service Alert" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +msgid "Create home directory" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3130,10 +3375,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3801,11 +4042,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4862,11 +5098,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5132,8 +5363,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5161,30 +5392,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -5938,10 +6165,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6118,7 +6341,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6190,13 +6413,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -6944,6 +7160,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7080,10 +7347,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/bg/LC_MESSAGES/django.po b/plinth/locale/bg/LC_MESSAGES/django.po index 9842d5832..0cbad0666 100644 --- a/plinth/locale/bg/LC_MESSAGES/django.po +++ b/plinth/locale/bg/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Bulgarian Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Web Server" +msgid "Email Server" +msgstr "Уеб Сървър" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +msgid "Delete selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:31 +msgid "Create a new email alias" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +msgid "Service Alert" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +msgid "Create home directory" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3137,10 +3382,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3808,11 +4049,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4869,11 +5105,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5143,8 +5374,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5172,30 +5403,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -5949,10 +6176,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6129,7 +6352,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6201,13 +6424,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -6961,6 +7177,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7097,10 +7364,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/bn/LC_MESSAGES/django.po b/plinth/locale/bn/LC_MESSAGES/django.po index 6c6fe7a97..d743126b8 100644 --- a/plinth/locale/bn/LC_MESSAGES/django.po +++ b/plinth/locale/bn/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-06-16 07:33+0000\n" "Last-Translator: Oymate \n" "Language-Team: Bengali Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +msgid "Email Server" +msgstr "" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "Certificates" +msgid "Has a TLS certificate" +msgstr "অনুমতিপত্র" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "ডোমেন" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "নিষ্ক্রিয়" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "Enabled" +msgid "Enable selected" +msgstr "সক্রিয়" + +#: plinth/modules/email_server/templates/email_alias.html:27 +msgid "Delete selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:31 +msgid "Create a new email alias" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service/Port" +msgid "Service Alert" +msgstr "সেবা/পোর্ট" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +msgid "Create home directory" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificates" +msgid "Certificate path" +msgstr "অনুমতিপত্র" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "ডোমেন" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enabled" +msgid "Enabled aliases" +msgstr "সক্রিয়" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "নিষ্ক্রিয়" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3128,10 +3387,6 @@ msgstr "বাতিল" msgid "Service" msgstr "সেবা" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "ডোমেন" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3799,11 +4054,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4860,11 +5110,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5132,8 +5377,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5161,30 +5406,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -5938,10 +6179,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6118,7 +6355,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6190,13 +6427,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -6944,6 +7174,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7080,10 +7361,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/cs/LC_MESSAGES/django.po b/plinth/locale/cs/LC_MESSAGES/django.po index 5ad9d8b96..1ac5b4adc 100644 --- a/plinth/locale/cs/LC_MESSAGES/django.po +++ b/plinth/locale/cs/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-01-25 11:32+0000\n" "Last-Translator: Milan \n" "Language-Team: Czech . Doménu je možné nastavit na stránce nastavení systému." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Chat server" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "Available Domains" +msgid "RoundCube availability" +msgstr "Domény k dispozici" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Žádný certifikát" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Doména" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Vypnuto" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "kabel je připojen" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Označené zachycené stavy smazány" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Vytvořit novou zálohu" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Přidat" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "New Backup" +msgid "New value" +msgstr "Nová záloha" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Aktualizovat" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Typ služby" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Download directory" +msgid "You do not have a home directory." +msgstr "Složka pro stahování" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create Repository" +msgid "Create home directory" +msgstr "Vytvořit repozitář" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Aktuální stav:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Nastavení doménového názvu" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Stav certifikátu" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private repository" +msgid "Private key path" +msgstr "Neveřejný repozitář" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Domů" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Zabezpečení" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Domény" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Zapnout poškozování" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Vypnuto" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3627,10 +3910,6 @@ msgstr "Storno" msgid "Service" msgstr "Služba" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Domény" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4348,11 +4627,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Toto připojení není aktivní." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Zabezpečení" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5626,11 +5900,6 @@ msgstr "" "lesssecureapps\">https://www.google.com/settings/security/lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "E-mailový klient" @@ -5936,8 +6205,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5965,38 +6234,34 @@ msgid "Current Vulnerabilities" msgstr "Stávající zranitelnosti zabezpečení" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Minulé zranitelnosti zabezpečení" - -#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Block Sandbox" msgid "Sandboxed" msgstr "Pískoviště s kostkami" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Block Sandbox" msgid "Sandbox Coverage" msgstr "Pískoviště s kostkami" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 #, fuzzy #| msgid "yes" msgid "Yes" msgstr "ano" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 #, fuzzy #| msgid "None" msgid "No" msgstr "Žádný" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 #, fuzzy #| msgid "Tor is running" msgid "Not running" @@ -6878,10 +7143,6 @@ msgstr "Jméno domácího mazlíčka" msgid "Add new introducer" msgstr "Přidat nový uvaděč" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Přidat" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Připojené uvaděče" @@ -7095,7 +7356,7 @@ msgstr "SOCKS" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "Tor SOCKS port je k dispozici na vašem %(box_name)s na TCP portu 9050." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Nastavení se nezměnila" @@ -7192,13 +7453,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Aktualizovat" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update" @@ -8092,6 +8346,63 @@ msgstr "Smazat připojení" msgid "Server deleted." msgstr "Sdílení smazáno." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Adresa" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "wiki a blog" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "veřejný přístup" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8248,10 +8559,6 @@ msgstr "Základní funkce a webové rozhraní pro %(box_name)s" msgid " Home" msgstr " Domů" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Domů" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Aplikace" @@ -8553,6 +8860,9 @@ msgstr "%(percentage)s%% dokončeno" msgid "Gujarati" msgstr "gudžarátština" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Minulé zranitelnosti zabezpečení" + #~ msgid "Message Archive Management enabled" #~ msgstr "Správa archivu zpráv zapnuta" @@ -9313,9 +9623,6 @@ msgstr "gudžarátština" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "Webový server přes vrstvu zabezpečeného soketu (SSL)" -#~ msgid "Current status:" -#~ msgstr "Aktuální stav:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Smazat wiki nebo blog" @@ -9337,9 +9644,6 @@ msgstr "gudžarátština" #~ msgid "Abort" #~ msgstr "Přerušit" -#~ msgid "New Backup" -#~ msgstr "Nová záloha" - #~ msgid "chrony client in contact with servers" #~ msgstr "klient chrony v kontaktu se servery" diff --git a/plinth/locale/da/LC_MESSAGES/django.po b/plinth/locale/da/LC_MESSAGES/django.po index 9b3cff649..2c50fb515 100644 --- a/plinth/locale/da/LC_MESSAGES/django.po +++ b/plinth/locale/da/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Danish brugernavn@%(domainname)s. Du kan konfigurere systemets " "domæne på Konfigurer siden." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Chatserver" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "Available Domains" +msgid "RoundCube availability" +msgstr "Tilgængelige Domæner" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certficate" +msgid "Has a TLS certificate" +msgstr "Intet certifikat" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Domæne" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +#, fuzzy +#| msgid "Enable Roundcube" +msgid "Roundcube" +msgstr "Aktiver Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Deaktiveret" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "kabel forbundet" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete %(name)s" +msgid "Delete selected" +msgstr "Slet %(name)s" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Opret en ny sikkerhedskopi" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +#, fuzzy +#| msgid "Address" +msgid "Add" +msgstr "Adresse" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Opdater" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Servicetype" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Download directory" +msgid "You do not have a home directory." +msgstr "Download-mappe" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create Repository" +msgid "Create home directory" +msgstr "Opret lager" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Nuværende status:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Certificates (Let's Encrypt)" +msgid "Use Let's Encrypt" +msgstr "Certifikater (Let's Encrypt)" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Domænenavn gemt" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Certifikat Status" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Create User" +msgid "Private key path" +msgstr "Opret Bruger" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Sikkerhed" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Domæner" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable PageKite" +msgid "Enabled aliases" +msgstr "Aktiver PageKite" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Deaktiveret" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3602,10 +3885,6 @@ msgstr "Annuller" msgid "Service" msgstr "Tjeneste" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Domæner" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4327,11 +4606,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Denne forbindelse er ikke aktiv." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Sikkerhed" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5605,13 +5879,6 @@ msgstr "" "lesssecureapps\">https://www.google.com/settings/security/lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -#, fuzzy -#| msgid "Enable Roundcube" -msgid "Roundcube" -msgstr "Aktiver Roundcube" - #: plinth/modules/roundcube/__init__.py:56 #, fuzzy #| msgid "Email Client (Roundcube)" @@ -5913,8 +6180,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5944,36 +6211,32 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Block Sandbox (Minetest)" msgid "Sandboxed" msgstr "Block Testområde (Minetest)" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Block Sandbox (Minetest)" msgid "Sandbox Coverage" msgstr "Block Testområde (Minetest)" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 #, fuzzy #| msgid "yes" msgid "Yes" msgstr "ja" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 #, fuzzy #| msgid "is not running" msgid "Not running" @@ -6827,12 +7090,6 @@ msgstr "Navn" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -#, fuzzy -#| msgid "Address" -msgid "Add" -msgstr "Adresse" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -7041,7 +7298,7 @@ msgstr "SOCKS" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "En Tor SOCKS-port er tilgængelig på din %(box_name)s TCP-port 9050." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Indstilling uændret" @@ -7128,13 +7385,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Opdater" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update" @@ -8017,6 +8267,63 @@ msgstr "Slet Forbindelse" msgid "Server deleted." msgstr "{name} slettet." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Adresse" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki & Blog" +msgid "Website and Blog" +msgstr "Wiki & Blog" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "Publish Key" +msgid "Public access" +msgstr "Distribuer Nøgle" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8172,10 +8479,6 @@ msgstr "Plinth administrationsværktøj til %(box_name)s" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Apps" @@ -9036,9 +9339,6 @@ msgstr "" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "Sikker Webserver (via SSL)" -#~ msgid "Current status:" -#~ msgstr "Nuværende status:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Slet Wiki eller Blog" diff --git a/plinth/locale/de/LC_MESSAGES/django.po b/plinth/locale/de/LC_MESSAGES/django.po index 09759f4b8..928257d95 100644 --- a/plinth/locale/de/LC_MESSAGES/django.po +++ b/plinth/locale/de/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-07-24 18:34+0000\n" "Last-Translator: Johannes Keyser \n" "Language-Team: German Systemeinstellungen " "konfigurieren." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Chatserver" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "Verzeichnis ist nicht vorhanden." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "unavailable" +msgid "RoundCube availability" +msgstr "nicht verfügbar" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Kein Zertifikat" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Domain" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Deaktiviert" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "Kabel verbunden" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Ausgewählte Schnappschüsse gelöscht" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Neue Sicherung erstellen" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Hinzufügen" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "New Backup" +msgid "New value" +msgstr "neues Backup" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Aktualisieren" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Typ des Dienstes" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "Pfad ist kein Verzeichnis." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "Aktualisiertes Medienverzeichnis" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Aktueller Status:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Domainname gesetzt" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Zertifikatstatus" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private key of this machine" +msgid "Private key path" +msgstr "Privater Schlüssel dieser Maschine" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Startseite" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Sicherheit" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Domains" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Schaden einschalten" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Deaktiviert" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3657,10 +3942,6 @@ msgstr "Abbrechen" msgid "Service" msgstr "Dienst" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Domains" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4444,11 +4725,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Diese Verbindung ist nicht aktiv." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Sicherheit" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5692,11 +5968,6 @@ msgstr "" "lesssecureapps\">https://www.google.com/settings/security/lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "E-Mail-Client" @@ -6006,9 +6277,15 @@ msgstr "" "bereitstellt." #: plinth/modules/security/templates/security_report.html:19 +#, fuzzy +#| msgid "" +#| "The following table lists the current reported number, and historical " +#| "count, of security vulnerabilities for each installed app. More " +#| "information on the vulnerabilities can be found on the Debian Security Bug Tracker." msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -6046,30 +6323,26 @@ msgid "Current Vulnerabilities" msgstr "Aktuelle Sicherheitslücken anzeigen" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Frühere Sicherheitslücken anzeigen" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "Sandboxed" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "Sandbox-Abdeckung" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "N/A" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Ja" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Nein" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "Läuft nicht" @@ -6935,10 +7208,6 @@ msgstr "Pet-Name" msgid "Add new introducer" msgstr "Neuen Vermittler hinzufügen" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Hinzufügen" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Verbundene Vermittler" @@ -7148,7 +7417,7 @@ msgstr "SOCKS" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "Tor SOCKS-Port ist auf Ihrer %(box_name)s auf TCP port 9050 verfügbar." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Einstellung unverändert" @@ -7237,13 +7506,6 @@ msgstr "" "erachtet wird, erfolgt dieser automatisch um 02:00 Uhr, so dass alle " "Anwendungen kurzzeitig nicht verfügbar sind." -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Aktualisieren" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "Aktualisierungen" @@ -8096,6 +8358,63 @@ msgstr "Verbindung zum Server löschen" msgid "Server deleted." msgstr "Server gelöscht." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Adresse" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki und Blog" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "öffentlicher Zugang" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8263,10 +8582,6 @@ msgstr "Kernfunktionalität und Weboberfläche für %(box_name)s" msgid " Home" msgstr " Startseite" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Startseite" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Apps" @@ -8559,6 +8874,9 @@ msgstr "%(percentage)s %% abgeschlossen" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Frühere Sicherheitslücken anzeigen" + #~ msgid "Message Archive Management enabled" #~ msgstr "Nachrichten-Archiv-Verwaltung aktiviert" @@ -9316,9 +9634,6 @@ msgstr "Gujarati" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "Webserver mit Verschlüsselung" -#~ msgid "Current status:" -#~ msgstr "Aktueller Status:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Lösche Wiki oder Blog" @@ -9340,9 +9655,6 @@ msgstr "Gujarati" #~ msgid "Abort" #~ msgstr "Abbrechen" -#~ msgid "New Backup" -#~ msgstr "neues Backup" - #, fuzzy #~| msgid "NTP client in contact with servers" #~ msgid "chrony client in contact with servers" diff --git a/plinth/locale/django.pot b/plinth/locale/django.pot index 84c39004b..6fed41b19 100644 --- a/plinth/locale/django.pot +++ b/plinth/locale/django.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,7 +21,7 @@ msgstr "" msgid "Page source" msgstr "" -#: plinth/context_processors.py:23 plinth/views.py:78 +#: plinth/context_processors.py:23 plinth/views.py:80 msgid "FreedomBox" msgstr "" @@ -925,7 +925,7 @@ msgstr "" #: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29 #: plinth/modules/shadowsocks/views.py:59 -#: plinth/modules/transmission/views.py:47 +#: plinth/modules/transmission/views.py:47 plinth/modules/wordpress/views.py:36 msgid "Configuration updated" msgstr "" @@ -1341,15 +1341,18 @@ msgid "Diagnostics" msgstr "" #: plinth/modules/diagnostics/__init__.py:98 +#: plinth/modules/email_server/templates/email_server.html:29 msgid "passed" msgstr "" #: plinth/modules/diagnostics/__init__.py:99 +#: plinth/modules/email_server/templates/email_server.html:27 #: plinth/modules/networks/views.py:49 msgid "failed" msgstr "" #: plinth/modules/diagnostics/__init__.py:100 +#: plinth/modules/email_server/templates/email_server.html:25 msgid "error" msgstr "" @@ -1841,6 +1844,246 @@ msgid "" "Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +msgid "Email Server" +msgstr "" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +msgid "Delete selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:31 +msgid "Create a new email alias" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +msgid "Service Alert" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +msgid "Create home directory" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3125,10 +3368,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3796,11 +4035,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4857,11 +5091,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5127,8 +5356,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5156,30 +5385,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -5933,10 +6158,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6113,7 +6334,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6185,13 +6406,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -6939,6 +7153,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7075,10 +7340,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/el/LC_MESSAGES/django.po b/plinth/locale/el/LC_MESSAGES/django.po index 0b1202b0c..36a1660a1 100644 --- a/plinth/locale/el/LC_MESSAGES/django.po +++ b/plinth/locale/el/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-04-14 04:27+0000\n" "Last-Translator: Michalis \n" "Language-Team: Greek . Μπορείτε να ρυθμίσετε το όνομα της υπηρεσίας στο Ρυθμίστε page." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Διακομιστής συνομιλίας" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "Ο κατάλογος δεν υπάρχει." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "Unavailable Shares" +msgid "RoundCube availability" +msgstr "Με διαθέσιμα μερίσματα" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Δεν υπάρχει πιστοποιητικό" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Όνομα διαδικτύου" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Απενεργοποιήθηκε" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "το καλώδιο είναι συνδεδεμένο" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Διαγράφηκαν επιλεγμένα στιγμιότυπα" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Δημιουργία νέου αντιγράφου ασφαλείας" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Προσθήκη" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Ενημερωμένη έκδοση" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Τύπος υπηρεσίας" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "Το μονοπάτι δεν είναι κατάλογος." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "O κατάλογος πολυμέσων ενημερώθηκε" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "To όνομα διαδικτύου ρυθμίστηκε επιτυχώς" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Κατάσταση πιστοποιητικού" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private repository" +msgid "Private key path" +msgstr "Ιδιωτικό αποθετήριο" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Κεντρική σελίδα" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Ασφάλεια" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Ονόματα διαδικτύου" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Ενεργοποίηση ζημιών" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Απενεργοποιήθηκε" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3706,10 +3987,6 @@ msgstr "Άκυρο" msgid "Service" msgstr "Υπηρεσία" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Ονόματα διαδικτύου" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4428,11 +4705,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Αυτή η σύνδεση δεν είναι ενεργή." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Ασφάλεια" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5712,11 +5984,6 @@ msgstr "" "settings/security/lesssecureapps\">https://www.google.com/settings/security/" "lesssecureapps )." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "Πρόγραμμα-πελάτης ηλεκτρονικού ταχυδρομείου" @@ -6044,8 +6311,8 @@ msgstr "" #| "The following table lists the current reported number, and historical " #| "count, of security vulnerabilities for each installed app." msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -6079,32 +6346,28 @@ msgid "Current Vulnerabilities" msgstr "Τρέχοντα θέματα ασφαλείας" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Προηγούμενα θέματα ασφαλείας" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "Φιλτραρισμένα" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Sandboxed" msgid "Sandbox Coverage" msgstr "Φιλτραρισμένα" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "Μη εφαρμόσιμα" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Ναι" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Όχι" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -6994,10 +7257,6 @@ msgstr "Όνομα \"κατοικίδιου\"" msgid "Add new introducer" msgstr "Προσθέστε νέο εισαγωγέα" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Προσθήκη" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Συνδεδεμένοι εισαγωγείς" @@ -7207,7 +7466,7 @@ msgstr "SOCKS" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "Μια θύρα Tor SOCKS είναι διαθέσιμη στη θύρα 9050 του %(box_name)s σας." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Οι ρυθμίσεις δεν άλλαξαν" @@ -7297,13 +7556,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Ενημερωμένη έκδοση" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update" @@ -8208,6 +8460,63 @@ msgstr "Διαγραφή σύνδεσης" msgid "Server deleted." msgstr "Το μέρισμα διαγράφηκε." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Διεύθυνση" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki και Blog" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "δημόσια πρόσβαση" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8368,10 +8677,6 @@ msgstr "Βασική λειτουργικότητα και σελίδα ιστο msgid " Home" msgstr " Κεντρική σελίδα" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Κεντρική σελίδα" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Εφαρμογές" @@ -8675,6 +8980,9 @@ msgstr "ολοκληρώθηκε το %(percentage)s%%" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Προηγούμενα θέματα ασφαλείας" + #~ msgid "Message Archive Management enabled" #~ msgstr "Η Διαχείριση αρχειοθέτησης μηνυμάτων ενεργοποιήθηκε" diff --git a/plinth/locale/es/LC_MESSAGES/django.po b/plinth/locale/es/LC_MESSAGES/django.po index e4268a300..a7a9ad4e7 100644 --- a/plinth/locale/es/LC_MESSAGES/django.po +++ b/plinth/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-03-12 13:03+0000\n" "Last-Translator: Fioddor Superconcentrado \n" "Language-Team: Spanish username@%(domainname)s. Puede configurar su dominio " "en la página de sistema Configurar." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Servidor de Chat" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "La carpeta no existe." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "unavailable" +msgid "RoundCube availability" +msgstr "indisponible" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "No certificado" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Dominio" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Desactivado" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "El cable está conectado" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Las instantáneas seleccionadas fueron eliminadas" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Crear una copia de seguridad nueva" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Añadir" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "New Backup" +msgid "New value" +msgstr "Nueva copia de seguridad" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Actualización" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Tipo de servicio" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "No es una carpeta." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "Carpeta multimedia actualizada" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Estado actual:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Asignar nombre de dominio" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Estado del certificado" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private key of this machine" +msgid "Private key path" +msgstr "Clave privada en este dispositivo" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Principal" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Protección" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Dominios" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Activar daño" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Desactivado" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3620,10 +3905,6 @@ msgstr "Cancelar" msgid "Service" msgstr "Servicio" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Dominios" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4388,11 +4669,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Esta conexión no está activa." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Protección" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5613,11 +5889,6 @@ msgstr "" "google.com/settings/security/lesssecureapps\">https://www.google.com/" "settings/security/lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "Cliente de correo" @@ -5927,8 +6198,8 @@ msgstr "" #| "The following table lists the current reported number, and historical " #| "count, of security vulnerabilities for each installed app." msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5964,30 +6235,26 @@ msgid "Current Vulnerabilities" msgstr "Vulnerabilidades Actuales" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Vulnerabilidades Anteriores" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "Aisladas" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "Índice de aislamiento" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "N/A" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Sí" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "No" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "No se está ejecutando" @@ -6837,10 +7104,6 @@ msgstr "Nombre de alias" msgid "Add new introducer" msgstr "Añadir nuevo presentador" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Añadir" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Presentadores conectados" @@ -7050,7 +7313,7 @@ msgstr "" "Un puerto SOCKS de Tor está disponible en su %(box_name)s en el puerto TCP " "9050." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Configuración sin cambio" @@ -7139,13 +7402,6 @@ msgstr "" "tiempo. Si se decide retrasar el reinicio del sistema, éste se hará de forma " "automática a las 02:00 h." -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Actualización" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "Actualizaciones" @@ -7982,6 +8238,63 @@ msgstr "Eliminar conexión al servidor" msgid "Server deleted." msgstr "Servidor eliminado." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Dirección" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki y Blog" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "Acceso público" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8142,10 +8455,6 @@ msgstr "Funcionalidad central e interfaz web para %(box_name)s" msgid " Home" msgstr " Inicio" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Principal" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Aplicaciones" @@ -8436,6 +8745,9 @@ msgstr "%(percentage)s%% completado" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Vulnerabilidades Anteriores" + #~ msgid "Message Archive Management enabled" #~ msgstr "Gestión activa de mensajes activada" @@ -9186,9 +9498,6 @@ msgstr "Gujarati" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "Servidor Web sobre SSL" -#~ msgid "Current status:" -#~ msgstr "Estado actual:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Eliminar Wiki o Blog" @@ -9210,9 +9519,6 @@ msgstr "Gujarati" #~ msgid "Abort" #~ msgstr "Cancelar" -#~ msgid "New Backup" -#~ msgstr "Nueva copia de seguridad" - #~ msgid "chrony client in contact with servers" #~ msgstr "Cliente de «chrony» en contacto con los servidores" diff --git a/plinth/locale/fa/LC_MESSAGES/django.po b/plinth/locale/fa/LC_MESSAGES/django.po index 8e75ae8b8..d3f53752a 100644 --- a/plinth/locale/fa/LC_MESSAGES/django.po +++ b/plinth/locale/fa/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Persian Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Web Server" +msgid "Email Server" +msgstr "سرور وب" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "Available Domains" +msgid "RoundCube availability" +msgstr "دامنه‌های موجود" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certficate" +msgid "Has a TLS certificate" +msgstr "بدون گواهی دیجیتال" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "دامنه" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "غیرفعال" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "سیم وصل است" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete %(name)s" +msgid "Delete selected" +msgstr "پاک‌کردن %(name)s" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create Connection" +msgid "Create a new email alias" +msgstr "ساختن اتصال" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +#, fuzzy +#| msgid "Address" +msgid "Add" +msgstr "نشانی" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "نوع سرویس" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create Connection" +msgid "Create home directory" +msgstr "ساختن اتصال" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "وضعیت کنونی:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Certificates (Let's Encrypt)" +msgid "Use Let's Encrypt" +msgstr "گواهی دیجیتال (Let's Encrypt)" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "نام دامنه تنظیم شد" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "وضعیت گواهی دیجیتال" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Create Connection" +msgid "Private key path" +msgstr "ساختن اتصال" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "امنیت" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "دامنه‌ها" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enabled" +msgid "Enabled aliases" +msgstr "فعال" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "غیرفعال" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3533,10 +3812,6 @@ msgstr "انصراف" msgid "Service" msgstr "سرویس" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "دامنه‌ها" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4248,11 +4523,6 @@ msgstr "آی‌پی ن۶" msgid "This connection is not active." msgstr "این اتصال فعال نیست." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "امنیت" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5382,11 +5652,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 #, fuzzy msgid "Email Client" @@ -5685,8 +5950,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5716,34 +5981,30 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 #, fuzzy msgid "Sandboxed" msgstr "بازی مکعب‌ها (Minetest)" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 #, fuzzy msgid "Sandbox Coverage" msgstr "بازی مکعب‌ها (Minetest)" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 #, fuzzy #| msgid "yes" msgid "Yes" msgstr "بله" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -6567,12 +6828,6 @@ msgstr "نام" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -#, fuzzy -#| msgid "Address" -msgid "Add" -msgstr "نشانی" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6751,7 +7006,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6823,13 +7078,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Create..." @@ -7651,6 +7899,63 @@ msgstr "پاک‌کردن اتصال" msgid "Server deleted." msgstr "{name} پاک شد." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "نشانی" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Manage Wikis and Blogs" +msgid "Website and Blog" +msgstr "مدیریت ویکی‌ها و وبلاگ‌ها" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "Publish Key" +msgid "Public access" +msgstr "انتشار کلید" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7789,10 +8094,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 #, fuzzy msgid " Apps" @@ -8338,9 +8639,6 @@ msgstr "" #~ "Failed to disable certificate renewal management for {domain}: {error}" #~ msgstr "باطل‌کردن گواهی دامنهٔ {domain} شکست خورد: {error}" -#~ msgid "Current status:" -#~ msgstr "وضعیت کنونی:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "پاک‌کردن ویکی یا وبلاگ" diff --git a/plinth/locale/fake/LC_MESSAGES/django.po b/plinth/locale/fake/LC_MESSAGES/django.po index 319059bc3..95a6c8cbe 100644 --- a/plinth/locale/fake/LC_MESSAGES/django.po +++ b/plinth/locale/fake/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Plinth 0.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2016-01-31 22:24+0530\n" "Last-Translator: Sunil Mohan Adapa \n" "Language-Team: Plinth Developers USERNAME@%(domainname)s. YOU CAN SETUP YOUR DOMAIN ON THE SYSTEM " "CONFIGURE PAGE." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Web Server" +msgid "Email Server" +msgstr "WEB SERVER" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "Enable Subdomains" +msgid "RoundCube availability" +msgstr "ENABLE SUBDOMAINS" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certficate" +msgid "Has a TLS certificate" +msgstr "NO CERTFICATE" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "DOMAIN" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +#, fuzzy +#| msgid "Enable Roundcube" +msgid "Roundcube" +msgstr "ENABLE ROUNDCUBE" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "DISABLED" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "CABLE IS CONNECTED" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete %(name)s" +msgid "Delete selected" +msgstr "DELETE %(name)s" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "PageKite Account" +msgid "Create a new email alias" +msgstr "PAGEKITE ACCOUNT" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +#, fuzzy +#| msgid "Address" +msgid "Add" +msgstr "ADDRESS" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +#, fuzzy +#| msgid "Update URL" +msgid "Update" +msgstr "UPDATE URL" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service type" +msgid "Service Alert" +msgstr "SERVICE TYPE" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Download directory" +msgid "You do not have a home directory." +msgstr "DOWNLOAD DIRECTORY" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create User" +msgid "Create home directory" +msgstr "CREATE USER" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "CURRENT STATUS:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Certificates (Let's Encrypt)" +msgid "Use Let's Encrypt" +msgstr "CERTIFICATES (LET'S ENCRYPT)" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "DOMAIN NAME SET" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "CERTIFICATE STATUS" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Create User" +msgid "Private key path" +msgstr "CREATE USER" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "SECURITY" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +#, fuzzy +#| msgid "Domain" +msgid "Domains" +msgstr "DOMAIN" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable PageKite" +msgid "Enabled aliases" +msgstr "ENABLE PAGEKITE" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "DISABLED" + #: plinth/modules/firewall/__init__.py:33 #, fuzzy, python-brace-format #| msgid "" @@ -3724,12 +4011,6 @@ msgstr "CANCEL" msgid "Service" msgstr "SERVICE" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -#, fuzzy -#| msgid "Domain" -msgid "Domains" -msgstr "DOMAIN" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 #, fuzzy @@ -4467,11 +4748,6 @@ msgstr "IPV6" msgid "This connection is not active." msgstr "THIS CONNECTION IS NOT ACTIVE." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "SECURITY" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5764,13 +6040,6 @@ msgstr "" "lesssecureapps\" >HTTPS://WWW.GOOGLE.COM/SETTINGS/SECURITY/LESSSECUREAPPS)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -#, fuzzy -#| msgid "Enable Roundcube" -msgid "Roundcube" -msgstr "ENABLE ROUNDCUBE" - #: plinth/modules/roundcube/__init__.py:56 #, fuzzy #| msgid "Email Client (Roundcube)" @@ -6074,8 +6343,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -6105,36 +6374,32 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Blocked" msgid "Sandboxed" msgstr "BLOCKED" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Blocked" msgid "Sandbox Coverage" msgstr "BLOCKED" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 #, fuzzy #| msgid "yes" msgid "Yes" msgstr "YES" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 #, fuzzy #| msgid "Tor is not running" msgid "Not running" @@ -6980,12 +7245,6 @@ msgstr "NAME" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -#, fuzzy -#| msgid "Address" -msgid "Add" -msgstr "ADDRESS" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -7203,7 +7462,7 @@ msgstr "SOCKS" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "A TOR SOCKS PORT IS AVAILABLE ON YOUR %(box_name)s ON TCP PORT 9050." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "SETTING UNCHANGED" @@ -7290,15 +7549,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -#, fuzzy -#| msgid "Update URL" -msgid "Update" -msgstr "UPDATE URL" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update URL" @@ -8176,6 +8426,63 @@ msgstr "DELETE CONNECTION" msgid "Server deleted." msgstr "{name} DELETED." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "ADDRESS" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "WIKI AND BLOG" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "Publish Key" +msgid "Public access" +msgstr "PUBLISH KEY" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8336,10 +8643,6 @@ msgstr "PLINTH ADMINISTRATIVE INTERFACE FOR THE %(box_name)s" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 #, fuzzy #| msgid "Apps" @@ -9093,9 +9396,6 @@ msgstr "" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "WEB SERVER OVER SECURE SOCKET LAYER" -#~ msgid "Current status:" -#~ msgstr "CURRENT STATUS:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "DELETE WIKI OR BLOG" diff --git a/plinth/locale/fr/LC_MESSAGES/django.po b/plinth/locale/fr/LC_MESSAGES/django.po index 37f1c5b04..4df088cf2 100644 --- a/plinth/locale/fr/LC_MESSAGES/django.po +++ b/plinth/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-05-31 22:13+0000\n" "Last-Translator: Coucouf \n" "Language-Team: French Configurer." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Serveur de discussion" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "Le répertoire n’existe pas." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "unavailable" +msgid "RoundCube availability" +msgstr "indisponible" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Aucun certificat" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Domaine" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Désactivé" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "Le câble est connecté" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Supprimer les instantanés sélectionnés" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Créer une nouvelle sauvegarde" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Ajouter" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "New Backup" +msgid "New value" +msgstr "Nouvelle sauvegarde" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Mises à jour" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Type de service" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "Le chemin n’est pas un répertoire." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "Répertoire multimédia mis à jour" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "État actuel :" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Nom de domaine configuré" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "État du certificat" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private key of this machine" +msgid "Private key path" +msgstr "Clé privée de cette machine" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Accueil" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Sécurité" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Domaines" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Activer les blessures" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Désactivé" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3684,10 +3969,6 @@ msgstr "Annuler" msgid "Service" msgstr "Service" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Domaines" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4471,11 +4752,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Cette connexion n'est pas active." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Sécurité" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5735,11 +6011,6 @@ msgstr "" "settings/security/lesssecureapps\">https://www.google.com/settings/security/" "lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "Client de courriel" @@ -6052,9 +6323,15 @@ msgstr "" "FreedomBox." #: plinth/modules/security/templates/security_report.html:19 +#, fuzzy +#| msgid "" +#| "The following table lists the current reported number, and historical " +#| "count, of security vulnerabilities for each installed app. More " +#| "information on the vulnerabilities can be found on the Debian Security Bug Tracker." msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -6094,30 +6371,26 @@ msgid "Current Vulnerabilities" msgstr "Failles actuelles" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Anciennes failles" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "Isolé" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "Couverture de l’isolation" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "Non applicable" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Oui" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Non" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "Inactif" @@ -6983,10 +7256,6 @@ msgstr "Surnom" msgid "Add new introducer" msgstr "Ajouter un nouvel introducteur" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Ajouter" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Introducteurs connectés" @@ -7196,7 +7465,7 @@ msgstr "" "Un port SOCKS pour Tor est accessible sur votre %(box_name)s sur le port TCP " "9050." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Paramètre inchangé" @@ -7288,13 +7557,6 @@ msgstr "" "nécessaire, il est effectué à 2h00, rendant indisponible l’ensemble des " "applications pour une courte période." -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Mises à jour" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "Mises à jour" @@ -8149,6 +8411,63 @@ msgstr "Supprimer la connexion à un serveur" msgid "Server deleted." msgstr "Serveur supprimé." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Adresse" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki et blogue" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "Accès public" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8313,10 +8632,6 @@ msgstr "Fonctions de base et interface web de la %(box_name)s" msgid " Home" msgstr " Accueil" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Accueil" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Applis" @@ -8612,6 +8927,9 @@ msgstr "%(percentage)s%% effectué" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Anciennes failles" + #~ msgid "Message Archive Management enabled" #~ msgstr "Gestion des archives de messages activée" @@ -9391,9 +9709,6 @@ msgstr "Gujarati" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "Serveur web via SSL (Secure Socket Layer)" -#~ msgid "Current status:" -#~ msgstr "État actuel :" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Supprimer le Wiki ou le Blogue" @@ -9419,9 +9734,6 @@ msgstr "Gujarati" #~ msgid "Abort" #~ msgstr "Annuler" -#~ msgid "New Backup" -#~ msgstr "Nouvelle sauvegarde" - #, fuzzy #~| msgid "NTP client in contact with servers" #~ msgid "chrony client in contact with servers" diff --git a/plinth/locale/gl/LC_MESSAGES/django.po b/plinth/locale/gl/LC_MESSAGES/django.po index d39618a0b..b3a856a69 100644 --- a/plinth/locale/gl/LC_MESSAGES/django.po +++ b/plinth/locale/gl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Galician Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Web Server" +msgid "Email Server" +msgstr "Servidor web" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +msgid "Delete selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:31 +msgid "Create a new email alias" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Discovery" +msgid "Service Alert" +msgstr "Descubrimento de servizo" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +msgid "Create home directory" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3135,10 +3382,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3808,11 +4051,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4871,11 +5109,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5145,8 +5378,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5174,30 +5407,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -5953,10 +6182,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6133,7 +6358,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6205,13 +6430,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Manual" @@ -6969,6 +7187,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7105,10 +7374,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/gu/LC_MESSAGES/django.po b/plinth/locale/gu/LC_MESSAGES/django.po index 3c777bd68..57ba5f216 100644 --- a/plinth/locale/gu/LC_MESSAGES/django.po +++ b/plinth/locale/gu/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Gujarati username@%(domainname)s. તમે સિસ્ટમ પર તમારા ડોમેન સેટ કરી શકો છો રૂપરેખાંકિત કરો પાનું." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "ચેટ સર્વર" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "Accept all SSL certificates" +msgid "Has a TLS certificate" +msgstr "બધા SSL પ્રમાણપત્રો સ્વીકારો" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "અક્ષમ કરેલું" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "Enabled" +msgid "Enable selected" +msgstr "સક્ષમ કરેલું" + +#: plinth/modules/email_server/templates/email_alias.html:27 +msgid "Delete selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:31 +msgid "Create a new email alias" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "સેવા પ્રકાર" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Documentation" +msgid "Create home directory" +msgstr "દસ્તાવેજીકરણ" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "વર્તમાન સ્થિતિ:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "ક્ષેત્રીય નામ સ્થાપિત કર્યું" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Documentation" +msgid "Private key path" +msgstr "દસ્તાવેજીકરણ" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enabled" +msgid "Enabled aliases" +msgstr "સક્ષમ કરેલું" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "અક્ષમ કરેલું" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3352,10 +3617,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4030,11 +4291,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5112,11 +5368,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5388,8 +5639,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5417,30 +5668,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -6203,10 +6450,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6385,7 +6628,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "સેટિંગ યથાવત" @@ -6461,13 +6704,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update URL" @@ -7261,6 +7497,57 @@ msgstr "ઇન્ટરનેટ સાથે સીધો જોડાણ." msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7399,10 +7686,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 #, fuzzy #| msgid "BitTorrent Web Client" @@ -7748,9 +8031,6 @@ msgstr "" #~ msgid "Download Manual" #~ msgstr "માર્ગદર્શિકા ડાઉનલોડ" -#~ msgid "Current status:" -#~ msgstr "વર્તમાન સ્થિતિ:" - #, fuzzy #~| msgid "Error setting language: {exception}" #~ msgid "Error setting default app: {exception}" diff --git a/plinth/locale/hi/LC_MESSAGES/django.po b/plinth/locale/hi/LC_MESSAGES/django.po index 36a0b89ec..af70867fc 100644 --- a/plinth/locale/hi/LC_MESSAGES/django.po +++ b/plinth/locale/hi/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Hindi username@%(domainname)s. आपका डोमेन सिसटेम पर सेटअप कर सकता है कॉन्फ़िगर पेजॅ." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "चाट सर्वर" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "Available Domains" +msgid "RoundCube availability" +msgstr "उपलब्ध वाले डोमेन्स" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "कोई प्रमाणपत्र नहीं" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "डोमेन" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "राउंडक्यूब" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "मोज़िला थंडरबर्ड" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "अक्षम किया गया है" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "केबल कनेक्ट हो गया" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete all the snapshots" +msgid "Delete selected" +msgstr "सब स्नैपशॉटस हटाएँ" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create Account" +msgid "Create a new email alias" +msgstr "अकाउंट बनाएँ" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "जोड़ें" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "Backups" +msgid "New value" +msgstr "बैकअप" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "अपडेट" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "सेवा टाइप" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Download directory" +msgid "You do not have a home directory." +msgstr "डायरेक्टरी डाउनलोड करें" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create User" +msgid "Create home directory" +msgstr "यूसर बनाये" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "वर्तमान स्थिति:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "लेटस एंक्रिप्ट" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "डोमेन नाम सेट हो गया है" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "प्रमाणपत्र स्थिति" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Create User" +msgid "Private key path" +msgstr "यूसर बनाये" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "होम" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "सुरक्षा" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "डोमेन्स" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "क्षति को सक्षम करें" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "अक्षम किया गया है" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3599,10 +3882,6 @@ msgstr "कैंसिल" msgid "Service" msgstr "सर्विस" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "डोमेन्स" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4304,11 +4583,6 @@ msgstr "आईपीवी6" msgid "This connection is not active." msgstr "यह कनेक्शन सक्रिय नहीं है." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "सुरक्षा" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5571,11 +5845,6 @@ msgstr "" "security/lesssecureapps\">https://www.google.com/settings/security/" "lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "राउंडक्यूब" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "ईमेल क्लाइंट" @@ -5881,8 +6150,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5912,38 +6181,34 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Block Sandbox" msgid "Sandboxed" msgstr "ब्लॉक सेंडबोक्स" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Block Sandbox" msgid "Sandbox Coverage" msgstr "ब्लॉक सेंडबोक्स" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 #, fuzzy #| msgid "yes" msgid "Yes" msgstr "हाँ" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 #, fuzzy #| msgid "None" msgid "No" msgstr "कोई नहीं" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 #, fuzzy #| msgid "Tor is running" msgid "Not running" @@ -6801,10 +7066,6 @@ msgstr "पेट नाम" msgid "Add new introducer" msgstr "नया इंट्रोड्यूसर जोड़ें" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "जोड़ें" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "कनेक्टेड इंट्रोड्यूसरस" @@ -7014,7 +7275,7 @@ msgstr "सॉक्स" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "एक टोर सॉक्स पोर्ट आपका %(box_name)s र उपलब्ध है, TCP पोर्ट ९०५० पर." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "सेटिंग स्थिर है" @@ -7110,13 +7371,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "अपडेट" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update" @@ -8001,6 +8255,63 @@ msgstr "कनेक्शन हटाएँ" msgid "Server deleted." msgstr "शेयर हटाया गया." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "ऍड्रेस" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "विकि और ब्लॉग" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "Publish Key" +msgid "Public access" +msgstr "चाबी प्रकाशित करें" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8159,10 +8470,6 @@ msgstr "%(box_name)s के लिए कोर फंक्शनलिटी msgid " Home" msgstr " होम" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "होम" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " ऐप्स" @@ -9209,9 +9516,6 @@ msgstr "" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "सुरक्षित सॉकेट लेयर पर वेब सर्वर" -#~ msgid "Current status:" -#~ msgstr "वर्तमान स्थिति:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "विकी या ब्लॉग हटाइये" @@ -9230,11 +9534,6 @@ msgstr "" #~ msgid "Default app set" #~ msgstr "डिफ़ॉल्ट एेप सेट" -#, fuzzy -#~| msgid "Backups" -#~ msgid "New Backup" -#~ msgstr "बैकअप" - #, fuzzy #~| msgid "NTP client in contact with servers" #~ msgid "chrony client in contact with servers" diff --git a/plinth/locale/hu/LC_MESSAGES/django.po b/plinth/locale/hu/LC_MESSAGES/django.po index d72c4bbba..31f91b90b 100644 --- a/plinth/locale/hu/LC_MESSAGES/django.po +++ b/plinth/locale/hu/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-04-22 21:32+0000\n" "Last-Translator: Benedek Nagy \n" "Language-Team: Hungarian username@%(domainname)s. Beállíthatod a " "rendszered domain nevét a Beállítások lapon." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Chat szerver" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Specified directory does not exist." +msgid "User does not exist" +msgstr "A megadott könyvtár nem létezik." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "unavailable" +msgid "RoundCube availability" +msgstr "elérhetetlen" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Nincs tanúsítvány" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Domain" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Letiltva" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "kábel csatlakoztatva" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Kiválasztott pillanatképek törölve" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Új biztonsági másolat létrehozása" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Hozzáadás" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "New Backup" +msgid "New value" +msgstr "Új biztonsági másolat" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Frissítés" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Szolgáltatás típusa" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "Az elérési út nem könyvtár." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "Médiakönyvtár frissítve" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Jelenlegi állapot:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Domain név beállítva" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Tanúsítvány állapot" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private repository" +msgid "Private key path" +msgstr "Privát tároló" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Kezdőlap" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Biztonság" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Domainek" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Sérülés engedélyezése" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Letiltva" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3623,10 +3908,6 @@ msgstr "Mégse" msgid "Service" msgstr "Szolgáltatás" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Domainek" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4403,11 +4684,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Ez a kapcsolat nem aktív." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Biztonság" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5587,11 +5863,6 @@ msgstr "" "href=\"https://www.google.com/settings/security/lesssecureapps\">https://www." "google.com/settings/security/lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "E-mail kliens" @@ -5874,8 +6145,8 @@ msgstr "" #| "The following table lists the current reported number, and historical " #| "count, of security vulnerabilities for each installed app." msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5905,30 +6176,26 @@ msgid "Current Vulnerabilities" msgstr "Jelenlegi biztonsági rések" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Múltbéli biztonsági rések" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "Virtuális környezetben" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "Virtuális környezet lefedettsége" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Igen" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Nem" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "Nem fut" @@ -6781,10 +7048,6 @@ msgstr "Becenév" msgid "Add new introducer" msgstr "Új bevezető hozzáadása" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Hozzáadás" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Csatlakozott bevezetők" @@ -6992,7 +7255,7 @@ msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" "Egy Tor SOCKS port elérhető a te %(box_name)s eszközöd 9050-es TCP portján." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "A beállítás változatlan" @@ -7075,13 +7338,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Frissítés" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "Frissítések" @@ -7860,6 +8116,63 @@ msgstr "Kapcsolat törlése a kiszolgálóval" msgid "Server deleted." msgstr "Kiszolgáló törölve." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Cím" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki és blog" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "nyilvános hozzáférés" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8006,10 +8319,6 @@ msgstr "Alapvető funkcionalitás és webes felület %(box_name)s eszközére" msgid " Home" msgstr " Kezdőlap" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Kezdőlap" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Alkalmazások" @@ -8299,6 +8608,9 @@ msgstr "befejezettségi szint: %(percentage)s%%" msgid "Gujarati" msgstr "Gudzsaráti" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Múltbéli biztonsági rések" + #~ msgid "Message Archive Management enabled" #~ msgstr "Üzenetarchívum kezelése engedélyezve" @@ -9073,9 +9385,6 @@ msgstr "Gudzsaráti" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "Webszerver Secure Socket Layer-en keresztül" -#~ msgid "Current status:" -#~ msgstr "Jelenlegi állapot:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Wiki vagy Blog törlése" @@ -9097,9 +9406,6 @@ msgstr "Gudzsaráti" #~ msgid "Abort" #~ msgstr "Megszakítás" -#~ msgid "New Backup" -#~ msgstr "Új biztonsági másolat" - #, fuzzy #~| msgid "NTP client in contact with servers" #~ msgid "chrony client in contact with servers" diff --git a/plinth/locale/id/LC_MESSAGES/django.po b/plinth/locale/id/LC_MESSAGES/django.po index bf3081147..3d0a994fc 100644 --- a/plinth/locale/id/LC_MESSAGES/django.po +++ b/plinth/locale/id/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Indonesian (FreedomBox)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-06-24 00:42+0000\n" "Last-Translator: Reza Almanda \n" "Language-Team: Indonesian nama pengguna @%(domainname)s. Anda dapat mengatur " "domain Anda pada sistem Konfigurasi halaman." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Server obrolan" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "Direktori ini tidak ada." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "unavailable" +msgid "RoundCube availability" +msgstr "tidak tersedia" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Tidak sertifikat" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Domain" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Non-Aktifkan" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "Enable PageKite" +msgid "Enable selected" +msgstr "Aktifkan PageKite" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Menghapus snapshot yang dipilih" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Buat cadangan baru" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Tambah" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Memperbarui" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Tipe Layanan" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create Repository" +msgid "Create home directory" +msgstr "Buat Repositori" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Status saat ini:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Set nama domain" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Status Sertifikat" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private repository" +msgid "Private key path" +msgstr "Penyimpanan Pribadi" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Beranda" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Domain" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Aktifkan kerusakan" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Non-Aktifkan" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3496,10 +3777,6 @@ msgstr "Batal" msgid "Service" msgstr "Layanan" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Domain" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4167,11 +4444,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5232,11 +5504,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "Klien Email" @@ -5514,8 +5781,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5543,30 +5810,26 @@ msgid "Current Vulnerabilities" msgstr "Kerentanan Saat Ini" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Kerentanan Masa Lalu" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "Sandboxed" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "Cakupan Sandbox" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "Tidak Ada" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Ya" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Tidak" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "Tidak berjalan" @@ -6336,10 +6599,6 @@ msgstr "Nama" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Tambah" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6520,7 +6779,7 @@ msgstr "SOCKS" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6593,13 +6852,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Memperbarui" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update URL" @@ -7387,6 +7639,63 @@ msgstr "Hapus Koneksi" msgid "Server deleted." msgstr "{name} dihapus." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Address" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki dan Blog" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "akses publik" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7524,10 +7833,6 @@ msgstr "Fungsionalitas inti dan antarmuka web untuk %(box_name)s" msgid " Home" msgstr " Beranda" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Beranda" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Aplikasi" @@ -7801,6 +8106,9 @@ msgstr "%(percentage)s %% selesai" msgid "Gujarati" msgstr "Bahasa Gujarat" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Kerentanan Masa Lalu" + #, fuzzy #~| msgid "Application installed." #~ msgid "Public registration disabled" @@ -7911,9 +8219,6 @@ msgstr "Bahasa Gujarat" #~ msgid "Samba share" #~ msgstr "Publikasikan Kunci" -#~ msgid "Enable PageKite" -#~ msgstr "Aktifkan PageKite" - #~ msgid "Save settings" #~ msgstr "Simpan pengaturan" @@ -7967,9 +8272,6 @@ msgstr "Bahasa Gujarat" #~ msgid "Upload" #~ msgstr "Unduh profil saya" -#~ msgid "Current status:" -#~ msgstr "Status saat ini:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Hapus Wiki atau Blog" diff --git a/plinth/locale/it/LC_MESSAGES/django.po b/plinth/locale/it/LC_MESSAGES/django.po index f8e6f3999..7b27a1e7d 100644 --- a/plinth/locale/it/LC_MESSAGES/django.po +++ b/plinth/locale/it/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-02-20 22:50+0000\n" "Last-Translator: Dietmar \n" "Language-Team: Italian . Configura " "la pagina ." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Server Chat" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Nessun certificato" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +msgid "domain" +msgstr "Dominio" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Disabilitato" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "il cavo è connesso" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +msgid "Delete selected" +msgstr "Istantanee selezionate cancellate" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Creare un nuovo backup" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "Backups" +msgid "New value" +msgstr "Backup" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Tipo Servizio" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create Repository" +msgid "Create home directory" +msgstr "Creare Repository" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Stato corrente:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +msgid "Common name" +msgstr "Imposta nome di dominio" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Stato Certificato" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private repository" +msgid "Private key path" +msgstr "Deposito privato" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Sicurezza" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Domini" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Abilita danni" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Disabilitato" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3585,10 +3861,6 @@ msgstr "Cancella" msgid "Service" msgstr "Servizio" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Domini" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4289,11 +4561,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Questa connessione non è attiva." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Sicurezza" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5452,11 +5719,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5722,8 +5984,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5751,30 +6013,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "Copertura della Sandbox" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Si" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "No" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -6530,10 +6788,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6712,7 +6966,7 @@ msgstr "SOCKS" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Impostazioni invariate" @@ -6786,13 +7040,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "Aggiornamenti" @@ -7545,6 +7792,63 @@ msgstr "Cancella Connessione a server" msgid "Server deleted." msgstr "Server cancellato." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Indirizzo" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki e Blog" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "Public share" +msgid "Public access" +msgstr "Share pubblico" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7688,10 +7992,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" @@ -8552,9 +8852,6 @@ msgstr "" #~ msgstr "" #~ "Disabilitazione gestione rinnovo certificati fallita per {domain}:{error}" -#~ msgid "Current status:" -#~ msgstr "Stato corrente:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Cancella Wiki o Blog" @@ -8579,11 +8876,6 @@ msgstr "" #~ msgid "Default app set" #~ msgstr "Default" -#, fuzzy -#~| msgid "Backups" -#~ msgid "New Backup" -#~ msgstr "Backup" - #, fuzzy #~| msgid "NTP client in contact with servers" #~ msgid "chrony client in contact with servers" diff --git a/plinth/locale/ja/LC_MESSAGES/django.po b/plinth/locale/ja/LC_MESSAGES/django.po index 72670324c..bb5a87473 100644 --- a/plinth/locale/ja/LC_MESSAGES/django.po +++ b/plinth/locale/ja/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-05-20 12:32+0000\n" "Last-Translator: Jacque Fresco \n" "Language-Team: Japanese Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +msgid "Email Server" +msgstr "" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +msgid "Delete selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:31 +msgid "Create a new email alias" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +msgid "Service Alert" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +msgid "Create home directory" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3127,10 +3370,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3798,11 +4037,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4859,11 +5093,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5129,8 +5358,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5158,30 +5387,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -5935,10 +6160,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6115,7 +6336,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6187,13 +6408,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -6941,6 +7155,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7077,10 +7342,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/kn/LC_MESSAGES/django.po b/plinth/locale/kn/LC_MESSAGES/django.po index 5fbc9f099..12625bee2 100644 --- a/plinth/locale/kn/LC_MESSAGES/django.po +++ b/plinth/locale/kn/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2020-07-16 16:41+0000\n" "Last-Translator: Yogesh \n" "Language-Team: Kannada Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +msgid "Email Server" +msgstr "" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +msgid "Delete selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:31 +msgid "Create a new email alias" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +msgid "Service Alert" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +msgid "Create home directory" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3127,10 +3370,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3798,11 +4037,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4859,11 +5093,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5131,8 +5360,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5160,30 +5389,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -5937,10 +6162,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6117,7 +6338,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6189,13 +6410,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -6943,6 +7157,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7079,10 +7344,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/lt/LC_MESSAGES/django.po b/plinth/locale/lt/LC_MESSAGES/django.po index c09ea3e25..bc146c840 100644 --- a/plinth/locale/lt/LC_MESSAGES/django.po +++ b/plinth/locale/lt/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-02-22 10:50+0000\n" "Last-Translator: Kornelijus Tvarijanavičius \n" "Language-Team: Lithuanian Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +msgid "Email Server" +msgstr "" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +msgid "Delete selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:31 +msgid "Create a new email alias" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +msgid "Service Alert" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +msgid "Create home directory" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3128,10 +3371,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3799,11 +4038,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4860,11 +5094,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5130,8 +5359,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5159,30 +5388,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -5936,10 +6161,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6116,7 +6337,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6188,13 +6409,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -6942,6 +7156,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7078,10 +7343,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/nb/LC_MESSAGES/django.po b/plinth/locale/nb/LC_MESSAGES/django.po index 359e2c0b1..a31c59c47 100644 --- a/plinth/locale/nb/LC_MESSAGES/django.po +++ b/plinth/locale/nb/LC_MESSAGES/django.po @@ -15,9 +15,9 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" -"PO-Revision-Date: 2021-07-30 08:35+0000\n" -"Last-Translator: Allan Nordhøy \n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" +"PO-Revision-Date: 2021-08-19 13:51+0000\n" +"Last-Translator: Petter Reinholdtsen \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" @@ -25,13 +25,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.7.2-dev\n" +"X-Generator: Weblate 4.8-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" msgstr "Sidekilde" -#: plinth/context_processors.py:23 plinth/views.py:78 +#: plinth/context_processors.py:23 plinth/views.py:80 msgid "FreedomBox" msgstr "FreedomBox" @@ -170,7 +170,7 @@ msgstr "" #: plinth/modules/backups/__init__.py:203 msgid "Enable a Backup Schedule" -msgstr "" +msgstr "Aktiver sikkerhetskopitidsplan" #: plinth/modules/backups/__init__.py:207 #: plinth/modules/backups/__init__.py:254 @@ -185,6 +185,8 @@ msgid "" "A scheduled backup failed. Past {error_count} attempts for backup did not " "succeed. The latest error is: {error_message}" msgstr "" +"En sikkerhetskopi på tidsplanen feilet. De {error_count} foregående " +"forsøkene lyktes heller ikke. Den siste feilen er: {error_message}" #: plinth/modules/backups/__init__.py:250 #, fuzzy @@ -199,13 +201,15 @@ msgstr "{app} (Ingen data å sikkerhetskopiere)" #: plinth/modules/backups/forms.py:53 msgid "Enable scheduled backups" -msgstr "" +msgstr "Aktiver regelmessige sikkerhetskopier" #: plinth/modules/backups/forms.py:54 msgid "" "If enabled, a backup is taken every day, every week and every month. Older " "backups are removed." msgstr "" +"Med dette aktivert tas det sikkerhetskopi hver dag, uke og måned, og eldre " +"sikkerhetskopier fjernes." #: plinth/modules/backups/forms.py:58 msgid "Number of daily backups to keep" @@ -379,8 +383,8 @@ msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -"Passord til SSH-tjeneren.
Nøkkelbasert SSH-autentisering er så langt ikke " -"mulig." +"Passord til SSH-tjeneren.
Nøkkelbasert SSH-autentisering er foreløbig " +"ikke mulig." #: plinth/modules/backups/forms.py:267 msgid "Remote backup repository already exists." @@ -1013,7 +1017,7 @@ msgstr "Oppdater IP-adresse og domener" #: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29 #: plinth/modules/shadowsocks/views.py:59 -#: plinth/modules/transmission/views.py:47 +#: plinth/modules/transmission/views.py:47 plinth/modules/wordpress/views.py:36 msgid "Configuration updated" msgstr "Oppsett oppdatert" @@ -1361,16 +1365,14 @@ msgstr "" "som ellers ikke ville kunne kontakte hverandre." #: plinth/modules/coturn/__init__.py:41 -#, fuzzy, python-brace-format -#| msgid "" -#| "It is not meant to be used directly by users. Servers such as matrix-" -#| "synapse need to be configured with the details provided here." +#, python-brace-format msgid "" "It is not meant to be used directly by users. Servers such as Matrix Synapse or ejabberd need to " "be configured with the details provided here." msgstr "" -"Det er ikke ment å brukes direkte av brukere. Tjenere som matrix-synapse må " +"Det er ikke ment å brukes direkte av brukere. Tjenere som Matrix Synapse eller ejabberd må " "settes opp med detaljene herfra." #: plinth/modules/coturn/__init__.py:62 @@ -1498,12 +1500,14 @@ msgid "Diagnostics" msgstr "Diagnostikk" #: plinth/modules/diagnostics/__init__.py:98 +#: plinth/modules/email_server/templates/email_server.html:29 #, fuzzy #| msgid "Quassel" msgid "passed" msgstr "Quassel" #: plinth/modules/diagnostics/__init__.py:99 +#: plinth/modules/email_server/templates/email_server.html:27 #: plinth/modules/networks/views.py:49 #, fuzzy #| msgid "Setup failed." @@ -1511,6 +1515,7 @@ msgid "failed" msgstr "Oppsettet mislyktes." #: plinth/modules/diagnostics/__init__.py:100 +#: plinth/modules/email_server/templates/email_server.html:25 msgid "error" msgstr "feil" @@ -2085,6 +2090,288 @@ msgstr "" "se slik ut: username@%(domainname)s. Du kan sette opp ditt domene på " "systemsiden Configure ." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Nettprat-tjener" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "Mappen finnes ikke." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "Available Domains" +msgid "RoundCube availability" +msgstr "Tilgjengelige domener" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Sertifikat mangler" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Domene" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Deaktivert" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "kabel er tilknyttet" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Slettet alle valgte avbildninger" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Lag ny sikkerhetskopi" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Legg til" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "New Backup" +msgid "New value" +msgstr "Ny sikkerhetskopi" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Oppdater" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Type tjeneste" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "Stien er ikke en katalog." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "Oppdatert mediekatalog" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Nåværende status:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Domenenavn satt" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Sertifikatsstatus" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private key of this machine" +msgid "Private key path" +msgstr "Privatnøkkel tilhørende denne maskinen" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Hjem" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Sikkerhet" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Domener" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Aktiver skade" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Deaktivert" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3633,10 +3920,6 @@ msgstr "Kanseller" msgid "Service" msgstr "Tjeneste" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Domener" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4371,11 +4654,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Denne forbindelsen er ikke aktiv." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Sikkerhet" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5650,11 +5928,6 @@ msgstr "" "lesssecureapps\">https://www.google.com/settings/security/lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "E-postklient" @@ -5959,16 +6232,20 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 #, fuzzy #| msgid "" -#| "The following table lists the reported number of security vulnerabilities " -#| "for each installed app." +#| "The following table lists the current reported number, and historical " +#| "count, of security vulnerabilities for each installed app. More " +#| "information on the vulnerabilities can be found on the Debian Security Bug Tracker." msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" -"Følgende tabell lister antall innrapporterte sikkerhetssårbarheter for hver " -"installerte program." +"Følgende tabell lister gjeldende innrapporterte og historiske antall " +"sikkerhetssårbarheter for hver installerte program. Mer informasjon om " +"sårbarehetene kan finnes i Debians sikkerhetsfeiloversikt." #: plinth/modules/security/templates/security_report.html:28 msgid "" @@ -5996,36 +6273,30 @@ msgstr "Vis sikkerhetssårbarheter" #: plinth/modules/security/templates/security_report.html:47 #, fuzzy -#| msgid "Show security vulnerabilities" -msgid "Past Vulnerabilities" -msgstr "Vis sikkerhetssårbarheter" - -#: plinth/modules/security/templates/security_report.html:48 -#, fuzzy #| msgid "Block Sandbox" msgid "Sandboxed" msgstr "Block-sandkassen" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Block Sandbox" msgid "Sandbox Coverage" msgstr "Block-sandkassen" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 #, fuzzy msgid "N/A" msgstr "I/t" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Ja" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Nei" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "Kjører ikke" @@ -6164,10 +6435,8 @@ msgid "Make files in this folder available to anyone with the link." msgstr "Gjør filene i denne mappen tilgjengelig for alle som har lenken." #: plinth/modules/sharing/forms.py:34 -#, fuzzy -#| msgid "User groups that can read the files in the share" msgid "User groups that can read the files in the share:" -msgstr "Brukergrupper som kan lese filene på det delte området" +msgstr "Brukergrupper som kan lese filene på det delte området:" #: plinth/modules/sharing/forms.py:36 msgid "" @@ -6895,10 +7164,6 @@ msgstr "Kjæledyrnavn" msgid "Add new introducer" msgstr "Legg til en ny introduserer" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Legg til" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Tilknyttede introduserere" @@ -7105,7 +7370,7 @@ msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" "En Tor SOCKS-port er tilgjengelig på din %(box_name)s på TCP port 9050." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Oppsett uendret" @@ -7190,13 +7455,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Oppdater" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update" @@ -8088,6 +8346,63 @@ msgstr "Slett tilkobling" msgid "Server deleted." msgstr "Tjener slettet." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Adresse" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki og Blogg" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "Offentlig tilgang" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8115,7 +8430,7 @@ msgstr "Zoph" #: plinth/modules/zoph/__init__.py:63 msgid "Photo Organizer" -msgstr "" +msgstr "Foto-organiserer" #: plinth/modules/zoph/forms.py:14 msgid "Enable OpenStreetMap for maps" @@ -8126,6 +8441,8 @@ msgid "" "When enabled, requests will be made to OpenStreetMap servers from user's " "browser. This impacts privacy." msgstr "" +"Når dette er aktivt gjøres det forespørsler til tjenere hos OpenStreetMap " +"fra brukerens nettleser. Dette gir inngrep i privatsværen." #: plinth/modules/zoph/templates/zoph-pre-setup.html:15 #: plinth/modules/zoph/templates/zoph-pre-setup.html:28 @@ -8139,7 +8456,9 @@ msgstr "Gå i gang med oppsett" msgid "" "User account %(username)s will become the administrator " "account for Zoph." -msgstr "Brukerkontoen %(username)s vil bli administratorkonto for Zoph." +msgstr "" +"Brukerkontoen %(username)s vil bli administratorkonto for " +"Zoph." #: plinth/network.py:29 msgid "PPPoE" @@ -8240,10 +8559,6 @@ msgstr "Kjernefunksjonalitet og nettbrukergrensesnitt for %(box_name)s" msgid " Home" msgstr " Hjem" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Hjem" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Programmer" @@ -8536,6 +8851,11 @@ msgstr "%(percentage)s%% fullført" msgid "Gujarati" msgstr "Gujarati" +#, fuzzy +#~| msgid "Show security vulnerabilities" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Vis sikkerhetssårbarheter" + #~ msgid "Message Archive Management enabled" #~ msgstr "Meldingsarkivhåndtering aktivert" @@ -9295,9 +9615,6 @@ msgstr "Gujarati" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "Webtjener over SSL" -#~ msgid "Current status:" -#~ msgstr "Nåværende status:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Slette wiki eller blogg" @@ -9319,9 +9636,6 @@ msgstr "Gujarati" #~ msgid "Abort" #~ msgstr "Anuller" -#~ msgid "New Backup" -#~ msgstr "Ny sikkerhetskopi" - #~ msgid "chrony client in contact with servers" #~ msgstr "chrony-klient har kontakt med tjenere" diff --git a/plinth/locale/nl/LC_MESSAGES/django.po b/plinth/locale/nl/LC_MESSAGES/django.po index dec0bd2c5..83c6ab5ea 100644 --- a/plinth/locale/nl/LC_MESSAGES/django.po +++ b/plinth/locale/nl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-04-22 21:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Dutch username@%(domainname)s. Het domein kan worden ingesteld op " "de Instellingen pagina." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Chatserver" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "Map bestaat niet." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "unavailable" +msgid "RoundCube availability" +msgstr "niet beschikbaar" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Geen certificaat" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Domein" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Uitgeschakeld" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "kabel is verbonden" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Verwijderde geselecteerde snapshots" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Maak een nieuwe back-up" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Toevoegen" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "Backups" +msgid "New value" +msgstr "Back-ups" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Update" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Dienst Type" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "Pad is geen map." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "Mediamap bijgewerkt" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Huidige status:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Domeinnaam ingesteld" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Certificaatstatus" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private key of this machine" +msgid "Private key path" +msgstr "Privésleutel van deze machine" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Startpagina" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Security" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Domeinen" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Inschakelen Schade" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Uitgeschakeld" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3629,10 +3914,6 @@ msgstr "Annuleer" msgid "Service" msgstr "Dienst" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Domeinen" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4411,11 +4692,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Deze verbinding is niet actief." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Security" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5645,11 +5921,6 @@ msgstr "" "(https://" "www.google.com/settings/security/lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "Email Cliënt" @@ -5956,9 +6227,15 @@ msgstr "" "de kerndiensten en gebruikersinterface voor een FreedomBox server levert." #: plinth/modules/security/templates/security_report.html:19 +#, fuzzy +#| msgid "" +#| "The following table lists the current reported number, and historical " +#| "count, of security vulnerabilities for each installed app. More " +#| "information on the vulnerabilities can be found on the Debian Security Bug Tracker." msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5997,30 +6274,26 @@ msgid "Current Vulnerabilities" msgstr "Huidige kwetsbaarheden" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Kwetsbaarheden in het verleden" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "Geïsoleerd" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "Isolatie-bereik" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "N.v.t." -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Ja" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Nee" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "Inaktief" @@ -6870,10 +7143,6 @@ msgstr "Naam Huisdier" msgid "Add new introducer" msgstr "Nieuwe introduceerder toevoegen" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Toevoegen" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Verbonden introduceerders" @@ -7084,7 +7353,7 @@ msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" "Een Tor SOCKS poort is beschikbaar op %(box_name)s, via TCP poort 9050." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Instelling onveranderd" @@ -7171,13 +7440,6 @@ msgstr "" "het systeem opnieuw moet worden opgestart, gebeurt dit automatisch om 02:00 " "uur, waardoor alle toepassingen even niet beschikbaar zijn." -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Update" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "Updates" @@ -8016,6 +8278,63 @@ msgstr "Verwijder verbinding met server" msgid "Server deleted." msgstr "Server verwijderd." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Adres" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki en Blog" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "openbare toegang" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8178,10 +8497,6 @@ msgstr "Basisfunctionaliteit en webinterface voor %(box_name)s" msgid " Home" msgstr " Startpagina" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Startpagina" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Toepassingen" @@ -8473,6 +8788,9 @@ msgstr "%(percentage)s%% voltooid" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Kwetsbaarheden in het verleden" + #~ msgid "Message Archive Management enabled" #~ msgstr "Berichten Archief Management aangezet" @@ -9270,9 +9588,6 @@ msgstr "Gujarati" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "Web Server over Secure Socket Layer" -#~ msgid "Current status:" -#~ msgstr "Huidige status:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Verwijder Wiki of Blog" @@ -9297,11 +9612,6 @@ msgstr "Gujarati" #~ msgid "Default app set" #~ msgstr "Standaard" -#, fuzzy -#~| msgid "Backups" -#~ msgid "New Backup" -#~ msgstr "Back-ups" - #, fuzzy #~| msgid "NTP client in contact with servers" #~ msgid "chrony client in contact with servers" diff --git a/plinth/locale/pl/LC_MESSAGES/django.po b/plinth/locale/pl/LC_MESSAGES/django.po index 69542e26b..bbd0c6ab7 100644 --- a/plinth/locale/pl/LC_MESSAGES/django.po +++ b/plinth/locale/pl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-03-03 16:50+0000\n" "Last-Translator: Karol Werner \n" "Language-Team: Polish . Możesz ustawić swoją domenę na stronie Konfiguruj." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Serwer czatu" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Brak certyfikatu" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Domena" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Wyłączony" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "Enabled" +msgid "Enable selected" +msgstr "Włączony" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete %(name)s" +msgid "Delete selected" +msgstr "Usuń %(name)s" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Utwórz nową kopię zapasową" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Typ usługi" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create Repository" +msgid "Create home directory" +msgstr "Utwórz repozytorium" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Aktualny status:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Nazwa domeny ustawiona" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Status certyfikatu" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Create Repository" +msgid "Private key path" +msgstr "Utwórz repozytorium" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Dom" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Włącz zniszczenia" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Wyłączony" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3431,10 +3706,6 @@ msgstr "Anuluj" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4108,11 +4379,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5202,11 +5468,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 #, fuzzy #| msgid "Dynamic DNS Client" @@ -5484,8 +5745,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5515,34 +5776,30 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Blocked" msgid "Sandboxed" msgstr "Zablokowano" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Blocked" msgid "Sandbox Coverage" msgstr "Zablokowano" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Tak" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Nie" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 #, fuzzy #| msgid "deluge-web is not running" msgid "Not running" @@ -6336,10 +6593,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6520,7 +6773,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Ustawienie bez zmian" @@ -6594,13 +6847,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update URL" @@ -7428,6 +7674,59 @@ msgstr "Bezpośrednie połłączenie z internetem." msgid "Server deleted." msgstr "Archiwum zostało usunięte." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki i blog" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7583,10 +7882,6 @@ msgstr "Interfejs administracyjny Plinth dla %(box_name)s" msgid " Home" msgstr " Dom" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Dom" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Aplikacje" @@ -8198,9 +8493,6 @@ msgstr "Gujarati" #~ msgstr "" #~ "Nie powiodło się połączenie ze zdalnym repozytorium. Szczegóły: %(err)s" -#~ msgid "Current status:" -#~ msgstr "Aktualny status:" - #, fuzzy #~| msgid "Error setting language: {exception}" #~ msgid "Error setting default app: {exception}" diff --git a/plinth/locale/pt/LC_MESSAGES/django.po b/plinth/locale/pt/LC_MESSAGES/django.po index 177768c45..1924509e1 100644 --- a/plinth/locale/pt/LC_MESSAGES/django.po +++ b/plinth/locale/pt/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-05-08 22:33+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Web Server" +msgid "Email Server" +msgstr "Servidor Web" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain Name" +msgid "domain" +msgstr "Nome de Domínio" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "Applications" +msgid "Enable selected" +msgstr "Aplicações" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete files" +msgid "Delete selected" +msgstr "Apagar ficheiros" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Criar novo backup" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "New Backup" +msgid "New value" +msgstr "Novo Backup" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Discovery" +msgid "Service Alert" +msgstr "Descoberta do Serviço" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create Repository" +msgid "Create home directory" +msgstr "Criar Repositório" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Nome do domínio definido" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Create new repository" +msgid "Private key path" +msgstr "Criar novo repositório" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +#, fuzzy +#| msgid "Domain Name" +msgid "Domains" +msgstr "Nome de Domínio" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Applications" +msgid "Enabled aliases" +msgstr "Aplicações" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3304,12 +3571,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -#, fuzzy -#| msgid "Domain Name" -msgid "Domains" -msgstr "Nome de Domínio" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3989,11 +4250,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5084,11 +5340,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5368,8 +5619,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5399,30 +5650,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 #, fuzzy #| msgid "Service discovery server is not running" msgid "Not running" @@ -6194,10 +6441,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6380,7 +6623,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Definição inalterada" @@ -6452,13 +6695,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "General Configuration" @@ -7265,6 +7501,57 @@ msgstr "Erro a estabelecer ligação ao servidor: {}" msgid "Server deleted." msgstr "Arquivo apagado." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7405,10 +7692,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" @@ -7790,9 +8073,6 @@ msgstr "Gujarati" #~ msgid "Abort" #~ msgstr "Abandonar" -#~ msgid "New Backup" -#~ msgstr "Novo Backup" - #, fuzzy #~| msgid "NTP client in contact with servers" #~ msgid "chrony client in contact with servers" diff --git a/plinth/locale/ru/LC_MESSAGES/django.po b/plinth/locale/ru/LC_MESSAGES/django.po index 23215b7b8..378a1820e 100644 --- a/plinth/locale/ru/LC_MESSAGES/django.po +++ b/plinth/locale/ru/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-02-01 18:42+0000\n" "Last-Translator: Алексей Докучаев \n" "Language-Team: Russian username@%(domainname)s. Вы можете " "настроить ваш домен на странице Настройка." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Чат-сервер" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "Каталог не существует." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "Unavailable Shares" +msgid "RoundCube availability" +msgstr "Недоступный общий доступ" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Не сертификата" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Домен" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Выключено" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "кабель подключен" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Удалить выбранные снапшоты" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Создать новую резервную копию" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Добавить" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "Backups" +msgid "New value" +msgstr "Резервные копии" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Обновление" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Тип службы" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "Путь не каталог." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "Обновленный каталог медиа" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Текущий статус:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Смена доменного имени" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Статус сертификата" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private key of this machine" +msgid "Private key path" +msgstr "Приватный ключ этой машины" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Домой" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Безопасность" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Домены" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Включить урон" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Выключено" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3599,10 +3884,6 @@ msgstr "Отмена" msgid "Service" msgstr "Служба" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Домены" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4362,11 +4643,6 @@ msgstr "IРv6" msgid "This connection is not active." msgstr "Это подключение не активно." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Безопасность" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5646,11 +5922,6 @@ msgstr "" "security/lesssecureapps\" >https://www.google.com/settings/security/" "lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "Почтовый клиент" @@ -5962,8 +6233,8 @@ msgstr "" #| "The following table lists the current reported number, and historical " #| "count, of security vulnerabilities for each installed app." msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -6000,30 +6271,26 @@ msgid "Current Vulnerabilities" msgstr "Текущие уязвимости" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Прошлые уязвимости" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "Песочница" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "Покрытие песочницы" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "Н/Д" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Да" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Нет" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "Не запущен" @@ -6870,10 +7137,6 @@ msgstr "Имя питомца" msgid "Add new introducer" msgstr "Добавить нового посредника" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Добавить" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Подключенные посредники" @@ -7078,7 +7341,7 @@ msgstr "SОCKS" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "Порт Tor SOCKS вашего %(box_name)s доступен по порту TCP 9050." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Настройки без изменений" @@ -7165,13 +7428,6 @@ msgstr "" "выполняется автоматически в 02:00, в результате чего все приложения на " "короткое время становятся недоступными." -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Обновление" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update" @@ -8018,6 +8274,63 @@ msgstr "Удалить соединение с сервером" msgid "Server deleted." msgstr "Сервер удален." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Адрес" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Вики и Блог" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "публичный доступ" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8165,10 +8478,6 @@ msgstr "Базовая функциональность и веб-интерфе msgid " Home" msgstr " Домой" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Домой" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Приложения" @@ -8461,6 +8770,9 @@ msgstr "%(percentage)s%% завершено" msgid "Gujarati" msgstr "Гуджарати" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Прошлые уязвимости" + #~ msgid "Message Archive Management enabled" #~ msgstr "Управление архивом сообщение включено" @@ -9165,9 +9477,6 @@ msgstr "Гуджарати" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "Веб-сервер через Secure Socket Layer" -#~ msgid "Current status:" -#~ msgstr "Текущий статус:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Удаление блога или вики" @@ -9186,11 +9495,6 @@ msgstr "Гуджарати" #~ msgid "Default app set" #~ msgstr "Приложение по умолчанию настроено" -#, fuzzy -#~| msgid "Backups" -#~ msgid "New Backup" -#~ msgstr "Резервные копии" - #, fuzzy #~| msgid "NTP client in contact with servers" #~ msgid "chrony client in contact with servers" diff --git a/plinth/locale/si/LC_MESSAGES/django.po b/plinth/locale/si/LC_MESSAGES/django.po index 35d08dce2..47c90cdb3 100644 --- a/plinth/locale/si/LC_MESSAGES/django.po +++ b/plinth/locale/si/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-04-27 13:32+0000\n" "Last-Translator: HelaBasa \n" "Language-Team: Sinhala Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +msgid "Email Server" +msgstr "" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +msgid "Delete selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:31 +msgid "Create a new email alias" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +msgid "Service Alert" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +msgid "Create home directory" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3127,10 +3370,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3798,11 +4037,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4859,11 +5093,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5129,8 +5358,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5158,30 +5387,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -5935,10 +6160,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6115,7 +6336,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6187,13 +6408,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -6941,6 +7155,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7077,10 +7342,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/sl/LC_MESSAGES/django.po b/plinth/locale/sl/LC_MESSAGES/django.po index 07352575e..5ce74e38c 100644 --- a/plinth/locale/sl/LC_MESSAGES/django.po +++ b/plinth/locale/sl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Slovenian Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Domain Name Server" +msgid "Email Server" +msgstr "Strežnik z imenom domene" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete Archive" +msgid "Delete selected" +msgstr "Izbriši arhiv" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create remote backup repository" +msgid "Create a new email alias" +msgstr "Ustvari oddaljeno skladišče za rezervne kopije" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Discovery" +msgid "Service Alert" +msgstr "Odkrivanje storitev" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create new repository" +msgid "Create home directory" +msgstr "Ustvari novo skladišče" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Create new repository" +msgid "Private key path" +msgstr "Ustvari novo skladišče" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3303,10 +3558,6 @@ msgstr "Prekliči" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3978,11 +4229,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5053,11 +5299,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5329,8 +5570,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5360,30 +5601,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -6143,10 +6380,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6323,7 +6556,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6403,13 +6636,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -7197,6 +7423,57 @@ msgstr "Napaka ob nameščanju aplikacije: {error}" msgid "Server deleted." msgstr "Arhiv je izbrisan." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7333,10 +7610,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/sq/LC_MESSAGES/django.po b/plinth/locale/sq/LC_MESSAGES/django.po index cbde8997e..20de7672a 100644 --- a/plinth/locale/sq/LC_MESSAGES/django.po +++ b/plinth/locale/sq/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-06-07 12:34+0000\n" "Last-Translator: Besnik Bleta \n" "Language-Team: Albanian Formësoni e sistemit." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Shërbyes Fjalosjesh" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "Drejtoria s’ekziston." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "unavailable" +msgid "RoundCube availability" +msgstr "jo i passhëm" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "S’ka dëshmi" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Përkatësi" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "E çaktivizuar" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "kablloja është e lidhur" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "U fshinë fotografimet e përzgjedhur" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Krijoni një kopjeruajtje të re" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Shtoje" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Përditësoje" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Lloj Shërbimi" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "Shtegu s’është drejtori." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "U përditësua drejtori mediash" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Emri i përkatësisë u caktua" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Gjendje Dëshmie" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private key of this machine" +msgid "Private key path" +msgstr "Kyç privat i kësaj makine" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Kreu" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Siguri" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Përkatësi" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Aktivizo dëmtim" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "E çaktivizuar" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3599,10 +3880,6 @@ msgstr "Anuloje" msgid "Service" msgstr "Shërbim" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Përkatësi" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4379,11 +4656,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Kjo lidhje s’është aktive." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Siguri" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5616,11 +5888,6 @@ msgstr "" "Google (https://www.google.com/settings/security/lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "Klient Email" @@ -5927,8 +6194,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5962,30 +6229,26 @@ msgid "Current Vulnerabilities" msgstr "Cenueshmëri Aktuale" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Cenueshmëri të dikurshme" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "Në bankëprovë" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "Mbulim Bankëprove" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "N/A" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Po" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Jo" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "S’xhiron" @@ -6824,10 +7087,6 @@ msgstr "Emër Kafshe Shtëpiake" msgid "Add new introducer" msgstr "Shtoni paraqitës të ri" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Shtoje" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Paraqitës të lidhur" @@ -7016,7 +7275,7 @@ msgstr "SOCKS" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -7088,13 +7347,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Përditësoje" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "Përditësime" @@ -7842,6 +8094,63 @@ msgstr "Fshije Lidhjen me Shërbyesin" msgid "Server deleted." msgstr "Shërbyesi u fshi." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Adresë" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki dhe Blog" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "hyrje publike" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7978,10 +8287,6 @@ msgstr "" msgid " Home" msgstr " Kreu" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Kreu" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Aplikacione" @@ -8246,3 +8551,6 @@ msgstr "" #: plinth/web_framework.py:113 msgid "Gujarati" msgstr "Gujaratase" + +#~ msgid "Past Vulnerabilities" +#~ msgstr "Cenueshmëri të dikurshme" diff --git a/plinth/locale/sr/LC_MESSAGES/django.po b/plinth/locale/sr/LC_MESSAGES/django.po index 377ad97e3..86031ee08 100644 --- a/plinth/locale/sr/LC_MESSAGES/django.po +++ b/plinth/locale/sr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Serbian Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Domain Name Server" +msgid "Email Server" +msgstr "Domain Name Server" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete Archive" +msgid "Delete selected" +msgstr "Izbriši arhivu" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Kreiraj novu rezervnu kopiju" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Discovery" +msgid "Service Alert" +msgstr "Otkrivanje Servisa" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create Repository" +msgid "Create home directory" +msgstr "Kreirajte repozitorij" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3201,10 +3454,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3874,11 +4123,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4945,11 +5189,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5217,8 +5456,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5246,30 +5485,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -6025,10 +6260,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6205,7 +6436,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6277,13 +6508,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -7031,6 +7255,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7167,10 +7442,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/sv/LC_MESSAGES/django.po b/plinth/locale/sv/LC_MESSAGES/django.po index 3d44ad7ce..6ef1a2261 100644 --- a/plinth/locale/sv/LC_MESSAGES/django.po +++ b/plinth/locale/sv/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-04-22 21:32+0000\n" "Last-Translator: Michael Breidenbach \n" "Language-Team: Swedish användarnamn@%(domainname)s. Du kan ställa in " "din domän på systemet Konfigurera sidan." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Chat-Server" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "Katalogen finns inte." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "unavailable" +msgid "RoundCube availability" +msgstr "otillgängligt" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Inget certifikat" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Domän" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Inaktiverad" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "kabeln är ansluten" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Borttagna markerade ögonblicksbilder" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Skapa en ny säkerhetskopia" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Lägg till" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Uppdatera" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Servicetype" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "Sökvägen är inte en katalog." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "Uppdaterad mediekatalog" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Nuvarande status:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Låt oss kryptera" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Domännamn inställt" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Certifikatets status" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private key of this machine" +msgid "Private key path" +msgstr "Maskinens privata nyckel" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Hem" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Säkerhet" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Domäner" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Aktivera skador" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Inaktiverad" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3590,10 +3873,6 @@ msgstr "Avbryt" msgid "Service" msgstr "Tjänst" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Domäner" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4366,11 +4645,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Den här anslutningen är inte aktiv." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Säkerhet" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5597,11 +5871,6 @@ msgstr "" "security/lesssecureapps\" >https://www.Google.com/settings/Security/" "lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "E-postklient" @@ -5904,9 +6173,15 @@ msgstr "" "server." #: plinth/modules/security/templates/security_report.html:19 +#, fuzzy +#| msgid "" +#| "The following table lists the current reported number, and historical " +#| "count, of security vulnerabilities for each installed app. More " +#| "information on the vulnerabilities can be found on the Debian Security Bug Tracker." msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5943,30 +6218,26 @@ msgid "Current Vulnerabilities" msgstr "Aktuella sårbarheter" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Tidigare sårbarheter" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "Sandboxed" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "Sandbox Täckning" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "N/A" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Ja" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Nej" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "Körs inte" @@ -6809,10 +7080,6 @@ msgstr "Namn på husdjur" msgid "Add new introducer" msgstr "Lägg till ny introduktören" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Lägg till" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Anslutna introducerare" @@ -7018,7 +7285,7 @@ msgstr "SOCKS" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "En Tor SOCKS-port finns på din %(box_name)s på TCP-port 9050." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Instänllningar oförändrade" @@ -7107,13 +7374,6 @@ msgstr "" "systemet bedöms vara nödvändigt, det sker automatiskt vid 02:00 orsakar alla " "apps för att vara tillgängligt en kort stund." -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Uppdatera" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "Uppdateringar" @@ -7948,6 +8208,63 @@ msgstr "Ta bort anslutning till server" msgid "Server deleted." msgstr "Servern har tagits bort." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Adress" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki och Blogg" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "Publik tillgång" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8107,10 +8424,6 @@ msgstr "Kärnfunktioner och webbgränssnitt för %(box_name)s" msgid " Home" msgstr " Hem" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Hem" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Appar" @@ -8404,6 +8717,9 @@ msgstr "%(percentage)s %% färdigt" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Tidigare sårbarheter" + #~ msgid "Message Archive Management enabled" #~ msgstr "Meddelandearkivhantering aktiverad" @@ -9007,9 +9323,6 @@ msgstr "Gujarati" #~ msgid "Tor Anonymity Network" #~ msgstr "Tor Anonymitetsnätverk" -#~ msgid "Current status:" -#~ msgstr "Nuvarande status:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Ta Bort Wiki eller Blogg" diff --git a/plinth/locale/ta/LC_MESSAGES/django.po b/plinth/locale/ta/LC_MESSAGES/django.po index 9683c2f21..de7dc897a 100644 --- a/plinth/locale/ta/LC_MESSAGES/django.po +++ b/plinth/locale/ta/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,7 @@ msgstr "" msgid "Page source" msgstr "" -#: plinth/context_processors.py:23 plinth/views.py:78 +#: plinth/context_processors.py:23 plinth/views.py:80 msgid "FreedomBox" msgstr "" @@ -926,7 +926,7 @@ msgstr "" #: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29 #: plinth/modules/shadowsocks/views.py:59 -#: plinth/modules/transmission/views.py:47 +#: plinth/modules/transmission/views.py:47 plinth/modules/wordpress/views.py:36 msgid "Configuration updated" msgstr "" @@ -1342,15 +1342,18 @@ msgid "Diagnostics" msgstr "" #: plinth/modules/diagnostics/__init__.py:98 +#: plinth/modules/email_server/templates/email_server.html:29 msgid "passed" msgstr "" #: plinth/modules/diagnostics/__init__.py:99 +#: plinth/modules/email_server/templates/email_server.html:27 #: plinth/modules/networks/views.py:49 msgid "failed" msgstr "" #: plinth/modules/diagnostics/__init__.py:100 +#: plinth/modules/email_server/templates/email_server.html:25 msgid "error" msgstr "" @@ -1842,6 +1845,246 @@ msgid "" "Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +msgid "Email Server" +msgstr "" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +msgid "Delete selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:31 +msgid "Create a new email alias" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +msgid "Service Alert" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +msgid "Create home directory" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3126,10 +3369,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3797,11 +4036,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4858,11 +5092,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5128,8 +5357,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5157,30 +5386,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -5934,10 +6159,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6114,7 +6335,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6186,13 +6407,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -6940,6 +7154,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7076,10 +7341,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/te/LC_MESSAGES/django.po b/plinth/locale/te/LC_MESSAGES/django.po index d7638ac3d..82d5bc1ae 100644 --- a/plinth/locale/te/LC_MESSAGES/django.po +++ b/plinth/locale/te/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-05-17 18:31+0000\n" "Last-Translator: chilumula vamshi krishna \n" "Language-Team: Telugu kaanfigar పేజీలో సెటప్ చేయవచ్చు." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "కబుర్ల సేవిక" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "డైరెక్టరీ ఉనికిలో లేదు." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "Available Domains" +msgid "RoundCube availability" +msgstr "అందుబాటులో ఉన్న డొమైన్లు" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "ధృవీకరణ పత్రం లేదు" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "డొమైన్" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "రౌండ్ క్యూబ్" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "మొజిల్లా థండర్ బర్డ్" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "నిలిపివేయబడింది" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "కేబుల్ అనుసంధానించబడిన" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete all the snapshots" +msgid "Delete selected" +msgstr "అన్ని స్నాప్షాట్‌లను తొలగించు" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "క్రొత్త బ్యాకప్‌ను సృష్టించండి" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "జోడించు" + +#: plinth/modules/email_server/templates/email_domains.html:19 +#, fuzzy +#| msgid "Backups" +msgid "New value" +msgstr "బ్యాకప్స్" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "నవీకరణ" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "సేవా రకం" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Download directory" +msgid "You do not have a home directory." +msgstr "డైరెక్టరీని దిగుమతి చేయు" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "మీడియా డైరెక్టరీని నవీకరించబడింది" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "ప్రస్తుత స్థితి:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "లెట్స్ ఎన్క్రిప్ట్" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "అధికారక్షేత్రం పేరు అమర్పు" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "యోగ్యతాపత్రం స్థితి" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Create User" +msgid "Private key path" +msgstr "వినియోగదారుని సృష్టించు" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "ముంగిలి" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "భద్రత" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "డొమైన్లు" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +msgid "Enabled aliases" +msgstr "PageKite ప్రారంభించు" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "నిలిపివేయబడింది" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3549,10 +3833,6 @@ msgstr "రద్దుచేయి" msgid "Service" msgstr "సేవ" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "డొమైన్లు" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4264,11 +4544,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "ఈ అనుసంధానం చురుకుగాలేదు." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "భద్రత" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5487,11 +5762,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "రౌండ్ క్యూబ్" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "ఇమెయిల్ క్లయింట్" @@ -5809,8 +6079,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5840,38 +6110,34 @@ msgid "Current Vulnerabilities" msgstr "ప్రస్తుత దుర్బలతలు" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "గత దుర్బలతలు" - -#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Block Sandbox (Minetest)" msgid "Sandboxed" msgstr "స్యాండ్ బాక్స్ ను అడ్డగించు (మైన్ పరీక్ష)" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "Block Sandbox (Minetest)" msgid "Sandbox Coverage" msgstr "స్యాండ్ బాక్స్ ను అడ్డగించు (మైన్ పరీక్ష)" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "N/A" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 #, fuzzy #| msgid "yes" msgid "Yes" msgstr "అవును" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 #, fuzzy #| msgid "None" msgid "No" msgstr "ఏమీ లేదు" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 #, fuzzy #| msgid "is not running" msgid "Not running" @@ -6727,10 +6993,6 @@ msgstr "ముద్దుపేరు" msgid "Add new introducer" msgstr "కొత్త పరిచయకర్తని జోడించండి" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "జోడించు" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "కనెక్ట్ చేసిన పరిచయకర్తలు" @@ -6942,7 +7204,7 @@ msgstr "సాక్స్‌లు" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "టిసిపి పోర్ట్ 9050 పై ఒక టార్ సొక్స్ పోర్ట్ మీ %(box_name)sలో అందుబాటులో ఉంది." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "మారకుండా అమర్చుతోంది" @@ -7034,13 +7296,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "నవీకరణ" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update" @@ -7884,6 +8139,63 @@ msgstr "అనుసంధానం తొలగించు" msgid "Server deleted." msgstr "{name} తొలగించబడింది." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "చిరునామా" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "వికీ మరియు బ్లాగ్" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "ప్రజా ప్రాప్తి" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8027,10 +8339,6 @@ msgstr "" msgid " Home" msgstr "ముంగిలి" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "ముంగిలి" - #: plinth/templates/base.html:115 #, fuzzy #| msgid "Apps" @@ -8328,6 +8636,9 @@ msgstr "%(percentage)s %% పూర్తి" msgid "Gujarati" msgstr "గుజరాతీ" +#~ msgid "Past Vulnerabilities" +#~ msgstr "గత దుర్బలతలు" + #~ msgid "Message Archive Management enabled" #~ msgstr "ప్రాచీన సందేశ నిర్వహణ ప్రారంభించబడింది" @@ -9087,9 +9398,6 @@ msgstr "గుజరాతీ" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "సెక్యుర్ సాకెట్ లేయర్ పై వెబ్ సర్వర్" -#~ msgid "Current status:" -#~ msgstr "ప్రస్తుత స్థితి:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "వికీ లేదా బ్లాగును తొలగించు" @@ -9114,11 +9422,6 @@ msgstr "గుజరాతీ" #~ msgid "Default app set" #~ msgstr "అప్రమేయం" -#, fuzzy -#~| msgid "Backups" -#~ msgid "New Backup" -#~ msgstr "బ్యాకప్స్" - #, fuzzy #~| msgid "NTP client in contact with servers" #~ msgid "chrony client in contact with servers" diff --git a/plinth/locale/tr/LC_MESSAGES/django.po b/plinth/locale/tr/LC_MESSAGES/django.po index 8cc1b687c..060346a33 100644 --- a/plinth/locale/tr/LC_MESSAGES/django.po +++ b/plinth/locale/tr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-04-22 21:32+0000\n" "Last-Translator: Burak Yavuz \n" "Language-Team: Turkish Yapılandır sayfasında " "ayarlayabilirsiniz." +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Sohbet Sunucusu" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "Dizin mevcut değil." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "unavailable" +msgid "RoundCube availability" +msgstr "kullanılamaz" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Sertifika yok" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Etki Alanı" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Etkisizleştirildi" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "kablo bağlı" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Deleted selected snapshots" +msgid "Delete selected" +msgstr "Seçilen anlık görüntüler silindi" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Yeni bir yedek oluşturun" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Ekle" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Güncelle" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Hizmet Türü" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "Yol bir dizin değil." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "Güncellenmiş ortam dizini" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "Güncel durum:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Etki alanı adı ayarlandı" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Sertifika Durumu" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private key of this machine" +msgid "Private key path" +msgstr "Bu makinenin özel anahtarı" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Giriş" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Güvenlik" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Etki Alanları" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Hasarı etkinleştir" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Etkisizleştirildi" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3608,10 +3891,6 @@ msgstr "İptal" msgid "Service" msgstr "Hizmet" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Etki Alanları" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4385,11 +4664,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Bu bağlantı etkin değil." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Güvenlik" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5611,11 +5885,6 @@ msgstr "" "gerekeceğini unutmayın (https://myaccount.google.com/lesssecureapps)." -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "E-posta İstemcisi" @@ -5920,9 +6189,15 @@ msgstr "" "sağlayan FreedomBox uygulamasında bildirilen %(count)s güvenlik açığı var." #: plinth/modules/security/templates/security_report.html:19 +#, fuzzy +#| msgid "" +#| "The following table lists the current reported number, and historical " +#| "count, of security vulnerabilities for each installed app. More " +#| "information on the vulnerabilities can be found on the Debian Security Bug Tracker." msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5961,30 +6236,26 @@ msgid "Current Vulnerabilities" msgstr "Şu Anki Güvenlik Açığı" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Geçmiş Güvenlik Açığı" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "Korumalı" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "Korumalı Alan Kapsamı" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "YOK" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Evet" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Hayır" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "Çalışmıyor" @@ -6833,10 +7104,6 @@ msgstr "Evcil Hayvan Adı" msgid "Add new introducer" msgstr "Yeni tanıtıcı ekle" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Ekle" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "Bağlı tanıtıcılar" @@ -7044,7 +7311,7 @@ msgstr "" "9050 nolu TCP bağlantı noktası üzerindeki %(box_name)s cihazınızda bir Tor " "SOCKS bağlantı noktası kullanılabilir." -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Ayar değişmedi" @@ -7132,13 +7399,6 @@ msgstr "" "Eğer sistemin yeniden başlatılması gerekli görülürse, saat 02:00'da otomatik " "olarak yapılır ve tüm uygulamalar kısa bir süre için kullanılamaz hale gelir." -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Güncelle" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "Güncellemeler" @@ -7973,6 +8233,63 @@ msgstr "Sunucuya Bağlantıyı Sil" msgid "Server deleted." msgstr "Sunucu silindi." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Adres" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Viki ve Blog" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "herkese açık erişim" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8134,10 +8451,6 @@ msgstr "%(box_name)s için temel işlevsellik ve web arayüzü" msgid " Home" msgstr " Giriş" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Giriş" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Uygulamalar" @@ -8428,6 +8741,9 @@ msgstr "%%%(percentage)s tamamlandı" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Geçmiş Güvenlik Açığı" + #~ msgid "Message Archive Management enabled" #~ msgstr "İleti Arşivi Yönetimi etkinleştirildi" @@ -9211,9 +9527,6 @@ msgstr "Gujarati" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "SSL (Secure Socket Layer) üzerinden Web Sunucusu" -#~ msgid "Current status:" -#~ msgstr "Güncel durum:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "Viki ya da Blogu Sil" diff --git a/plinth/locale/uk/LC_MESSAGES/django.po b/plinth/locale/uk/LC_MESSAGES/django.po index 06aeb9c41..441d01c99 100644 --- a/plinth/locale/uk/LC_MESSAGES/django.po +++ b/plinth/locale/uk/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" -"PO-Revision-Date: 2021-08-10 19:32+0000\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" +"PO-Revision-Date: 2021-08-20 21:20+0000\n" "Last-Translator: Andrij Mizyk \n" "Language-Team: Ukrainian \n" @@ -24,7 +24,7 @@ msgstr "" msgid "Page source" msgstr "Джерело сторінки" -#: plinth/context_processors.py:23 plinth/views.py:78 +#: plinth/context_processors.py:23 plinth/views.py:80 msgid "FreedomBox" msgstr "FreedomBox" @@ -117,7 +117,7 @@ msgid "Access URL {url}" msgstr "Доступ до URL {url}" #: plinth/modules/avahi/__init__.py:35 -#, fuzzy, python-brace-format +#, python-brace-format msgid "" "Service discovery allows other devices on the network to discover your " "{box_name} and services running on it. It also allows {box_name} to " @@ -126,11 +126,11 @@ msgid "" "disabled to improve security especially when connecting to a hostile local " "network." msgstr "" -"Виявлення служб дозволяє іншим пристроям в мережі знаходити ваш {box_name} " -"та запущені на ньому служби. Це дозволяє {box_name} знаходити інші пристрої " -"та служби запущені у вашій локальній мережі. Знаходження служб не головне і " -"працює лише у внутрішніх мережах. Це можна виключити, для підвищення " -"безпеки, особливо при підключенні до не довіреної мережі." +"Виявлення сервісів дозволяє іншим пристроям у мережі знаходити ваш " +"{box_name} та запущені на ньому сервіси. Це дозволяє {box_name} знаходити " +"інші пристрої та сервіси запущені у вашій локальній мережі. Знаходження " +"сервісів не головне і працює лише у внутрішніх мережах. Це можна вимкнути " +"для підвищення безпеки, особливо при підключенні до не довіреної мережі." #: plinth/modules/avahi/__init__.py:59 msgid "Service Discovery" @@ -397,6 +397,8 @@ msgid "" "Connection refused - make sure you provided correct credentials and the " "server is running." msgstr "" +"У зʼєднані відмовлено - переконайтеся, що ви надали правильні облікові дані " +"і чи сервер працює." #: plinth/modules/backups/repository.py:41 msgid "Connection refused" @@ -417,6 +419,7 @@ msgstr "Доступ SSH відхилено" #: plinth/modules/backups/repository.py:64 msgid "Repository path is neither empty nor is an existing backups repository." msgstr "" +"Шлях репозиторію непорожній і не є наявним репозиторієм резервних копій." #: plinth/modules/backups/repository.py:143 msgid "Existing repository is not encrypted." @@ -471,6 +474,9 @@ msgid "" "To restore a backup on a new %(box_name)s you need the ssh credentials and, " "if chosen, the encryption passphrase." msgstr "" +"Облікові дані для цього репозиторію зберігаються на вашому %(box_name)s. " +"
Щоб відновити резервну копію на новому %(box_name)s вам потрібні " +"облікові дані ssh та, якщо вибрано, парольна фраза для шифрування." #: plinth/modules/backups/templates/backups_add_remote_repository.html:28 msgid "Create Location" @@ -552,6 +558,8 @@ msgid "" "The remote repository will not be deleted. This just removes the repository " "from the listing on the backup page, you can add it again later on." msgstr "" +"Віддалений репозиторій не видалиться. Це лише вилучить репозиторій зі списку " +"на сторінці резервування, ви можете додати його пізніше." #: plinth/modules/backups/templates/backups_repository_remove.html:31 msgid "Remove Location" @@ -572,12 +580,19 @@ msgid "" " backup file.\n" " " msgstr "" +"\n" +" Вивантажити файл резервної копії від іншого %(box_name)s, щоб " +"відновити\n" +" його вміст. Можете обрати застосунки, які бажаєте відновити, після " +"вивантажування\n" +" файлу резервної копії.\n" +" " #: plinth/modules/backups/templates/backups_upload.html:27 #: plinth/modules/help/templates/statuslog.html:23 #: plinth/modules/networks/templates/connection_show.html:23 msgid "Caution:" -msgstr "" +msgstr "Обережно:" #: plinth/modules/backups/templates/backups_upload.html:28 #, python-format @@ -585,6 +600,8 @@ msgid "" "You have %(max_filesize)s available to restore a backup. Exceeding this " "limit can leave your %(box_name)s unusable." msgstr "" +"У вас доступно %(max_filesize)s для відновлення резервної копії. Перевищення " +"цього обмеження може зробити ваш %(box_name)s не придатним для використання." #: plinth/modules/backups/templates/backups_upload.html:41 msgid "Upload file" @@ -596,6 +613,8 @@ msgid "" "Could not reach SSH host %(hostname)s. Please verify that the host is up and " "accepting connections." msgstr "" +"Не вдалося звʼязатися з власником SSH %(hostname)s. Перевірте чи компʼютер " +"працює і приймає зʼєднання." #: plinth/modules/backups/templates/verify_ssh_hostkey.html:28 #, python-format @@ -603,6 +622,8 @@ msgid "" "The authenticity of SSH host %(hostname)s could not be established. The host " "advertises the following SSH public keys. Please verify any one of them." msgstr "" +"Не вдалося встановити автентифікацію власника SSH %(hostname)s. Компʼютер " +"повідомляє про такі публічні ключі SSH. Перевірте будь-який з них." #: plinth/modules/backups/templates/verify_ssh_hostkey.html:40 msgid "How to verify?" @@ -614,10 +635,13 @@ msgid "" "one of the provided options. You can also use dsa, ecdsa, ed25519 etc. " "instead of rsa, by choosing the corresponding file." msgstr "" +"Запустіть наступні команди на машині, що розміщує SSH. Вивід має відповідати " +"одному з наведених параметрів. Ви також можете використовувати dsa, ecdsa, " +"ed25519 і т.п. замість rsa, обравши відповідний файл." #: plinth/modules/backups/templates/verify_ssh_hostkey.html:60 msgid "Verify Host" -msgstr "" +msgstr "Перевірити власника" #: plinth/modules/backups/views.py:55 msgid "Backup schedule updated." @@ -673,19 +697,19 @@ msgstr "Додано новий віддалений SSH-репозиторій. #: plinth/modules/backups/views.py:366 msgid "Verify SSH hostkey" -msgstr "" +msgstr "Перевірити ключ власника SSH" #: plinth/modules/backups/views.py:392 msgid "SSH host already verified." -msgstr "" +msgstr "Власника SSH вже перевірено." #: plinth/modules/backups/views.py:402 msgid "SSH host verified." -msgstr "" +msgstr "Власника SSH перевірено." #: plinth/modules/backups/views.py:417 msgid "SSH host public key could not be verified." -msgstr "" +msgstr "Публічний ключ власника SSH не можливо перевірити." #: plinth/modules/backups/views.py:419 msgid "Authentication to remote server failed." @@ -722,6 +746,11 @@ msgid "" "audio, video and PDF documents can be previewed in the browser. Shared files " "can be set to expire after a time period." msgstr "" +"bepasty — це вебзастосунок, що дозволяє відвантажувати і ділитися великими " +"файлами. Текст і фрагменти коду також можна вставляти і ширити. Текст, " +"картинки, звук, відеозаписи та документи PDF можна попередньо переглянути в " +"оглядачі. Поширювані файли можна позначати застарілими після певного періоду " +"часу." #: plinth/modules/bepasty/__init__.py:28 msgid "" @@ -730,6 +759,9 @@ msgid "" "password, you can share it with the users who should have the associated " "permissions." msgstr "" +"bepasty не використовує імена користувачів для входу. Використовує лише " +"паролі. Для кожного пароля можна вибирати набір дозволів. Створивши пароль, " +"ви зможете ділитися ним із користувачами, які мають відповідні дозволи." #: plinth/modules/bepasty/__init__.py:32 msgid "" @@ -738,18 +770,21 @@ msgid "" "revoke access for a single person or group, by removing their password from " "the list." msgstr "" +"Можна створити декілька паролів з однаковим набором привілеїв і роздати їх " +"різним людям або групам. Це дозволить скасувати доступ до певної особи або " +"групи видаливши її пароль зі списку." #: plinth/modules/bepasty/__init__.py:41 plinth/modules/bepasty/__init__.py:50 msgid "Read a file, if a web link to the file is available" -msgstr "" +msgstr "Прочитати файл, якщо вебпосилання на файл доступне" #: plinth/modules/bepasty/__init__.py:42 msgid "Create or upload files" -msgstr "" +msgstr "Створити або відвантажити файли" #: plinth/modules/bepasty/__init__.py:43 msgid "List all files and their web links" -msgstr "" +msgstr "Показати всі файли і їхні вебпосилання" #: plinth/modules/bepasty/__init__.py:44 msgid "Delete files" @@ -757,42 +792,42 @@ msgstr "Видалити файли" #: plinth/modules/bepasty/__init__.py:45 msgid "Administer files: lock/unlock files" -msgstr "" +msgstr "Адміністрування файлів: блокувати/розблокувати файли" #: plinth/modules/bepasty/__init__.py:49 msgid "None, password is always required" -msgstr "" +msgstr "Нічого, пароль обовʼязковий" #: plinth/modules/bepasty/__init__.py:51 msgid "List and read all files" -msgstr "" +msgstr "Показати і зчитати всі файли" #: plinth/modules/bepasty/__init__.py:64 plinth/modules/bepasty/manifest.py:6 msgid "bepasty" -msgstr "" +msgstr "bepasty" #: plinth/modules/bepasty/__init__.py:66 msgid "File & Snippet Sharing" -msgstr "" +msgstr "Обмін файлами і фрагментами коду" #: plinth/modules/bepasty/forms.py:17 msgid "Public Access (default permissions)" -msgstr "" +msgstr "Публічний доступ (типові дозволи)" #: plinth/modules/bepasty/forms.py:18 msgid "Permissions for anonymous users, who have not provided a password." -msgstr "" +msgstr "Дозволи для анонімних користувачів, що не надали пароль." #: plinth/modules/bepasty/forms.py:27 #: plinth/modules/bepasty/templates/bepasty.html:30 #: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227 msgid "Permissions" -msgstr "" +msgstr "Дозволи" #: plinth/modules/bepasty/forms.py:29 msgid "" "Users that log in with this password will have the selected permissions." -msgstr "" +msgstr "Користувачі, що ввійдуть із цим паролем матимуть вибрані дозволи." #: plinth/modules/bepasty/forms.py:33 #: plinth/modules/bepasty/templates/bepasty.html:31 @@ -801,7 +836,7 @@ msgstr "Коментар" #: plinth/modules/bepasty/forms.py:34 msgid "Any comment to help you remember the purpose of this password." -msgstr "" +msgstr "Будь-який коментар, що допоможе запамʼятати призначення цього пароля." #: plinth/modules/bepasty/templates/bepasty.html:12 msgid "Manage Passwords" @@ -814,7 +849,7 @@ msgstr "Додати пароль" #: plinth/modules/bepasty/templates/bepasty.html:23 msgid "No passwords currently configured." -msgstr "" +msgstr "Не налаштовано жодного пароля." #: plinth/modules/bepasty/templates/bepasty.html:29 #: plinth/modules/dynamicdns/forms.py:106 plinth/modules/networks/forms.py:213 @@ -824,7 +859,7 @@ msgstr "Пароль" #: plinth/modules/bepasty/views.py:23 msgid "admin" -msgstr "" +msgstr "адміністратор" #: plinth/modules/bepasty/views.py:24 msgid "editor" @@ -832,11 +867,11 @@ msgstr "редактор" #: plinth/modules/bepasty/views.py:25 msgid "viewer" -msgstr "" +msgstr "переглядач" #: plinth/modules/bepasty/views.py:50 msgid "Read" -msgstr "" +msgstr "Читати" #: plinth/modules/bepasty/views.py:51 msgid "Create" @@ -844,7 +879,7 @@ msgstr "Створити" #: plinth/modules/bepasty/views.py:52 msgid "List" -msgstr "" +msgstr "Показати" #: plinth/modules/bepasty/views.py:53 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 @@ -855,23 +890,23 @@ msgstr "" #: plinth/modules/wireguard/templates/wireguard_show_client.html:77 #: plinth/modules/wireguard/templates/wireguard_show_server.html:78 msgid "Delete" -msgstr "" +msgstr "Видалити" #: plinth/modules/bepasty/views.py:54 msgid "Admin" -msgstr "" +msgstr "Адміністратор" #: plinth/modules/bepasty/views.py:91 plinth/modules/searx/views.py:38 #: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:130 #: plinth/modules/tor/views.py:157 plinth/modules/zoph/views.py:69 msgid "Configuration updated." -msgstr "" +msgstr "Налаштування оновлено." #: plinth/modules/bepasty/views.py:94 plinth/modules/gitweb/views.py:117 #: plinth/modules/searx/views.py:41 plinth/modules/searx/views.py:52 #: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:72 msgid "An error occurred during configuration." -msgstr "" +msgstr "Під час налаштування відбулася помилка." #: plinth/modules/bepasty/views.py:105 msgid "Password added." @@ -900,10 +935,13 @@ msgid "" "machines on local network. It is also incompatible with sharing Internet " "connection from {box_name}." msgstr "" +"Зараз на {box_name} BIND використовується лише для обробки DNS-запитів для " +"інших машин у локальній мережі. Це також не сумісно зі спільним доступом до " +"Інтернету з {box_name}." #: plinth/modules/bind/__init__.py:78 msgid "BIND" -msgstr "" +msgstr "BIND" #: plinth/modules/bind/__init__.py:79 msgid "Domain Name Server" @@ -911,13 +949,13 @@ msgstr "Сервер доменних імен" #: plinth/modules/bind/forms.py:20 msgid "Forwarders" -msgstr "" +msgstr "Перенаправлювачі" #: plinth/modules/bind/forms.py:21 msgid "" "A list DNS servers, separated by space, to which requests will be forwarded" msgstr "" -"Список серверів DNS, розділених пробілами, до яких направлятимуться запити" +"Список серверів DNS, що розділені пробілами, до яких направлятимуться запити" #: plinth/modules/bind/forms.py:25 msgid "Enable DNSSEC" @@ -925,11 +963,11 @@ msgstr "Увімкнути DNSSEC" #: plinth/modules/bind/forms.py:26 msgid "Enable Domain Name System Security Extensions" -msgstr "" +msgstr "Дозволити розширення безпеки системи доменних назв" #: plinth/modules/bind/templates/bind.html:11 msgid "Serving Domains" -msgstr "" +msgstr "Обслуговування доменів" #: plinth/modules/bind/templates/bind.html:17 #: plinth/modules/ikiwiki/forms.py:12 @@ -938,7 +976,7 @@ msgstr "" #: plinth/modules/samba/templates/samba.html:65 #: plinth/modules/storage/templates/storage.html:26 msgid "Type" -msgstr "" +msgstr "Тип" #: plinth/modules/bind/templates/bind.html:18 msgid "Domain Names" @@ -946,16 +984,16 @@ msgstr "Назви доменів" #: plinth/modules/bind/templates/bind.html:19 msgid "Serving" -msgstr "" +msgstr "Обслуговування" #: plinth/modules/bind/templates/bind.html:20 msgid "IP addresses" -msgstr "" +msgstr "IP-адреси" #: plinth/modules/bind/templates/bind.html:37 #: plinth/modules/bind/templates/bind.html:39 msgid "Refresh IP address and domains" -msgstr "" +msgstr "Оновити IP-адреси і домени" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:169 @@ -963,7 +1001,7 @@ msgstr "" #: plinth/modules/matrixsynapse/views.py:124 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29 #: plinth/modules/shadowsocks/views.py:59 -#: plinth/modules/transmission/views.py:47 +#: plinth/modules/transmission/views.py:47 plinth/modules/wordpress/views.py:36 msgid "Configuration updated" msgstr "Конфігурацію оновлено" @@ -974,6 +1012,9 @@ msgid "" "store your e-books on your {box_name}, read them online or from any of your " "devices." msgstr "" +"сервер calibre надає мережевий доступ до вашої колекції електронних книжок. " +"Ви можете зберігати електронні книжки на своєму {box_name}, читаючи їх " +"онлайн або з будь-якого вашого пристрою." #: plinth/modules/calibre/__init__.py:34 msgid "" @@ -983,12 +1024,22 @@ msgid "" "an online web reader. It remembers your last read location, bookmarks, and " "highlighted text. Content distribution using OPDS is currently not supported." msgstr "" +"Ви можете організовувати свої електронні книжки, витягувати та змінювати " +"їхні метадані і виконувати розширений пошук. calibre може імпортувати, " +"експортувати або перетворювати між широким вибором форматів, щоб робити " +"електронні книжки готовими для читання на будь-якому пристрої. Він також " +"надає мережевий веб-читач, що запамʼятовує ваше останнє місце читання, " +"закладки і виділений текст. Поширення вмісту через OPDS поки що не " +"підтримується." #: plinth/modules/calibre/__init__.py:40 msgid "" "Only users belonging to calibre group will be able to access the " "app. All users with access can use all the libraries." msgstr "" +"Лише користувачі, що належать до групи calibre можуть мати доступ " +"до застосунку. Усі користувачі з доступом можуть користуватися всіма " +"бібліотеками." #: plinth/modules/calibre/__init__.py:58 msgid "Use calibre e-book libraries" @@ -1080,6 +1131,10 @@ msgid "" "advanced functions that are not usually required. A web based terminal for " "console operations is also available." msgstr "" +"Cockpit – це серверний керівник, що полегшує адміністрування серверів GNU/" +"Linux через вебоглядач. На {box_name} доступне керування для багатьох " +"розширених функцій, які зазвичай не потрібні. Також доступний вебтермінал " +"для консольних операцій." #: plinth/modules/cockpit/__init__.py:38 msgid "" @@ -1088,6 +1143,10 @@ msgid "" "firewall ports and advanced networking such as bonding, bridging and VLAN " "management." msgstr "" +"Cockpit можна використовувати для виконання розширених операцій зі сховищем, " +"як-от поділ дисків чи керування RAID. Його також можна використовувати для " +"відкривання власних портів фаєрволу та розширеної роботи з мережею, як-от " +"роботи зі звʼязком, мостами та керуванням VLAN." #: plinth/modules/cockpit/__init__.py:43 #, python-brace-format @@ -1095,12 +1154,16 @@ msgid "" "It can be accessed by any user on {box_name} " "belonging to the admin group." msgstr "" +"До нього може мати доступ будь-який користувач " +"на {box_name}, що належить до групи admin." #: plinth/modules/cockpit/__init__.py:47 msgid "" "Cockpit requires that you access it through a domain name. It will not work " "when accessed using an IP address as part of the URL." msgstr "" +"Cockpit вимагає доступу до нього через доменне імʼя. Він не працюватиме, " +"якщо звертатися до нього використовуючи IP-адресу як частину URL." #: plinth/modules/cockpit/__init__.py:64 plinth/modules/cockpit/manifest.py:9 #: plinth/modules/performance/manifest.py:33 @@ -1117,13 +1180,15 @@ msgstr "Доступ" #: plinth/modules/cockpit/templates/cockpit.html:14 msgid "Cockpit will only work when accessed using the following URLs." -msgstr "" +msgstr "Cockpit працюватиме лише, якщо входити через наступні URL-адреси." #: plinth/modules/config/__init__.py:27 msgid "" "Here you can set some general configuration options like hostname, domain " "name, webserver home page etc." msgstr "" +"Тут ви можете задати деякі загальні параметри налаштування, як назва " +"компʼютера, назва домена, домашня сторінка вебсервера тощо." #: plinth/modules/config/__init__.py:58 msgid "General Configuration" @@ -1156,7 +1221,7 @@ msgstr "Вебсайт {user}" #: plinth/modules/config/forms.py:42 msgid "Apache Default" -msgstr "" +msgstr "Типова Apache" #: plinth/modules/config/forms.py:43 msgid "FreedomBox Service (Plinth)" @@ -1174,10 +1239,15 @@ msgid "" "and have as interior characters only alphabets, digits and hyphens. Total " "length must be 63 characters or less." msgstr "" +"Назва компʼютера – це локальна назва, за якою інші пристрої в локальній " +"мережі можуть звертатися до вашого {box_name}. Вона має починатися і " +"закінчуватися символами алфавіту або цифрами, і містити всередині лише " +"символи алфавіту, цифри чи дефіси. Загальна довжина не повинна перевищувати " +"63 знаки." #: plinth/modules/config/forms.py:64 msgid "Invalid hostname" -msgstr "" +msgstr "Некоректна назва компʼютера" #: plinth/modules/config/forms.py:70 #, python-brace-format @@ -1192,7 +1262,7 @@ msgstr "" #: plinth/modules/config/forms.py:85 msgid "Webserver Home Page" -msgstr "" +msgstr "Домашня сторінка вебсервера" #: plinth/modules/config/forms.py:87 #, python-brace-format @@ -1206,11 +1276,12 @@ msgstr "" #: plinth/modules/config/forms.py:98 msgid "Show advanced apps and features" -msgstr "" +msgstr "Показувати розширені застосунки і можливості" #: plinth/modules/config/forms.py:100 msgid "Show apps and features that require more technical knowledge." msgstr "" +"Показувати застосунки і можливості, що вимагають більш технічних знань." #: plinth/modules/config/views.py:46 #, python-brace-format @@ -1219,16 +1290,16 @@ msgstr "Помилка параметру hostname: {exception}" #: plinth/modules/config/views.py:49 msgid "Hostname set" -msgstr "" +msgstr "Назву компʼютера задано" #: plinth/modules/config/views.py:58 #, python-brace-format msgid "Error setting domain name: {exception}" -msgstr "" +msgstr "Помилка встановлення доменної назви: {exception}" #: plinth/modules/config/views.py:61 msgid "Domain name set" -msgstr "" +msgstr "Доменну назву задано" #: plinth/modules/config/views.py:69 #, python-brace-format @@ -1237,7 +1308,7 @@ msgstr "Помилка налаштування домашньої сторін #: plinth/modules/config/views.py:72 msgid "Webserver home page set" -msgstr "" +msgstr "Домашню сторінку вебсервера задано" #: plinth/modules/config/views.py:80 #, python-brace-format @@ -1246,11 +1317,11 @@ msgstr "Помилка зміни розширеного режиму: {exceptio #: plinth/modules/config/views.py:85 msgid "Showing advanced apps and features" -msgstr "" +msgstr "Відображення розширених застосунків і можливостей" #: plinth/modules/config/views.py:88 msgid "Hiding advanced apps and features" -msgstr "" +msgstr "Приховування розширених застосунків і можливостей" #: plinth/modules/coturn/__init__.py:36 msgid "" @@ -1259,6 +1330,10 @@ msgid "" "other communication servers can use it to establish a call between parties " "who are otherwise unable connect to each other." msgstr "" +"Coturn — це сервер для полегшення звукових/відео дзвінків та конференцій, " +"надаючи реалізацію протоколів TURN та STUN. WebRTC, SIP та інші сервери " +"комунікації можуть використовувати його для встановлення дзвінків між " +"частинами, які по-іншому не можливо звʼязати між собою." #: plinth/modules/coturn/__init__.py:41 #, python-brace-format @@ -1267,23 +1342,26 @@ msgid "" "\"{ms_url}\">Matrix Synapse or ejabberd need to " "be configured with the details provided here." msgstr "" +"Він не призначений для використання користувачами напряму. Деякі сервери, як-" +"от Matrix Synapse або ejabberd потрібно налаштовувати з урахуванням деталей наведених тут." #: plinth/modules/coturn/__init__.py:62 msgid "Coturn" -msgstr "" +msgstr "Coturn" #: plinth/modules/coturn/__init__.py:63 msgid "VoIP Helper" -msgstr "" +msgstr "Помічник VoIP" #: plinth/modules/coturn/forms.py:22 msgid "Invalid list of STUN/TURN Server URIs" -msgstr "" +msgstr "Невірний список URI серверів STUN/TURN" #: plinth/modules/coturn/forms.py:30 plinth/modules/mumble/forms.py:21 #: plinth/modules/quassel/forms.py:22 msgid "TLS domain" -msgstr "" +msgstr "TLS-домен" #: plinth/modules/coturn/forms.py:32 plinth/modules/mumble/forms.py:23 #: plinth/modules/quassel/forms.py:24 @@ -1297,16 +1375,20 @@ msgstr "" #: plinth/modules/coturn/templates/coturn.html:15 msgid "Use the following URLs to configure your communication server:" msgstr "" +"Використовуйте наступні URL-адреси для налаштування власних серверів " +"спілкування:" #: plinth/modules/coturn/templates/coturn.html:24 msgid "Use the following shared authentication secret:" -msgstr "" +msgstr "Використовуйте наступний спільний секрет автентифікації:" #: plinth/modules/datetime/__init__.py:26 msgid "" "Network time server is a program that maintains the system time in " "synchronization with servers on the Internet." msgstr "" +"Сервер мережевого часу — це програма, що підтримує системний час " +"синхронізовано зі серверами в Інтернеті." #: plinth/modules/datetime/__init__.py:70 msgid "Date & Time" @@ -1325,6 +1407,8 @@ msgid "" "Set your time zone to get accurate timestamps. This will set the system-wide " "time zone." msgstr "" +"Вкажіть часовий пояс, щоб отримувати точні часові штампи. Це задасть часову " +"зону для всієї системи." #: plinth/modules/datetime/forms.py:30 msgid "-- no time zone set --" @@ -1333,11 +1417,11 @@ msgstr "-- часовий пояс не обрано --" #: plinth/modules/datetime/views.py:45 #, python-brace-format msgid "Error setting time zone: {exception}" -msgstr "" +msgstr "Помилка задавання часового поясу: {exception}" #: plinth/modules/datetime/views.py:48 msgid "Time zone set" -msgstr "" +msgstr "Часовий пояс задано" #: plinth/modules/deluge/__init__.py:27 msgid "Deluge is a BitTorrent client that features a Web UI." @@ -1348,11 +1432,13 @@ msgid "" "The default password is 'deluge', but you should log in and change it " "immediately after enabling this service." msgstr "" +"Типовий пароль – 'deluge', але ви можете ввійти і змінити його відразу після " +"ввімкнення цього сервісу." #: plinth/modules/deluge/__init__.py:47 #: plinth/modules/transmission/__init__.py:50 msgid "Download files using BitTorrent applications" -msgstr "" +msgstr "Завантаження файлів через застосунки BitTorrent" #: plinth/modules/deluge/__init__.py:51 plinth/modules/deluge/manifest.py:6 msgid "Deluge" @@ -1365,7 +1451,7 @@ msgstr "Вебклієнт BitTorrent" #: plinth/modules/deluge/forms.py:20 plinth/modules/transmission/forms.py:21 msgid "Download directory" -msgstr "" +msgstr "Каталог завантаження" #: plinth/modules/deluge/manifest.py:7 msgid "Bittorrent client written in Python/PyGTK" @@ -1376,6 +1462,8 @@ msgid "" "The system diagnostic test will run a number of checks on your system to " "confirm that applications and services are working as expected." msgstr "" +"Тест діагностики системи запускає певну кількість перевірок, щоб упевнитися, " +"що застосунки і сервіси працюють так, як очікується." #: plinth/modules/diagnostics/__init__.py:54 #: plinth/modules/diagnostics/__init__.py:238 @@ -1383,41 +1471,45 @@ msgid "Diagnostics" msgstr "Діагностика" #: plinth/modules/diagnostics/__init__.py:98 +#: plinth/modules/email_server/templates/email_server.html:29 msgid "passed" -msgstr "" +msgstr "пройдено" #: plinth/modules/diagnostics/__init__.py:99 +#: plinth/modules/email_server/templates/email_server.html:27 #: plinth/modules/networks/views.py:49 msgid "failed" -msgstr "" +msgstr "невдало" #: plinth/modules/diagnostics/__init__.py:100 +#: plinth/modules/email_server/templates/email_server.html:25 msgid "error" -msgstr "" +msgstr "помилка" #: plinth/modules/diagnostics/__init__.py:101 msgid "warning" -msgstr "" +msgstr "попередження" #. Translators: This is the unit of computer storage Mebibyte similar to #. Megabyte. #: plinth/modules/diagnostics/__init__.py:204 msgid "MiB" -msgstr "" +msgstr "МіБ" #. Translators: This is the unit of computer storage Gibibyte similar to #. Gigabyte. #: plinth/modules/diagnostics/__init__.py:209 msgid "GiB" -msgstr "" +msgstr "ҐіБ" #: plinth/modules/diagnostics/__init__.py:216 msgid "You should disable some apps to reduce memory usage." msgstr "" +"Ви повинні вимкнути деякі застосунки, щоб зменшити використання памʼяті." #: plinth/modules/diagnostics/__init__.py:221 msgid "You should not install any new apps on this system." -msgstr "" +msgstr "Не слід встановлювати нових застосунків на цій системі." #: plinth/modules/diagnostics/__init__.py:233 #, no-python-format, python-brace-format @@ -1425,19 +1517,21 @@ msgid "" "System is low on memory: {percent_used}% used, {memory_available} " "{memory_available_unit} free. {advice_message}" msgstr "" +"У системі бракує памʼяті: {percent_used}% використано, {memory_available} " +"{memory_available_unit} вільно. {advice_message}" #: plinth/modules/diagnostics/__init__.py:235 msgid "Low Memory" -msgstr "" +msgstr "Мало памʼяті" #: plinth/modules/diagnostics/templates/diagnostics.html:17 #: plinth/modules/diagnostics/templates/diagnostics_button.html:11 msgid "Run Diagnostics" -msgstr "" +msgstr "Запустити діагностику" #: plinth/modules/diagnostics/templates/diagnostics.html:20 msgid "Diagnostics test is currently running" -msgstr "" +msgstr "Тест діагностики вже запущено" #: plinth/modules/diagnostics/templates/diagnostics.html:33 msgid "Results" @@ -1450,6 +1544,9 @@ msgid "" " App: %(app_name)s\n" " " msgstr "" +"\n" +" Застосунок: %(app_name)s\n" +" " #: plinth/modules/diagnostics/templates/diagnostics_app.html:10 msgid "Diagnostic Results" @@ -1474,13 +1571,15 @@ msgstr "Результат" #: plinth/modules/diagnostics/views.py:57 msgid "Diagnostic Test" -msgstr "" +msgstr "Тест діагностики" #: plinth/modules/diaspora/__init__.py:45 msgid "" "diaspora* is a decentralized social network where you can store and control " "your own data." msgstr "" +"diaspora* це децентралізована соціальна мережа, де ви можете зберігати і " +"контролювати свої дані." #: plinth/modules/diaspora/__init__.py:68 #: plinth/modules/diaspora/manifest.py:23 @@ -1489,21 +1588,23 @@ msgstr "diaspora*" #: plinth/modules/diaspora/__init__.py:69 msgid "Federated Social Network" -msgstr "" +msgstr "Федеративна соціальна мережа" #: plinth/modules/diaspora/forms.py:13 msgid "Enable new user registrations" -msgstr "" +msgstr "Дозволити реєстрацію нових користувачів" #: plinth/modules/diaspora/manifest.py:11 msgid "dandelion*" -msgstr "" +msgstr "dandelion*" #: plinth/modules/diaspora/manifest.py:13 msgid "" "It is an unofficial webview based client for the community-run, distributed " "social network diaspora*" msgstr "" +"Це неофіційний вебперегляд на основі клієнта для community-run, розподіленої " +"соціальної мережі diaspora*" #: plinth/modules/diaspora/templates/diaspora-post-setup.html:16 #, python-format @@ -1520,7 +1621,7 @@ msgstr "" #: plinth/modules/snapshot/templates/snapshot.html:12 #: plinth/templates/app.html:46 msgid "Configuration" -msgstr "" +msgstr "Налаштування" #: plinth/modules/diaspora/templates/diaspora-pre-setup.html:43 #: plinth/modules/dynamicdns/templates/dynamicdns_configure.html:25 @@ -1534,11 +1635,11 @@ msgstr "Оновити налаштування" #: plinth/modules/diaspora/views.py:74 msgid "User registrations enabled" -msgstr "" +msgstr "Реєстрацію користувачів дозволено" #: plinth/modules/diaspora/views.py:78 msgid "User registrations disabled" -msgstr "" +msgstr "Реєстрацію користувачів вимкнено" #: plinth/modules/dynamicdns/__init__.py:29 #, python-brace-format @@ -1561,7 +1662,7 @@ msgstr "" #: plinth/modules/dynamicdns/__init__.py:56 msgid "Dynamic DNS Client" -msgstr "" +msgstr "Клієнт динамічної DNS" #: plinth/modules/dynamicdns/__init__.py:66 msgid "Dynamic Domain Name" @@ -1591,6 +1692,8 @@ msgstr "" #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" +"Публічна назва домену, яку ви бажаєте використовувати для входу на ваш " +"{box_name}." #: plinth/modules/dynamicdns/forms.py:45 msgid "Use this option if your provider uses self signed certificates." @@ -1617,35 +1720,35 @@ msgstr "" #: plinth/modules/dynamicdns/forms.py:62 msgid "The username that was used when the account was created." -msgstr "" +msgstr "Імʼя користувача, яке використовуватиметься після створення обліківки." #: plinth/modules/dynamicdns/forms.py:65 msgid "GnuDIP" -msgstr "" +msgstr "GnuDIP" #: plinth/modules/dynamicdns/forms.py:68 msgid "other update URL" -msgstr "" +msgstr "інша URL оновлення" #: plinth/modules/dynamicdns/forms.py:70 msgid "Enable Dynamic DNS" -msgstr "" +msgstr "Дозволити динамічну DNS" #: plinth/modules/dynamicdns/forms.py:73 msgid "Service Type" -msgstr "" +msgstr "Тип сервісу" #: plinth/modules/dynamicdns/forms.py:78 msgid "GnuDIP Server Address" -msgstr "" +msgstr "Адреса сервера GnuDIP" #: plinth/modules/dynamicdns/forms.py:81 msgid "Invalid server name" -msgstr "" +msgstr "Невірна назва сервера" #: plinth/modules/dynamicdns/forms.py:84 msgid "Update URL" -msgstr "" +msgstr "Оновити URL" #: plinth/modules/dynamicdns/forms.py:89 msgid "Accept all SSL certificates" @@ -1653,7 +1756,7 @@ msgstr "Приймати всі SSL-сертифікати" #: plinth/modules/dynamicdns/forms.py:93 msgid "Use HTTP basic authentication" -msgstr "" +msgstr "Використовувати основну автентифікацію HTTP" #: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:212 #: plinth/modules/users/forms.py:69 @@ -1666,27 +1769,27 @@ msgstr "Показати пароль" #: plinth/modules/dynamicdns/forms.py:114 msgid "URL to look up public IP" -msgstr "" +msgstr "URL для пошуку публічної IP" #: plinth/modules/dynamicdns/forms.py:119 msgid "Use IPv6 instead of IPv4" -msgstr "" +msgstr "Використовувати IPv6 замість IPv4" #: plinth/modules/dynamicdns/forms.py:142 msgid "Please provide an update URL or a GnuDIP server address" -msgstr "" +msgstr "Надайте URL оновлення або адресу сервера GnuDIP" #: plinth/modules/dynamicdns/forms.py:147 msgid "Please provide a GnuDIP username" -msgstr "" +msgstr "Надайте імʼя користувача GnuDIP" #: plinth/modules/dynamicdns/forms.py:151 msgid "Please provide a GnuDIP domain name" -msgstr "" +msgstr "Надайте назву домену GnuDIP" #: plinth/modules/dynamicdns/forms.py:156 msgid "Please provide a password" -msgstr "" +msgstr "Надайте пароль" #: plinth/modules/dynamicdns/templates/dynamicdns.html:12 msgid "" @@ -1713,7 +1816,7 @@ msgstr "" #: plinth/modules/dynamicdns/templates/dynamicdns_status.html:9 msgid "NAT type" -msgstr "" +msgstr "Тип NAT" #: plinth/modules/dynamicdns/templates/dynamicdns_status.html:13 msgid "" @@ -1723,7 +1826,7 @@ msgstr "" #: plinth/modules/dynamicdns/templates/dynamicdns_status.html:19 msgid "Direct connection to the Internet." -msgstr "" +msgstr "Пряме підʼєднання до Інтернету." #: plinth/modules/dynamicdns/templates/dynamicdns_status.html:21 #, python-format @@ -1736,7 +1839,7 @@ msgstr "" #: plinth/modules/dynamicdns/templates/dynamicdns_status.html:33 msgid "Last update" -msgstr "" +msgstr "Востаннє оновлено" #: plinth/modules/dynamicdns/views.py:26 plinth/modules/help/__init__.py:53 #: plinth/templates/help-menu.html:46 plinth/templates/help-menu.html:47 @@ -1759,17 +1862,19 @@ msgstr "Стан" #: plinth/modules/dynamicdns/views.py:62 msgid "Configure Dynamic DNS" -msgstr "" +msgstr "Налаштувати динамічну DNS" #: plinth/modules/dynamicdns/views.py:86 msgid "Dynamic DNS Status" -msgstr "" +msgstr "Стан динамічної DNS" #: plinth/modules/ejabberd/__init__.py:38 msgid "" "XMPP is an open and standardized communication protocol. Here you can run " "and configure your XMPP server, called ejabberd." msgstr "" +"XMPP – це відкритий і стандартизований протокол спілкування. Тут ви можете " +"запустити і налаштувати свій XMPP-сервер ejabberd." #: plinth/modules/ejabberd/__init__.py:41 #, python-brace-format @@ -1786,10 +1891,13 @@ msgid "" "ejabberd needs a STUN/TURN server for audio/video calls. Install the Coturn app or configure an external server." msgstr "" +"ejabberd потребує сервера STUN/TURN для звукових/відео дзвінків. Встановіть " +"застосунок Coturn або налаштуйте зовнішній " +"сервер." #: plinth/modules/ejabberd/__init__.py:70 msgid "ejabberd" -msgstr "" +msgstr "ejabberd" #: plinth/modules/ejabberd/__init__.py:71 #: plinth/modules/matrixsynapse/__init__.py:77 @@ -1798,7 +1906,7 @@ msgstr "Сервер чату" #: plinth/modules/ejabberd/forms.py:18 msgid "Enable Message Archive Management" -msgstr "" +msgstr "Дозволити керування архівом повідомлень" #: plinth/modules/ejabberd/forms.py:20 #, python-brace-format @@ -1823,41 +1931,44 @@ msgstr "" #: plinth/modules/ejabberd/forms.py:36 plinth/modules/matrixsynapse/forms.py:31 msgid "STUN/TURN Server URIs" -msgstr "" +msgstr "URI сервера STUN/TURN" #: plinth/modules/ejabberd/forms.py:38 plinth/modules/matrixsynapse/forms.py:33 msgid "List of public URIs of the STUN/TURN server, one on each line." -msgstr "" +msgstr "Перелік публічних URI для сервера STUN/TURN, по одному на кожен рядок." #: plinth/modules/ejabberd/forms.py:42 plinth/modules/matrixsynapse/forms.py:37 msgid "Shared Authentication Secret" -msgstr "" +msgstr "Спільний секрет автентифікації" #: plinth/modules/ejabberd/forms.py:43 plinth/modules/matrixsynapse/forms.py:38 msgid "Shared secret used to compute passwords for the TURN server." msgstr "" +"Спільний секрет використовується для обрахунку паролів для сервера TURN." #: plinth/modules/ejabberd/manifest.py:10 msgid "Conversations" -msgstr "" +msgstr "Розмови" #: plinth/modules/ejabberd/manifest.py:24 msgid "Xabber" -msgstr "" +msgstr "Xabber" #: plinth/modules/ejabberd/manifest.py:26 msgid "" "Open source Jabber (XMPP) client with multi-account support and clean and " "simple interface. " msgstr "" +"Клієнт Jabber (XMPP) з відкритим кодом, підтримкою декількох обліківок та " +"чистим і простим інтерфейсом. " #: plinth/modules/ejabberd/manifest.py:41 msgid "Yaxim" -msgstr "" +msgstr "Yaxim" #: plinth/modules/ejabberd/manifest.py:55 msgid "ChatSecure" -msgstr "" +msgstr "ChatSecure" #: plinth/modules/ejabberd/manifest.py:57 msgid "" @@ -1869,11 +1980,11 @@ msgstr "" #: plinth/modules/ejabberd/manifest.py:72 msgid "Dino" -msgstr "" +msgstr "Dino" #: plinth/modules/ejabberd/manifest.py:84 msgid "Gajim" -msgstr "" +msgstr "Gajim" #: plinth/modules/ejabberd/templates/ejabberd.html:19 #, python-format @@ -1883,6 +1994,282 @@ msgid "" "Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Chat Server" +msgid "Email Server" +msgstr "Сервер чату" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +#, fuzzy +#| msgid "Directory does not exist." +msgid "User does not exist" +msgstr "Каталог не існує." + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "Нема сертифікату" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "Домен" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +#, fuzzy +#| msgid "Mozilla Thunderbird" +msgid "Thunderbird" +msgstr "Mozilla Thunderbird" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "Вимкнені" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "кабель підʼєднано" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete User" +msgid "Delete selected" +msgstr "Видалити користувача" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Створити нову резервну копію" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "Додати" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Оновити" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Тип сервісу" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Path is not a directory." +msgid "You do not have a home directory." +msgstr "Шлях не є каталогом." + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Updated media directory" +msgid "Create home directory" +msgstr "Оновлено каталог медія" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Let's Encrypt" +msgid "Use Let's Encrypt" +msgstr "Let's Encrypt" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Доменну назву задано" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "Стан сертифікату" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Private key of this machine" +msgid "Private key path" +msgstr "Приватний ключ машини" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "Домівка" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "Безпека" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "Домени" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "Дозволити пошкодження" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "Вимкнені" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -1898,17 +2285,17 @@ msgstr "" #: plinth/modules/firewall/components.py:134 #, python-brace-format msgid "Port {name} ({details}) available for internal networks" -msgstr "" +msgstr "Порт {name} ({details}) доступний для внутрішніх мереж" #: plinth/modules/firewall/components.py:142 #, python-brace-format msgid "Port {name} ({details}) available for external networks" -msgstr "" +msgstr "Порт {name} ({details}) доступний для зовнішніх мереж" #: plinth/modules/firewall/components.py:147 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" -msgstr "" +msgstr "Порт {name} ({details}) недоступний для зовнішніх мереж" #: plinth/modules/firewall/templates/firewall.html:21 #, python-format @@ -1927,7 +2314,7 @@ msgstr "Сервіс/Порт" #: plinth/modules/letsencrypt/templates/letsencrypt.html:69 #: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:28 msgid "Enabled" -msgstr "" +msgstr "Дозволено" #: plinth/modules/firewall/templates/firewall.html:57 #: plinth/modules/letsencrypt/templates/letsencrypt.html:71 @@ -1938,19 +2325,19 @@ msgstr "Вимкнені" #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" -msgstr "" +msgstr "Дозволяється" #: plinth/modules/firewall/templates/firewall.html:75 msgid "Permitted (internal only)" -msgstr "" +msgstr "Дозволяється (лише внутрішні)" #: plinth/modules/firewall/templates/firewall.html:78 msgid "Permitted (external only)" -msgstr "" +msgstr "Дозволяється (лише зовнішні)" #: plinth/modules/firewall/templates/firewall.html:81 msgid "Blocked" -msgstr "" +msgstr "Блоковано" #: plinth/modules/firewall/templates/firewall.html:94 msgid "" @@ -1963,7 +2350,7 @@ msgstr "" #: plinth/modules/networks/templates/networks_configuration.html:22 #: plinth/modules/storage/templates/storage.html:93 msgid "Advanced" -msgstr "" +msgstr "Розширені" #: plinth/modules/firewall/templates/firewall.html:104 msgid "" @@ -2029,14 +2416,16 @@ msgid "" "To learn more on how to use Git visit Git tutorial." msgstr "" +"Щоб дізнатися більше як користуватися Git відвідайте навчання Git." #: plinth/modules/gitweb/__init__.py:52 msgid "Read-write access to Git repositories" -msgstr "" +msgstr "Доступ читання-запису до репозиторіїв Git" #: plinth/modules/gitweb/__init__.py:57 plinth/modules/gitweb/manifest.py:10 msgid "Gitweb" -msgstr "" +msgstr "Gitweb" #: plinth/modules/gitweb/__init__.py:58 msgid "Simple Git Hosting" @@ -2053,14 +2442,15 @@ msgstr "Некоректна назва репозиторію." #: plinth/modules/gitweb/forms.py:77 msgid "Name of a new repository or URL to import an existing repository." msgstr "" +"Назва нового репозиторію або URL для імпортування зовнішнього репозиторію." #: plinth/modules/gitweb/forms.py:83 msgid "Description of the repository" -msgstr "" +msgstr "Опис репозиторію" #: plinth/modules/gitweb/forms.py:84 plinth/modules/gitweb/forms.py:88 msgid "Optional, for displaying on Gitweb." -msgstr "" +msgstr "Необовʼязково, для відображення на Gitweb." #: plinth/modules/gitweb/forms.py:86 msgid "Repository's owner name" @@ -2072,11 +2462,11 @@ msgstr "Приватний репозиторій" #: plinth/modules/gitweb/forms.py:92 msgid "Allow only authorized users to access this repository." -msgstr "" +msgstr "Дозволити доступ до цього репозиторію лише авторизованим користувачам." #: plinth/modules/gitweb/forms.py:113 plinth/modules/gitweb/forms.py:155 msgid "A repository with this name already exists." -msgstr "" +msgstr "Репозиторій із цією назвою вже існує." #: plinth/modules/gitweb/forms.py:126 msgid "Name of the repository" @@ -2084,11 +2474,11 @@ msgstr "Назва репозиторію" #: plinth/modules/gitweb/forms.py:130 msgid "An alpha-numeric string that uniquely identifies a repository." -msgstr "" +msgstr "Рядок із букв і чисел, що унікально ідентифікує репозиторій." #: plinth/modules/gitweb/forms.py:134 msgid "Default branch" -msgstr "" +msgstr "Типова гілка" #: plinth/modules/gitweb/forms.py:135 msgid "Gitweb displays this as a default branch." @@ -2573,7 +2963,7 @@ msgstr "" #: plinth/modules/infinoted/__init__.py:26 msgid "infinoted is a server for Gobby, a collaborative text editor." -msgstr "" +msgstr "infinoted — це сервер для Gobby, колективного редактора тексту." #: plinth/modules/infinoted/__init__.py:28 #, python-brace-format @@ -2862,6 +3252,8 @@ msgid "" "Anyone with a link to this wiki can read it. Only users that are logged in " "can make changes to the content." msgstr "" +"Будь-хто, хто має посилання на цю вікі може читати її. Лише користувачі, що " +"ввійшли можуть робити зміни вмісту." #: plinth/modules/mediawiki/__init__.py:59 #: plinth/modules/mediawiki/manifest.py:6 @@ -3174,10 +3566,6 @@ msgstr "Скасувати" msgid "Service" msgstr "Сервіс" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "Домени" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3855,11 +4243,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "Це зʼєднання неактивне." -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "Безпека" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4277,10 +4660,8 @@ msgid "shared connection service failed to start" msgstr "" #: plinth/modules/networks/views.py:76 -#, fuzzy -#| msgid "Configuration updated" msgid "shared connection service failed" -msgstr "Конфігурацію оновлено" +msgstr "помилка сервісу спільного зʼєднання" #: plinth/modules/networks/views.py:78 msgid "device was removed" @@ -4847,6 +5228,11 @@ msgid "" "application is needed. Radicale can be accessed by any user with a " "{box_name} login." msgstr "" +"Radicale – це сервер для CalDAV та CardDAV. Він дозволяє синхронізувати і " +"поширювати дані планування і контактів. Для використання Radicale необхідні " +"підтримувані клієнтські застосунки. До Radicale може мати доступ будь-" +"який користувач з імʼям входу для {box_name}." #: plinth/modules/radicale/__init__.py:34 msgid "" @@ -4867,6 +5253,7 @@ msgstr "Календар й Адресна книга" #: plinth/modules/radicale/forms.py:14 msgid "Only the owner of a calendar/addressbook can view or make changes." msgstr "" +"Лише власник календаря/адресної книжки може переглядати або робити зміни." #: plinth/modules/radicale/forms.py:18 #, python-brace-format @@ -4874,6 +5261,8 @@ msgid "" "Any user with a {box_name} login can view any calendar/addressbook, but only " "the owner can make changes." msgstr "" +"Будь-який користувач з імʼям входу {box_name} може переглядати будь-який " +"календар/адресну книжку, але лише власник може робити зміни." #: plinth/modules/radicale/forms.py:23 #, python-brace-format @@ -4881,6 +5270,8 @@ msgid "" "Any user with a {box_name} login can view or make changes to any calendar/" "addressbook." msgstr "" +"Будь-який користувач з імʼям входу {box_name} може переглядати або робити " +"зміни в будь-якому календарі/адресній книжці." #: plinth/modules/radicale/forms.py:30 msgid "Access rights" @@ -4925,7 +5316,7 @@ msgstr "" #: plinth/modules/radicale/views.py:35 msgid "Access rights configuration updated" -msgstr "Конфіґурацію прав доступу оновлено" +msgstr "Оновлено налаштування прав доступу" #: plinth/modules/roundcube/__init__.py:23 msgid "" @@ -4958,11 +5349,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "Roundcube" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "Клієнт ел. пошти" @@ -5235,8 +5621,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5264,30 +5650,26 @@ msgid "Current Vulnerabilities" msgstr "Поточні вразливості" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "Минулі вразливості" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "Так" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "Ні" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "Не запущено" @@ -6049,10 +6431,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "Додати" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6229,7 +6607,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "Налаштування незмінено" @@ -6310,13 +6688,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Оновити" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "Оновлення" @@ -6528,6 +6899,10 @@ msgid "" "relevant to them in the home page. However, only users of the admin " "group may alter apps or system settings." msgstr "" +"Будь-який користувач може входити через вебінтерфейс {box_name}, щоб " +"подивитися список доречних застосунків на домашній сторінці. Однак, лише " +"користувачі з групи admin можуть змінювати застосунки або системні " +"налаштування." #: plinth/modules/users/__init__.py:64 msgid "Users and Groups" @@ -7076,6 +7451,63 @@ msgstr "Видалити зʼєднання до сервера" msgid "Server deleted." msgstr "Сервер видалено." +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "Адреса" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Вікі та блоґ" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "public access" +msgid "Public access" +msgstr "публічний доступ" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7212,10 +7644,6 @@ msgstr "Функціональність ядра та вебінтерфейс msgid " Home" msgstr " Домівка" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "Домівка" - #: plinth/templates/base.html:115 msgid " Apps" msgstr " Застосунки" @@ -7501,6 +7929,9 @@ msgstr "%(percentage)s%% завершено" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Past Vulnerabilities" +#~ msgstr "Минулі вразливості" + #, fuzzy #~| msgid "Domain Name" #~ msgid "Disk Name" diff --git a/plinth/locale/vi/LC_MESSAGES/django.po b/plinth/locale/vi/LC_MESSAGES/django.po index cc6baee82..6604035c7 100644 --- a/plinth/locale/vi/LC_MESSAGES/django.po +++ b/plinth/locale/vi/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-07-28 08:34+0000\n" "Last-Translator: bruh \n" "Language-Team: Vietnamese Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Domain Name Server" +msgid "Email Server" +msgstr "Máy chủ tên miền" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "Accept all SSL certificates" +msgid "Has a TLS certificate" +msgstr "Chấp nhận tất cả chứng chỉ SSL" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "TLS domain" +msgid "domain" +msgstr "Miền TLS" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "Enable scheduled backups" +msgid "Enable selected" +msgstr "Bật sao lưu được lên lịch" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete files" +msgid "Delete selected" +msgstr "Xoá tệp" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "Tạo một bản sao lưu mới" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "Cập nhật" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "Loại dịch vụ" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create Repository" +msgid "Create home directory" +msgstr "Tạo kho" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "Đã đặt tên miền" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3318,10 +3579,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3989,11 +4246,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5050,11 +5302,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5320,8 +5567,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5349,30 +5596,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -6129,10 +6372,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6309,7 +6548,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6381,13 +6620,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "Cập nhật" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -7135,6 +7367,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7271,10 +7554,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/locale/zh_Hans/LC_MESSAGES/django.po b/plinth/locale/zh_Hans/LC_MESSAGES/django.po index 407ab7c08..1df171d2e 100644 --- a/plinth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/plinth/locale/zh_Hans/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Plinth\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-06-12 02:32+0000\n" "Last-Translator: 池边树下 \n" "Language-Team: Chinese (Simplified) 。你可以在系统的配置中设置你" "的域名。" +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Web Server" +msgid "Email Server" +msgstr "Web 服务器" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +#, fuzzy +#| msgid "Available Domains" +msgid "RoundCube availability" +msgstr "可用域名" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +#, fuzzy +#| msgid "No certificate" +msgid "Has a TLS certificate" +msgstr "没有证书" + +#: plinth/modules/email_server/forms.py:7 +#, fuzzy +#| msgid "Domain" +msgid "domain" +msgstr "域名" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +#, fuzzy +#| msgid "Enable Roundcube" +msgid "Roundcube" +msgstr "启用 Roundcube" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +#, fuzzy +#| msgid "Disabled" +msgid "Disable selected" +msgstr "已禁用" + +#: plinth/modules/email_server/templates/email_alias.html:24 +#, fuzzy +#| msgid "cable is connected" +msgid "Enable selected" +msgstr "线缆已连接" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete Snapshot" +msgid "Delete selected" +msgstr "删除快照" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "创建新备份" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +#, fuzzy +#| msgid "Address" +msgid "Add" +msgstr "地址" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "更新" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Type" +msgid "Service Alert" +msgstr "服务类型" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +#, fuzzy +#| msgid "Download directory" +msgid "You do not have a home directory." +msgstr "下载目录" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create Repository" +msgid "Create home directory" +msgstr "创建存储库" + +#: plinth/modules/email_server/templates/tls_form.html:10 +#, fuzzy +#| msgid "Current status:" +msgid "Keep current settings" +msgstr "当前状态:" + +#: plinth/modules/email_server/templates/tls_form.html:19 +#, fuzzy +#| msgid "Certificates (Let's Encrypt)" +msgid "Use Let's Encrypt" +msgstr "证书(Let's Encrypt)" + +#: plinth/modules/email_server/templates/tls_form.html:24 +#, fuzzy +#| msgid "Domain name set" +msgid "Common name" +msgstr "域名集" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +#, fuzzy +#| msgid "Certificate Status" +msgid "Certificate path" +msgstr "证书状态" + +#: plinth/modules/email_server/templates/tls_form.html:53 +#, fuzzy +#| msgid "Create User" +msgid "Private key path" +msgstr "创建用户" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "主页" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "安全" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "域名" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +#, fuzzy +#| msgid "Enable damage" +msgid "Enabled aliases" +msgstr "启用伤害" + +#: plinth/modules/email_server/views.py:182 +#, fuzzy +#| msgid "Disabled" +msgid "Disabled aliases" +msgstr "已禁用" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3528,10 +3811,6 @@ msgstr "取消" msgid "Service" msgstr "服务" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "域名" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -4230,11 +4509,6 @@ msgstr "IPv6" msgid "This connection is not active." msgstr "此连接未处于激活状态。" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "安全" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -5482,13 +5756,6 @@ msgstr "" "href=\"https://www.google.com/settings/security/lesssecureapps\">https://www." "google.com/settings/security/lesssecureapps)中启用“安全性较低的应用”。" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -#, fuzzy -#| msgid "Enable Roundcube" -msgid "Roundcube" -msgstr "启用 Roundcube" - #: plinth/modules/roundcube/__init__.py:56 #, fuzzy #| msgid "" @@ -5798,8 +6065,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5829,10 +6096,6 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "" #| "Block Sandbox \n" @@ -5842,7 +6105,7 @@ msgstr "" "方块沙盒\n" "(Minetest)" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 #, fuzzy #| msgid "" #| "Block Sandbox \n" @@ -5852,21 +6115,21 @@ msgstr "" "方块沙盒\n" "(Minetest)" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 #, fuzzy #| msgid "yes" msgid "Yes" msgstr "是的" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 #, fuzzy #| msgid "is not running" msgid "Not running" @@ -6733,12 +6996,6 @@ msgstr "名称" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -#, fuzzy -#| msgid "Address" -msgid "Add" -msgstr "地址" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6939,7 +7196,7 @@ msgstr "SOCKS" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "Tor SOCKS 端口是你 %(box_name)s 上的 TCP 端口 9050 。" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "设置未改变" @@ -7032,13 +7289,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "更新" - #: plinth/modules/upgrades/__init__.py:122 #, fuzzy #| msgid "Update" @@ -7932,6 +8182,63 @@ msgstr "删除连接" msgid "Server deleted." msgstr "{name} 已删除。" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +#, fuzzy +#| msgid "Address" +msgid "WordPress" +msgstr "地址" + +#: plinth/modules/wordpress/__init__.py:70 +#, fuzzy +#| msgid "Wiki and Blog" +msgid "Website and Blog" +msgstr "Wiki 和博客" + +#: plinth/modules/wordpress/forms.py:14 +#, fuzzy +#| msgid "Publish Key" +msgid "Public access" +msgstr "发布密钥" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -8089,10 +8396,6 @@ msgstr "Plinth %(box_name)s 管理界面" msgid " Home" msgstr "主页" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "主页" - #: plinth/templates/base.html:115 #, fuzzy #| msgid "Apps" @@ -8928,9 +9231,6 @@ msgstr "古吉拉特语" #~ msgid "Web Server over Secure Socket Layer" #~ msgstr "Web 服务器安全套接字层" -#~ msgid "Current status:" -#~ msgstr "当前状态:" - #~ msgid "Delete Wiki or Blog" #~ msgstr "删除 wiki 页面或博客" diff --git a/plinth/locale/zh_Hant/LC_MESSAGES/django.po b/plinth/locale/zh_Hant/LC_MESSAGES/django.po index 9d505e81e..55f1f3ffc 100644 --- a/plinth/locale/zh_Hant/LC_MESSAGES/django.po +++ b/plinth/locale/zh_Hant/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-16 18:38-0400\n" +"POT-Creation-Date: 2021-08-30 19:29-0400\n" "PO-Revision-Date: 2021-04-27 13:32+0000\n" "Last-Translator: James Pan \n" "Language-Team: Chinese (Traditional) Configure page." msgstr "" +#: plinth/modules/email_server/__init__.py:49 +#, fuzzy +#| msgid "Domain Name Server" +msgid "Email Server" +msgstr "域名服務器 DNS" + +#: plinth/modules/email_server/__init__.py:81 +msgid "Powered by Postfix, Dovecot & Rspamd" +msgstr "" + +#: plinth/modules/email_server/aliases/__init__.py:66 +#: plinth/modules/email_server/aliases/__init__.py:73 +msgid "The alias was taken" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:13 +msgid "Must be at least 2 characters long" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:15 +msgid "Contains illegal characters" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:17 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: plinth/modules/email_server/aliases/models.py:19 +msgid "Cannot be a number" +msgstr "" + +#: plinth/modules/email_server/audit/home.py:23 +#: plinth/modules/email_server/audit/home.py:32 +msgid "User does not exist" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:66 +msgid "Postfix-Dovecot SASL integration" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:67 +msgid "Postfix alias maps" +msgstr "" + +#: plinth/modules/email_server/audit/ldap.py:68 +msgid "Postfix local recipient maps" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:31 +msgid "RoundCube availability" +msgstr "" + +#: plinth/modules/email_server/audit/rcube.py:32 +msgid "RoundCube configured for FreedomBox email" +msgstr "" + +#: plinth/modules/email_server/audit/spam.py:86 +msgid "Inbound and outbound mail filters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:80 +msgid "Postfix TLS parameters" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:81 +msgid "Postfix uses a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/audit/tls.py:90 +msgid "Has a TLS certificate" +msgstr "" + +#: plinth/modules/email_server/forms.py:7 +msgid "domain" +msgstr "" + +#: plinth/modules/email_server/forms.py:14 +msgid "New alias (without @domain)" +msgstr "" + +#: plinth/modules/email_server/manifest.py:6 +#: plinth/modules/roundcube/__init__.py:55 +#: plinth/modules/roundcube/manifest.py:6 +msgid "Roundcube" +msgstr "" + +#: plinth/modules/email_server/manifest.py:12 +msgid "Thunderbird" +msgstr "" + +#: plinth/modules/email_server/manifest.py:27 +msgid "K-9 Mail" +msgstr "" + +#: plinth/modules/email_server/manifest.py:40 +msgid "FairEmail" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:12 +msgid "You have no email aliases." +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:21 +msgid "Disable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:24 +msgid "Enable selected" +msgstr "" + +#: plinth/modules/email_server/templates/email_alias.html:27 +#, fuzzy +#| msgid "Delete files" +msgid "Delete selected" +msgstr "刪除檔案" + +#: plinth/modules/email_server/templates/email_alias.html:31 +#, fuzzy +#| msgid "Create a new backup" +msgid "Create a new email alias" +msgstr "建立一個新的備份檔" + +#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 +msgid "Add" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:19 +msgid "New value" +msgstr "" + +#: plinth/modules/email_server/templates/email_domains.html:31 +#: plinth/modules/email_server/templates/email_security.html:23 +#: plinth/modules/upgrades/__init__.py:77 +#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 +#: plinth/modules/upgrades/templates/update-firstboot.html:11 +#: plinth/templates/setup.html:62 +msgid "Update" +msgstr "" + +#: plinth/modules/email_server/templates/email_form_base.html:12 +msgid "There was a problem with your request. Please try again." +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:13 +msgid "Postfix TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_security.html:18 +msgid "Dovecot TLS" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:14 +msgid "Visit Rspamd administration interface" +msgstr "" + +#: plinth/modules/email_server/templates/email_server.html:18 +#, fuzzy +#| msgid "Service Discovery" +msgid "Service Alert" +msgstr "發現服務" + +#: plinth/modules/email_server/templates/email_server.html:38 +msgid "Repair" +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:15 +msgid "You do not have a home directory." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:17 +msgid "Create one to begin receiving emails." +msgstr "" + +#: plinth/modules/email_server/templates/my_mail.html:22 +#, fuzzy +#| msgid "Create Repository" +msgid "Create home directory" +msgstr "建立儲存庫" + +#: plinth/modules/email_server/templates/tls_form.html:10 +msgid "Keep current settings" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:19 +msgid "Use Let's Encrypt" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:24 +msgid "Common name" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:38 +msgid "Use custom values" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:43 +msgid "Certificate path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:53 +msgid "Private key path" +msgstr "" + +#: plinth/modules/email_server/templates/tls_form.html:67 +msgid "Use system default" +msgstr "" + +#: plinth/modules/email_server/views.py:24 +#: plinth/modules/email_server/views.py:32 plinth/templates/base.html:110 +msgid "Home" +msgstr "" + +#: plinth/modules/email_server/views.py:25 +msgid "My Mail" +msgstr "" + +#: plinth/modules/email_server/views.py:26 +#: plinth/modules/email_server/views.py:33 +msgid "My Aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:27 +#: plinth/modules/networks/templates/connection_show.html:259 +#: plinth/modules/security/__init__.py:45 +msgid "Security" +msgstr "" + +#: plinth/modules/email_server/views.py:28 +#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 +msgid "Domains" +msgstr "" + +#: plinth/modules/email_server/views.py:104 +#, python-brace-format +msgid "Internal error in {0}" +msgstr "" + +#: plinth/modules/email_server/views.py:107 +msgid "Check syslog for more information" +msgstr "" + +#: plinth/modules/email_server/views.py:181 +msgid "Enabled aliases" +msgstr "" + +#: plinth/modules/email_server/views.py:182 +msgid "Disabled aliases" +msgstr "" + #: plinth/modules/firewall/__init__.py:33 #, python-brace-format msgid "" @@ -3144,10 +3397,6 @@ msgstr "" msgid "Service" msgstr "" -#: plinth/modules/monkeysphere/templates/monkeysphere.html:37 -msgid "Domains" -msgstr "" - #: plinth/modules/monkeysphere/templates/monkeysphere.html:38 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:17 msgid "OpenPGP Fingerprint" @@ -3815,11 +4064,6 @@ msgstr "" msgid "This connection is not active." msgstr "" -#: plinth/modules/networks/templates/connection_show.html:259 -#: plinth/modules/security/__init__.py:46 -msgid "Security" -msgstr "" - #: plinth/modules/networks/templates/connection_show.html:264 #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 @@ -4876,11 +5120,6 @@ msgid "" "a>)." msgstr "" -#: plinth/modules/roundcube/__init__.py:55 -#: plinth/modules/roundcube/manifest.py:6 -msgid "Roundcube" -msgstr "" - #: plinth/modules/roundcube/__init__.py:56 msgid "Email Client" msgstr "" @@ -5146,8 +5385,8 @@ msgstr "" #: plinth/modules/security/templates/security_report.html:19 msgid "" -"The following table lists the current reported number, and historical count, " -"of security vulnerabilities for each installed app. More information on the " +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" @@ -5175,30 +5414,26 @@ msgid "Current Vulnerabilities" msgstr "" #: plinth/modules/security/templates/security_report.html:47 -msgid "Past Vulnerabilities" -msgstr "" - -#: plinth/modules/security/templates/security_report.html:48 msgid "Sandboxed" msgstr "" -#: plinth/modules/security/templates/security_report.html:49 +#: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" msgstr "" -#: plinth/modules/security/templates/security_report.html:60 +#: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "" -#: plinth/modules/security/templates/security_report.html:62 +#: plinth/modules/security/templates/security_report.html:60 msgid "Yes" msgstr "" -#: plinth/modules/security/templates/security_report.html:64 +#: plinth/modules/security/templates/security_report.html:62 msgid "No" msgstr "" -#: plinth/modules/security/templates/security_report.html:71 +#: plinth/modules/security/templates/security_report.html:69 msgid "Not running" msgstr "" @@ -5952,10 +6187,6 @@ msgstr "" msgid "Add new introducer" msgstr "" -#: plinth/modules/tahoe/templates/tahoe-post-setup.html:59 -msgid "Add" -msgstr "" - #: plinth/modules/tahoe/templates/tahoe-post-setup.html:64 msgid "Connected introducers" msgstr "" @@ -6132,7 +6363,7 @@ msgstr "" msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050." msgstr "" -#: plinth/modules/tor/views.py:137 plinth/views.py:216 +#: plinth/modules/tor/views.py:137 plinth/views.py:218 msgid "Setting unchanged" msgstr "" @@ -6204,13 +6435,6 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" -#: plinth/modules/upgrades/__init__.py:77 -#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 -#: plinth/modules/upgrades/templates/update-firstboot.html:11 -#: plinth/templates/setup.html:62 -msgid "Update" -msgstr "" - #: plinth/modules/upgrades/__init__.py:122 msgid "Updates" msgstr "" @@ -6958,6 +7182,57 @@ msgstr "" msgid "Server deleted." msgstr "" +#: plinth/modules/wordpress/__init__.py:36 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:42 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:47 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:51 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: plinth/modules/wordpress/__init__.py:69 +#: plinth/modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: plinth/modules/wordpress/__init__.py:70 +msgid "Website and Blog" +msgstr "" + +#: plinth/modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: plinth/modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + #: plinth/modules/zoph/__init__.py:33 #, python-brace-format msgid "" @@ -7094,10 +7369,6 @@ msgstr "" msgid " Home" msgstr "" -#: plinth/templates/base.html:110 -msgid "Home" -msgstr "" - #: plinth/templates/base.html:115 msgid " Apps" msgstr "" diff --git a/plinth/log.py b/plinth/log.py index 0d0a316c4..ddf984321 100644 --- a/plinth/log.py +++ b/plinth/log.py @@ -5,6 +5,8 @@ Setup logging for the application. import importlib import logging +import logging.handlers +import sys import warnings import cherrypy @@ -127,3 +129,24 @@ def get_configuration(): configuration['root']['handlers'].append('journal') return configuration + + +def pipe_to_syslog(level=logging.INFO, to_stderr=True): + """Make the root logger write to syslog and stderr. Useful in actions""" + logger = logging.getLogger() + logger.setLevel(level) + + fmt = '/freedombox/%(name)s[%(process)d]: %(levelname)s: %(message)s' + formatter = logging.Formatter(fmt=fmt) + + # Using syslog in Python: https://stackoverflow.com/q/3968669 + syslog_handler = logging.handlers.SysLogHandler(address='/dev/log') + syslog_handler.setFormatter(formatter) + logger.addHandler(syslog_handler) + + if to_stderr == 'tty' and sys.stdin.isatty(): + to_stderr = True + if to_stderr is True: + stderr_handler = logging.StreamHandler() + stderr_handler.setFormatter(formatter) + logger.addHandler(stderr_handler) diff --git a/plinth/modules/diagnostics/urls.py b/plinth/modules/diagnostics/urls.py index 2c6c692ba..63b843670 100644 --- a/plinth/modules/diagnostics/urls.py +++ b/plinth/modules/diagnostics/urls.py @@ -9,6 +9,6 @@ from . import views urlpatterns = [ url(r'^sys/diagnostics/$', views.index, name='index'), - url(r'^sys/diagnostics/(?P[1-9a-z\-]+)/$', views.diagnose_app, + url(r'^sys/diagnostics/(?P[1-9a-z\-_]+)/$', views.diagnose_app, name='app'), ] diff --git a/plinth/modules/email_server/__init__.py b/plinth/modules/email_server/__init__.py new file mode 100644 index 000000000..305a10bf3 --- /dev/null +++ b/plinth/modules/email_server/__init__.py @@ -0,0 +1,155 @@ +"""FreedomBox email server app""" +# SPDX-License-Identifier: AGPL-3.0-or-later + +import logging + +from django.urls import reverse_lazy +from django.utils.translation import ugettext_lazy as _ + +import plinth.app +import plinth.daemon +import plinth.frontpage +import plinth.menu +from plinth import actions +from plinth.modules.apache.components import Webserver +from plinth.modules.config import get_domainname +from plinth.modules.firewall.components import Firewall +from plinth.modules.letsencrypt.components import LetsEncrypt + +from . import audit +from . import manifest + +version = 1 + +packages = [ + 'postfix-ldap', 'dovecot-pop3d', 'dovecot-imapd', + 'dovecot-ldap', 'dovecot-lmtpd', 'dovecot-managesieved', +] + +packages_bloat = ['rspamd'] + +clamav_packages = ['clamav', 'clamav-daemon'] +clamav_daemons = ['clamav-daemon', 'clamav-freshclam'] + +port_info = { + 'postfix': ('smtp', 25, 'smtps', 465, 'smtp-submission', 587), + 'dovecot': ('imaps', 993, 'pop3s', 995), +} + +managed_services = ['postfix', 'dovecot', 'rspamd'] + +managed_packages = packages + packages_bloat +app = None +logger = logging.getLogger(__name__) + + +class EmailServerApp(plinth.app.App): + """FreedomBox email server app""" + app_id = 'email_server' + app_name = _('Email Server') + + def __init__(self): + """The app's constructor""" + super().__init__() + self._add_ui_components() + self._add_daemons() + self._add_firewall_ports() + + # /rspamd location + webserver = Webserver('webserver-email', # unique id + 'email-server-freedombox', # config file name + urls=['https://{host}/rspamd']) + self.add(webserver) + + # Let's Encrypt event hook + default_domain = get_domainname() + domains = [default_domain] if default_domain else [] + letsencrypt = LetsEncrypt( + 'letsencrypt-email-server', domains=domains, + daemons=['postfix', 'dovecot'], should_copy_certificates=False, + managing_app='email_server') + self.add(letsencrypt) + + if not domains: + logger.warning('Could not fetch the FreedomBox domain name!') + + def _add_ui_components(self): + info = plinth.app.Info( + app_id=self.app_id, + version=version, + name=self.app_name, + short_description=_('Powered by Postfix, Dovecot & Rspamd'), + manual_page='EmailServer', + clients=manifest.clients, + donation_url='https://freedomboxfoundation.org/donate/' + ) + self.add(info) + + menu_item = plinth.menu.Menu( + 'menu_' + self.app_id, # unique id + info.name, # app display name + info.short_description, # app description + 'roundcube', # icon name in `static/theme/icons/` + 'email_server:index', # view name + parent_url_name='apps' + ) + self.add(menu_item) + + shortcut = plinth.frontpage.Shortcut( + 'shortcut_' + self.app_id, + name=info.name, + short_description=info.short_description, + icon='roundcube', + url=reverse_lazy('email_server:my_mail'), + clients=manifest.clients, + login_required=True + ) + self.add(shortcut) + + def _add_daemons(self): + for srvname in managed_services: + # Construct `listen_ports` parameter for the daemon + mixed = port_info.get(srvname, ()) + port_numbers = [v for v in mixed if isinstance(v, int)] + listen = [] + for n in port_numbers: + listen.append((n, 'tcp4')) + listen.append((n, 'tcp6')) + # Add daemon + daemon = plinth.daemon.Daemon('daemon-' + srvname, srvname, + listen_ports=listen) + self.add(daemon) + + def _add_firewall_ports(self): + all_port_names = [] + for mixed in port_info.values(): + port_names = [v for v in mixed if isinstance(v, str)] + all_port_names.extend(port_names) + + firewall = Firewall('firewall-email', self.app_name, + ports=all_port_names, is_external=True) + self.add(firewall) + + def diagnose(self): + """Run diagnostics and return the results""" + results = super().diagnose() + results.extend([r.summarize() for r in audit.domain.get()]) + results.extend([r.summarize() for r in audit.ldap.get()]) + results.extend([r.summarize() for r in audit.spam.get()]) + results.extend([r.summarize() for r in audit.tls.get()]) + results.extend([r.summarize() for r in audit.rcube.get()]) + return results + + +def setup(helper, old_version=None): + """Installs and configures module""" + helper.install(packages) + helper.install(packages_bloat, skip_recommends=True) + helper.call('post', audit.ldap.repair) + helper.call('post', audit.spam.repair) + helper.call('post', audit.tls.repair) + helper.call('post', audit.rcube.repair) + for srvname in managed_services: + actions.superuser_run('service', ['reload', srvname]) + # Final step: expose service daemons to public internet + helper.call('post', app.enable) diff --git a/plinth/modules/email_server/aliases/__init__.py b/plinth/modules/email_server/aliases/__init__.py new file mode 100644 index 000000000..e4811bb17 --- /dev/null +++ b/plinth/modules/email_server/aliases/__init__.py @@ -0,0 +1,151 @@ +"""Manages email aliases""" +# SPDX-License-Identifier: AGPL-3.0-or-later + +import contextlib +import dbm +import logging +import os +import pwd +import sqlite3 + +from django.core.exceptions import ValidationError +from django.utils.translation import ugettext_lazy as _ + +from plinth.modules.email_server import lock +from . import models + +map_db_schema_script = """ +PRAGMA journal_mode=WAL; +BEGIN; +CREATE TABLE IF NOT EXISTS Alias ( + email_name TEXT NOT NULL, + uid_number INTEGER NOT NULL, + status INTEGER NOT NULL, + PRIMARY KEY (email_name) +); +COMMIT; +""" + +mailsrv_dir = '/var/lib/plinth/mailsrv' +hash_db_path = mailsrv_dir + '/aliases' +sqlite_db_path = mailsrv_dir + '/aliases.sqlite3' + +alias_sync_mutex = lock.Mutex('alias-sync') +logger = logging.getLogger(__name__) + + +@contextlib.contextmanager +def db_cursor(): + # Turn ON autocommit mode + con = sqlite3.connect(sqlite_db_path, isolation_level=None) + con.row_factory = sqlite3.Row + try: + cur = con.cursor() + yield cur + finally: + con.close() + + +def get(uid_number): + s = 'SELECT * FROM Alias WHERE uid_number=?' + with db_cursor() as cur: + rows = cur.execute(s, (uid_number,)) + result = [models.Alias(**r) for r in rows] + return result + + +def put(uid_number, email_name): + s = """INSERT INTO Alias(email_name, uid_number, status) + SELECT ?,?,? WHERE NOT EXISTS( + SELECT 1 FROM Alias WHERE email_name=? + )""" + email_name = models.sanitize_email_name(email_name) + # email_name cannot be the same as a user name + try: + pwd.getpwnam(email_name) + raise ValidationError(_('The alias was taken')) + except KeyError: + pass + + with db_cursor() as cur: + cur.execute(s, (email_name, uid_number, 1, email_name)) + if cur.rowcount == 0: + raise ValidationError(_('The alias was taken')) + + schedule_hash_update() + + +def delete(uid_number, alias_list): + s = 'DELETE FROM Alias WHERE uid_number=? AND email_name=?' + for i in range(len(alias_list)): + alias_list[i] = models.sanitize_email_name(alias_list[i]) + + parameter_seq = ((uid_number, a) for a in alias_list) + with db_cursor() as cur: + cur.execute('BEGIN') + cur.executemany(s, parameter_seq) + cur.execute('COMMIT') + schedule_hash_update() + + +def set_enabled(uid_number, alias_list): + return _set_status(uid_number, alias_list, 1) + + +def set_disabled(uid_number, alias_list): + return _set_status(uid_number, alias_list, 0) + + +def _set_status(uid_number, alias_list, status): + s = 'UPDATE Alias SET status=? WHERE uid_number=? AND email_name=?' + for i in range(len(alias_list)): + alias_list[i] = models.sanitize_email_name(alias_list[i]) + + parameter_seq = ((status, uid_number, a) for a in alias_list) + with db_cursor() as cur: + cur.execute('BEGIN') + cur.executemany(s, parameter_seq) + cur.execute('COMMIT') + schedule_hash_update() + + +def schedule_hash_update(): + tmp = hash_db_path + '-tmp' + with alias_sync_mutex.lock_all(), db_cursor() as cur: + all_aliases = cur.execute('SELECT * FROM Alias') + + # Delete the temp file if exists + if os.path.exists(tmp): + os.unlink(tmp) + + # Create new alias db at temp path + db = dbm.ndbm.open(tmp, 'c') + try: + for row in all_aliases: + alias = models.Alias(**row) + key = alias.email_name.encode('ascii') + b'\0' + if alias.enabled: + value = str(alias.uid_number).encode('ascii') + value += b'@localhost\0' + else: + value = b'/dev/null\0' + db[key] = value + finally: + db.close() + + # Atomically replace old alias db, rename(2) + os.rename(tmp + '.db', hash_db_path + '.db') + + +def first_setup(): + _create_db_schema_if_not_exists() + schedule_hash_update() + + +def _create_db_schema_if_not_exists(): + # Create folder + if not os.path.isdir(mailsrv_dir): + os.mkdir(mailsrv_dir) + # Create schema if not exists + with db_cursor() as cur: + cur.executescript(map_db_schema_script) diff --git a/plinth/modules/email_server/aliases/models.py b/plinth/modules/email_server/aliases/models.py new file mode 100644 index 000000000..ac3277fe1 --- /dev/null +++ b/plinth/modules/email_server/aliases/models.py @@ -0,0 +1,31 @@ +import re +from dataclasses import dataclass, field, InitVar + +from django.core.exceptions import ValidationError +from django.utils.translation import ugettext_lazy as _ + +email_positive_pattern = re.compile('^[a-zA-Z0-9-_\\.]+') + + +def sanitize_email_name(email_name): + email_name = email_name.strip().lower() + if len(email_name) < 2: + raise ValidationError(_('Must be at least 2 characters long')) + if not re.match('^[a-z0-9-_\\.]+$', email_name): + raise ValidationError(_('Contains illegal characters')) + if not re.match('^[a-z0-9].*[a-z0-9]$', email_name): + raise ValidationError(_('Must start and end with a-z or 0-9')) + if re.match('^[0-9]+$', email_name): + raise ValidationError(_('Cannot be a number')) + return email_name + + +@dataclass +class Alias: + uid_number: int + email_name: str + enabled: bool = field(init=False) + status: InitVar[int] + + def __post_init__(self, status): + self.enabled = (status != 0) diff --git a/plinth/modules/email_server/audit/__init__.py b/plinth/modules/email_server/audit/__init__.py new file mode 100644 index 000000000..c3e03b90e --- /dev/null +++ b/plinth/modules/email_server/audit/__init__.py @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +Provides diagnosis and repair of email server configuration issues +""" + +from . import domain +from . import home +from . import ldap +from . import models +from . import rcube +from . import spam +from . import tls + +__all__ = ['domain', 'home', 'ldap', 'models', 'rcube', 'spam', 'tls'] diff --git a/plinth/modules/email_server/audit/domain.py b/plinth/modules/email_server/audit/domain.py new file mode 100644 index 000000000..77f1951cb --- /dev/null +++ b/plinth/modules/email_server/audit/domain.py @@ -0,0 +1,186 @@ +"""Configure email domains""" +# SPDX-License-Identifier: AGPL-3.0-or-later + +import io +import json +import os +import re +import select +import subprocess +import sys +import time + +from types import SimpleNamespace + +from django.core.exceptions import ValidationError +from plinth.errors import ActionError +from plinth.actions import superuser_run + +from . import models +from plinth.modules.email_server import interproc, postconf + +EXIT_VALIDATION = 40 + +managed_keys = ['_mailname', 'mydomain', 'myhostname', 'mydestination'] + + +class ClientError(RuntimeError): + pass + + +def get(): + # Stub + return [models.Diagnosis('Email domains')] + + +def repair(): + # Stub + raise RuntimeError() + + +def get_domain_config(): + fields = [] + + # Special keys + mailname = SimpleNamespace(key='_mailname', name='/etc/mailname') + with open('/etc/mailname', 'r') as fd: + mailname.value = fd.readline().strip() + fields.append(mailname) + + # Postconf keys + postconf_keys = [k for k in managed_keys if not k.startswith('_')] + result_dict = postconf.get_many(postconf_keys) + for key, value in result_dict.items(): + field = SimpleNamespace(key=key, value=value, name='$' + key) + fields.append(field) + + return fields + + +def set_keys(raw): + # Serialize the keys we know + config_dict = {k: v for (k, v) in raw.items() if k in managed_keys} + if not config_dict: + raise ClientError('To update a key, specify a new value') + + ipc = b'%s\n' % json.dumps(config_dict).encode('utf8') + if len(ipc) > 4096: + raise ClientError('POST data exceeds max line length') + + try: + superuser_run('email_server', ['-i', 'domain', 'set_keys'], input=ipc) + except ActionError as e: + stdout = e.args[1] + if not stdout.startswith('ClientError:'): + raise RuntimeError('Action script failure') from e + else: + raise ValidationError(stdout) from e + + +def action_set_keys(): + try: + _action_set_keys() + except ClientError as e: + print('ClientError:', end=' ') + print(e.args[0]) + sys.exit(EXIT_VALIDATION) + + +def _action_set_keys(): + line = _stdin_readline() + if not line.startswith('{') or not line.endswith('}\n'): + raise ClientError('Bad stdin data') + + clean_dict = {} + # Input validation + for key, value in json.loads(line).items(): + if key not in managed_keys: + raise ClientError('Key not allowed: %r' % key) + if not isinstance(value, str): + raise ClientError('Bad value type from key: %r' % key) + clean_function = globals()['clean_' + key.lstrip('_')] + clean_dict[key] = clean_function(value) + + # Apply changes (postconf) + postconf_dict = dict(filter(lambda kv: not kv[0].startswith('_'), + clean_dict.items())) + postconf.set_many(postconf_dict) + + # Apply changes (special) + for key, value in clean_dict.items(): + if key.startswith('_'): + set_function = globals()['su_set' + key] + set_function(value) + + # Important: reload postfix after acquiring lock + with postconf.mutex.lock_all(): + # systemctl reload postfix + args = ['systemctl', 'reload', 'postfix'] + completed = subprocess.run(args, capture_output=True) + if completed.returncode != 0: + interproc.log_subprocess(completed) + raise OSError('Could not reload postfix') + + +def clean_mailname(mailname): + mailname = mailname.lower().strip() + if not re.match('^[a-z0-9-\\.]+$', mailname): + raise ClientError('Invalid character in host/domain/mail name') + # XXX: need more verification + return mailname + + +def clean_mydomain(raw): + return clean_mailname(raw) + + +def clean_myhostname(raw): + return clean_mailname(raw) + + +def clean_mydestination(raw): + ascii_code = (ord(c) for c in raw) + valid = all(32 <= a <= 126 for a in ascii_code) + if not valid: + raise ClientError('Bad input for $mydestination') + else: + return raw + + +def su_set_mailname(cleaned): + with interproc.atomically_rewrite('/etc/mailname') as fd: + fd.write(cleaned) + fd.write('\n') + + +def _stdin_readline(): + membuf = io.BytesIO() + bytes_saved = 0 + fd = sys.stdin.buffer + time_started = time.monotonic() + + # Reading stdin with timeout + # https://stackoverflow.com/a/21429655 + os.set_blocking(fd.fileno(), False) + + while bytes_saved < 4096: + rlist, wlist, xlist = select.select([fd], [], [], 1.0) + if fd in rlist: + data = os.read(fd.fileno(), 4096) + membuf.write(data) + bytes_saved += len(data) + if len(data) == 0 or b'\n' in data: # end of file or line + break + if time.monotonic() - time_started > 5: + raise TimeoutError() + + # Read a line + membuf.seek(0) + line = membuf.readline() + if not line.endswith(b'\n'): + raise ClientError('Line was too long') + + try: + return line.decode('utf8') + except ValueError as e: + raise ClientError('UTF-8 decode failed') from e diff --git a/plinth/modules/email_server/audit/home.py b/plinth/modules/email_server/audit/home.py new file mode 100644 index 000000000..6b09a327b --- /dev/null +++ b/plinth/modules/email_server/audit/home.py @@ -0,0 +1,71 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later + +import logging +import os +import pwd +import subprocess + +from django.core.exceptions import ValidationError +from django.utils.translation import ugettext_lazy as _ +from plinth.actions import superuser_run +from plinth.errors import ActionError + +from plinth.modules.email_server import interproc + +logger = logging.getLogger(__name__) + + +def exists_nam(username): + """Returns True if the user's home directory exists""" + try: + passwd = pwd.getpwnam(username) + except KeyError as e: + raise ValidationError(_('User does not exist')) from e + return _exists(passwd) + + +def exists_uid(uid_number): + """Returns True if the user's home directory exists""" + try: + passwd = pwd.getpwuid(uid_number) + except KeyError as e: + raise ValidationError(_('User does not exist')) from e + return _exists(passwd) + + +def _exists(passwd): + return os.path.exists(passwd.pw_dir) + + +def put_nam(username): + """Create a home directory for the user (identified by username)""" + _put('nam', username) + + +def put_uid(uid_number): + """Create a home directory for the user (identified by UID)""" + _put('uid', str(uid_number)) + + +def _put(arg_type, user_info): + try: + args = ['-i', 'home', 'mk', arg_type, user_info] + superuser_run('email_server', args) + except ActionError as e: + raise RuntimeError('Action script failure') from e + + +def action_mk(arg_type, user_info): + if arg_type == 'nam': + passwd = pwd.getpwnam(user_info) + elif arg_type == 'uid': + passwd = pwd.getpwuid(int(user_info)) + else: + raise ValueError('Unknown arg_type') + + args = ['sudo', '-n', '--user=#' + str(passwd.pw_uid)] + args.extend(['/bin/sh', '-c', 'mkdir -p ~']) + completed = subprocess.run(args, capture_output=True) + if completed.returncode != 0: + interproc.log_subprocess(completed) + raise OSError('Could not create home directory') diff --git a/plinth/modules/email_server/audit/ldap.py b/plinth/modules/email_server/audit/ldap.py new file mode 100644 index 000000000..351ceccb7 --- /dev/null +++ b/plinth/modules/email_server/audit/ldap.py @@ -0,0 +1,202 @@ +"""Provides the diagnosis of SASL, mail submission, and user database lookup +configurations""" +# SPDX-License-Identifier: AGPL-3.0-or-later + +import logging + +from django.utils.translation import ugettext_lazy as _ +from plinth import actions + +import plinth.modules.email_server.postconf as postconf +import plinth.modules.email_server.aliases as aliases +from . import models + +default_config = { + 'smtpd_sasl_auth_enable': 'yes', + 'smtpd_sasl_type': 'dovecot', + 'smtpd_sasl_path': 'private/auth', + 'mailbox_transport': 'lmtp:unix:private/dovecot-lmtp', + 'virtual_transport': 'lmtp:unix:private/dovecot-lmtp', + + 'smtpd_relay_restrictions': ','.join([ + 'permit_sasl_authenticated', 'defer_unauth_destination', + ]) +} + +submission_flags = postconf.ServiceFlags( + service='submission', type='inet', private='n', unpriv='-', chroot='y', + wakeup='-', maxproc='-', command_args='smtpd' +) + +default_submission_options = { + 'syslog_name': 'postfix/submission', + 'smtpd_tls_security_level': 'encrypt', + 'smtpd_client_restrictions': 'permit_sasl_authenticated,reject', + 'smtpd_relay_restrictions': 'permit_sasl_authenticated,reject' +} + +smtps_flags = postconf.ServiceFlags( + service='smtps', type='inet', private='n', unpriv='-', chroot='y', + wakeup='-', maxproc='-', command_args='smtpd' +) + +default_smtps_options = { + 'syslog_name': 'postfix/smtps', + 'smtpd_tls_wrappermode': 'yes', + 'smtpd_sasl_auth_enable': 'yes', + 'smtpd_relay_restrictions': 'permit_sasl_authenticated,reject' +} + + +MAILSRV_DIR = '/var/lib/plinth/mailsrv' +ETC_ALIASES = 'hash:/etc/aliases' +BEFORE_ALIASES = 'ldap:/etc/postfix/freedombox-username-to-uid-number.cf' +AFTER_ALIASES = 'hash:' + aliases.hash_db_path + +logger = logging.getLogger(__name__) + + +def get(): + """Compare current values with the default. Generate an audit report + + Recommended endpoint name: + GET /audit/ldap + """ + translation_table = [ + (check_sasl, _('Postfix-Dovecot SASL integration')), + (check_alias_maps, _('Postfix alias maps')), + (check_local_recipient_maps, _('Postfix local recipient maps')), + ] + results = [] + with postconf.mutex.lock_all(): + for check, title in translation_table: + results.append(check(title)) + return results + + +def repair(): + """Tries to repair SASL, mail submission, and user lookup settings + + Recommended endpoint name: + POST /audit/ldap/repair + """ + aliases.first_setup() + actions.superuser_run('email_server', ['-i', 'ldap', 'set_up']) + + +def action_set_up(): + action_set_sasl() + action_set_submission() + action_set_ulookup() + + +def check_sasl(title=''): + diagnosis = models.MainCfDiagnosis(title) + diagnosis.compare(default_config, postconf.get_many_unsafe) + return diagnosis + + +def fix_sasl(diagnosis): + diagnosis.apply_changes(postconf.set_many_unsafe) + + +def action_set_sasl(): + """Handles email_server -i ldap set_sasl""" + with postconf.mutex.lock_all(): + fix_sasl(check_sasl()) + + +def action_set_submission(): + """Handles email_server -i ldap set_submission""" + postconf.set_master_cf_options(service_flags=submission_flags, + options=default_submission_options) + postconf.set_master_cf_options(service_flags=smtps_flags, + options=default_smtps_options) + + +def check_alias_maps(title=''): + """Check the ability to mail to usernames and user aliases""" + diagnosis = models.MainCfDiagnosis(title) + + analysis = models.AliasMapsAnalysis() + analysis.parsed = postconf.parse_maps_by_key_unsafe('alias_maps') + analysis.isystem = list_find(analysis.parsed, ETC_ALIASES) + analysis.ibefore = list_find(analysis.parsed, BEFORE_ALIASES) + analysis.iafter = list_find(analysis.parsed, AFTER_ALIASES) + + if analysis.ibefore == -1 or analysis.iafter == -1: + diagnosis.flag_once('alias_maps', user=analysis) + diagnosis.critical('Required maps not in list') + if analysis.ibefore > analysis.iafter: + diagnosis.flag_once('alias_maps', user=analysis) + diagnosis.critical('Insecure map order') + + return diagnosis + + +def fix_alias_maps(diagnosis): + diagnosis.repair('alias_maps', rearrange_alias_maps) + diagnosis.apply_changes(postconf.set_many_unsafe) + + +def rearrange_alias_maps(analysis): + # Delete *all* references to BEFORE_ALIASES and AFTER_ALIASES + for i in range(len(analysis.parsed)): + if analysis.parsed[i] in (BEFORE_ALIASES, AFTER_ALIASES): + analysis.parsed[i] = '' + # Does hash:/etc/aliases exist in list? + if analysis.isystem >= 0: + # Put the maps around hash:/etc/aliases + val = '%s %s %s' % (BEFORE_ALIASES, ETC_ALIASES, AFTER_ALIASES) + analysis.parsed[analysis.isystem] = val + else: + # To the end + analysis.parsed.append(BEFORE_ALIASES) + analysis.parsed.append(AFTER_ALIASES) + # List -> string + return ' '.join(filter(None, analysis.parsed)) + + +def check_local_recipient_maps(title=''): + diagnosis = models.MainCfDiagnosis(title) + lrcpt_maps = postconf.parse_maps_by_key_unsafe('local_recipient_maps') + list_modified = False + + # Block mails to system users + # local_recipient_maps must not contain proxy:unix:passwd.byname + ipasswd = list_find(lrcpt_maps, 'proxy:unix:passwd.byname') + if ipasswd >= 0: + diagnosis.critical('Mail to system users (/etc/passwd) possible') + # Propose a fix + lrcpt_maps[ipasswd] = '' + list_modified = True + + if list_modified: + fix = ' '.join(filter(None, lrcpt_maps)) + diagnosis.flag('local_recipient_maps', corrected_value=fix) + + return diagnosis + + +def fix_local_recipient_maps(diagnosis): + diagnosis.apply_changes(postconf.set_many_unsafe) + + +def action_set_ulookup(): + """Handles email_server -i ldap set_ulookup""" + with postconf.mutex.lock_all(): + fix_alias_maps(check_alias_maps()) + fix_local_recipient_maps(check_local_recipient_maps()) + + +def list_find(lst, element, start=None, end=None): + if start is None: + start = 0 + if end is None: + end = len(lst) + if start < 0 or end < 0: + return -1 + try: + return lst.index(element, start, end) + except ValueError: + return -1 diff --git a/plinth/modules/email_server/audit/models.py b/plinth/modules/email_server/audit/models.py new file mode 100644 index 000000000..de4b3e77d --- /dev/null +++ b/plinth/modules/email_server/audit/models.py @@ -0,0 +1,220 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +"""Models of the audit module""" + +import dataclasses +import logging +import typing + +logger = logging.getLogger(__name__) + + +class UnresolvedIssueError(AssertionError): + pass + + +class Diagnosis: + """Records a diagnosis: what went wrong and how to fix them""" + + def __init__(self, title='', action=''): + """Class constructor""" + self.title = title + self.action = action + self.critical = [] + self.errors = [] + + def to_json(self): + """Serialize object to JSON""" + return { + 'class': self.__class__.__name__, + 'title': self.title, + 'action': self.action, + 'errors': self.errors, + 'critical': self.critical + } + + @classmethod + def from_json(cls, valid_dict, translate=None): + """Construct a Diagnosis instance from a valid JSON dictionary. + + :type valid_dict: dict + :param valid_dict: a valid dictionary representation + :type translate: str -> Union[str, None] + :param translate: optional; if specified, should be a function that + accepts the title and returns a new title or None. + """ + title = valid_dict['title'] + if translate: + title = translate(title) or title + result = cls(title, action=valid_dict['action']) + result.errors.extend(valid_dict['errors']) + result.critical.extend(valid_dict['critical']) + return result + + def critical(self, message_fmt, *args): + """Append a message to the critical errors list""" + if args: + self.critical.append(message_fmt % args) + else: + self.critical.append(message_fmt) + + def error(self, message_fmt, *args): + """Append a message to the errors list""" + if args: + self.errors.append(message_fmt % args) + else: + self.errors.append(message_fmt) + + def summarize(self, log=True): + """Return a 2-element list for the diagnose function in AppView""" + if log: + self.write_logs() + + if self.critical: + return [self.title, 'error'] + elif self.errors: + return [self.title, 'failed'] + else: + return [self.title, 'passed'] + + @property + def has_failed(self): + """True if the diagnosis has failed or contains an error""" + return (self.critical or self.errors) + + def write_logs(self): + """Log errors and failures""" + logger.debug('Ran audit: %s', self.title) + for message in self.critical: + logger.critical(message) + for message in self.errors: + logger.error(message) + + def sorting_key(self): + """The key function for list.sort""" + return (-len(self.critical), -len(self.errors), self.title) + + +class MainCfDiagnosis(Diagnosis): + """Diagnosis for a set of main.cf configuration keys""" + + def __init__(self, *args, **kwargs): + """Class constructor. See :class:`.Diagnosis` for method signature""" + super().__init__(*args, **kwargs) + self.advice = {} + self.user = {} + + def flag(self, key, corrected_value=None, user=None): + """Flag a problematic key. + + If `corrected_value` is a str, the specified value is assumed to be + correct. + + :type key: str + :param key: main.cf key + :type corrected_value: str or None + :param corrected_value: corrected value + :type user: Any + :param user: customized data (see the :meth:`.repair` method) + :raises ValueError: if the key has been flagged + """ + if key in self.advice: + raise ValueError('Key has been flagged') + else: + self.advice[key] = corrected_value + self.user[key] = user + + def flag_once(self, key, **kwargs): + """Flag a problematic key. If the key has been flagged, do nothing. + + See :meth:`.flag` for the function signature. + """ + if key not in self.advice: + self.flag(key, **kwargs) + + def unresolved_issues(self): + """Return the iterator of all keys that do not have a corrected value. + + :return: an iterator of keys + """ + for key, value in self.advice.items(): + if value is None: + yield key + + def _compare_and_advise(self, current, default): + if len(current) > len(default): + raise ValueError('Sanity check failed: dictionary sizes') + for key, value in default.items(): + if current.get(key, None) != value: + self.flag(key, corrected_value=value) + self.critical('%s must equal %s', key, value) + + def compare(self, expected, getter): + """Check the current Postfix configuration. Flag and correct all keys + that have an unexpected value. + + :type expected: dict[str, str] + :param expected: a dictionary specifying the set of keys to be checked + and their expected values + :type getter: Iterator[str] -> dict[str, str] + :param getter: a function that fetches the current postfix config; it + takes an iterator of strings and returns a str-to-str dictionary. + """ + current = getter(expected.keys()) + self._compare_and_advise(current, expected) + + def repair(self, key, repair_function): + """Repair the key if its value has not been corrected by other means. + + `repair_function` will not be called if the key has had a corrected + value or the key does not need attention. + + In case `repair_function` is called, we will pass in the `user` data + associated with `key`. + + The job of `repair_function` is to return a corrected value. It should + not modify any Postfix configuration in any way. It may read + configuration files, but pending Postconf changes are not visible. + + If `repair_function` could not solve the problem, it may return `None` + as an alternative to raising an exception. Using this feature, you may + implement fallback strategies. + + :type key: str + :param key: the key to be repaired + :type repair_function: Any -> Union[str, None] + :param repair_function: a function that returns the corrected value + for `key` + """ + if key in self.advice and self.advice[key] is None: + self.advice[key] = repair_function(self.user[key]) + + def apply_changes(self, setter): + """Apply changes by calling the `setter` with a dictionary of corrected + keys and values. + + :type setter: dict[str, str] -> None + :param setter: configuration changing function that takes a str-to-str + dictionary. + :raises UnresolvedIssueError: if the diagnosis contains an uncorrected + key + """ + self.assert_resolved() + logger.info('Setting postconf: %r', self.advice) + setter(self.advice) + + def assert_resolved(self): + """Raises an :class:`.UnresolvedIssueError` if the diagnosis report + contains an unresolved issue (i.e. an uncorrected key)""" + if None in self.advice.values(): + raise UnresolvedIssueError('Assertion failed') + + +@dataclasses.dataclass(init=False) +class AliasMapsAnalysis: + parsed = typing.List[str] + ibefore = int + isystem = int + iafter = int + + def __init__(self): + pass diff --git a/plinth/modules/email_server/audit/rcube.py b/plinth/modules/email_server/audit/rcube.py new file mode 100644 index 000000000..426c31e23 --- /dev/null +++ b/plinth/modules/email_server/audit/rcube.py @@ -0,0 +1,90 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later + +import json +import logging +import os + +from django.utils.translation import ugettext_lazy as _ +from plinth import actions + +from . import models +from plinth.modules.email_server.lock import Mutex +from plinth.modules.email_server.modconf import ConfigInjector + + +config_path = '/etc/roundcube/config.inc.php' +boundary_pattern = '//[ ]*--[ ]*(BEGIN|END)[ ]+FREEDOMBOX CONFIG$' +boundary_format = '//-- {} FREEDOMBOX CONFIG' + +rconf_template = """// +// The following section is managed by FreedomBox +// Be careful not to edit +include_once("/etc/roundcube/freedombox_mail.inc.php"); +""" + +logger = logging.getLogger(__name__) +rcube_mutex = Mutex('rcube-config') + + +def get(): + translation = { + 'rc_installed': _('RoundCube availability'), + 'rc_config_header': _('RoundCube configured for FreedomBox email'), + } + + output = actions.superuser_run('email_server', ['-i', 'rcube', 'check']) + results = json.loads(output) + for i in range(0, len(results)): + results[i] = models.Diagnosis.from_json(results[i], translation.get) + + return results + + +def repair(): + actions.superuser_run('email_server', ['-i', 'rcube', 'set_up']) + + +def repair_component(action): + action_to_services = {'set_up': []} + if action not in action_to_services: + return + actions.superuser_run('email_server', ['-i', 'rcube', action]) + return action_to_services[action] + + +def action_check(): + results = _action_check() + for i in range(0, len(results)): + results[i] = results[i].to_json() + print(json.dumps(results)) + + +def _action_check(): + results = [] + if not os.path.exists(config_path): + diagnosis = models.Diagnosis('rc_installed') + diagnosis.error('Config file was missing') + diagnosis.error('Check that RoundCube has been installed') + results.append(diagnosis) + return results + + diagnosis = models.Diagnosis('rc_config_header', action='set_up') + injector = ConfigInjector(boundary_pattern, boundary_format) + if not injector.has_header_line(config_path): + diagnosis.error('FreedomBox header line was missing') + results.append(diagnosis) + return results + + +def action_set_up(): + with rcube_mutex.lock_all(): + _inject_rcube_config() + + +def _inject_rcube_config(): + if not os.path.exists(config_path): + logger.warning('Roundcube has not been installed') + return + logger.info('Opening rcube config file %s', config_path) + injector = ConfigInjector(boundary_pattern, boundary_format) + injector.do_template_string(rconf_template, config_path) diff --git a/plinth/modules/email_server/audit/spam.py b/plinth/modules/email_server/audit/spam.py new file mode 100644 index 000000000..e92808b04 --- /dev/null +++ b/plinth/modules/email_server/audit/spam.py @@ -0,0 +1,145 @@ +"""Configures spam filters and the virus scanner""" +# SPDX-License-Identifier: AGPL-3.0-or-later + +import glob +import logging +import re +import subprocess + +from django.utils.translation import ugettext_lazy as _ +from plinth import actions + +from . import models +from plinth.modules.email_server import interproc, lock, postconf +from plinth.modules.email_server.modconf import ConfigInjector + +milter_config = { + 'milter_mail_macros': 'i ' + ' '.join([ + '{auth_type}', '{auth_authen}', '{auth_author}', + '{client_addr}', '{client_name}', + '{mail_addr}', '{mail_host}', '{mail_mailer}' + ]), + # XXX In postconf this field is a list + 'smtpd_milters': 'inet:127.0.0.1:11332', + # XXX In postconf this field is a list + 'non_smtpd_milters': 'inet:127.0.0.1:11332', + 'milter_header_checks': 'regexp:fbx-managed/pre-queue-milter-headers', + + # Last-resort internal header cleanup at smtp client + 'smtp_header_checks': 'regexp:/etc/postfix/freedombox-internal-cleanup', + # Reserved mail transports + # XXX This field is a list + 'transport_maps': 'regexp:/etc/postfix/freedombox-transport-to', + # XXX This field is a list + 'sender_dependent_default_transport_maps': \ + 'regexp:/etc/postfix/freedombox-transport-from', +} + +# FreedomBox egress filtering + +egress_filter = postconf.ServiceFlags( + service='127.0.0.1:10025', type='inet', private='n', unpriv='-', + chroot='y', wakeup='-', maxproc='-', command_args='smtpd' +) + +egress_filter_options = { + 'syslog_name': 'postfix/fbxout', + 'cleanup_service_name': 'fbxcleanup', + 'content_filter': '', + 'receive_override_options': 'no_unknown_recipient_checks', + 'smtpd_helo_restrictions': '', + 'smtpd_client_restrictions': '', + 'smtpd_relay_restrictions': '', + 'smtpd_recipient_restrictions': 'permit_mynetworks,reject', + 'mynetworks': '127.0.0.0/8,[::1]/128' +} + +egress_filter_cleanup = postconf.ServiceFlags( + service='fbxcleanup', type='unix', private='n', unpriv='-', + chroot='y', wakeup='-', maxproc='0', command_args='cleanup' +) + +egress_filter_cleanup_options = { + 'syslog_name': 'postfix/fbxout', + # "From" domain rewriting + 'sender_canonical_maps': 'regexp:/etc/postfix/freedombox-rewrite-sender', + 'local_header_rewrite_clients': 'static:all', + # "From" domain masquerading + 'masquerade_domains': '$mydomain', + 'masquerade_classes': 'envelope_sender,header_sender', + # Header privacy + 'header_checks': 'regexp:/etc/postfix/freedombox-header-cleanup', + 'nested_header_checks': '' +} + +# Rspamd config + +rspamd_re = re.compile('#[ ]*--[ ]*([A-Z]{3,5})[ ]+FREEDOMBOX CONFIG$') +rspamd_format = '#-- {} FREEDOMBOX CONFIG' + +rspamd_mutex = lock.Mutex('rspamd-config') +logger = logging.getLogger(__name__) + + +def get(): + translation_table = [ + (check_filter, _('Inbound and outbound mail filters')), + ] + results = [] + with postconf.mutex.lock_all(): + for check, title in translation_table: + results.append(check(title)) + return results + + +def repair(): + actions.superuser_run('email_server', ['-i', 'spam', 'set_filter']) + + +def check_filter(title=''): + diagnosis = models.MainCfDiagnosis(title) + diagnosis.compare(milter_config, postconf.get_many_unsafe) + return diagnosis + + +def fix_filter(diagnosis): + diagnosis.apply_changes(postconf.set_many_unsafe) + + +def action_set_filter(): + _compile_sieve() + postconf.set_master_cf_options(egress_filter, egress_filter_options) + postconf.set_master_cf_options(egress_filter_cleanup, + egress_filter_cleanup_options) + + with postconf.mutex.lock_all(): + fix_filter(check_filter()) + + injector = ConfigInjector(rspamd_re, rspamd_format) + with rspamd_mutex.lock_all(): + # XXX Maybe use globbing? + _inject_rspamd_config(injector, 'override', 'options.inc') + _inject_rspamd_config(injector, 'local', 'milter_headers.conf') + + +def _inject_rspamd_config(injector, type, name): + template_path = '/etc/plinth/rspamd-config/%s_%s' % (type, name) + config_path = '/etc/rspamd/%s.d/%s' % (type, name) + + logger.info('Opening Rspamd config file %s', config_path) + injector.do_template_file(template_path, config_path) + + +def _compile_sieve(): + sieve_list = glob.glob('/etc/dovecot/freedombox-sieve-after/*.sieve') + for sieve_file in sieve_list: + _run_sievec(sieve_file) + + +def _run_sievec(sieve_file): + logger.info('Compiling sieve script %s', sieve_file) + args = ['sievec', '--', sieve_file] + completed = subprocess.run(args, capture_output=True) + if completed.returncode != 0: + interproc.log_subprocess(completed) + raise OSError('Sieve compilation failed: ' + sieve_file) diff --git a/plinth/modules/email_server/audit/tls.py b/plinth/modules/email_server/audit/tls.py new file mode 100644 index 000000000..f0746d17b --- /dev/null +++ b/plinth/modules/email_server/audit/tls.py @@ -0,0 +1,204 @@ +"""TLS configuration""" +# SPDX-License-Identifier: AGPL-3.0-or-later + +import json +import logging +import os +import sys + +from django.utils.translation import ugettext_lazy as _ +from plinth import actions + +from . import models +from plinth.modules.email_server import interproc, postconf + +# Mozilla Guideline v5.6, Postfix 1.17.7, OpenSSL 1.1.1d, intermediate +# Generated 2021-08 +# https://ssl-config.mozilla.org/ +tls_medium_cipherlist = [ + 'ECDHE-ECDSA-AES128-GCM-SHA256', 'ECDHE-RSA-AES128-GCM-SHA256', + 'ECDHE-ECDSA-AES256-GCM-SHA384', 'ECDHE-RSA-AES256-GCM-SHA384', + 'ECDHE-ECDSA-CHACHA20-POLY1305', 'ECDHE-RSA-CHACHA20-POLY1305', + 'DHE-RSA-AES128-GCM-SHA256', 'DHE-RSA-AES256-GCM-SHA384' +] + +postfix_config = { + # Enable TLS + 'smtpd_tls_security_level': 'may', + + # Allow unencrypted auth on port 25, needed by Roundcube + 'smtpd_tls_auth_only': 'no', + + # Debugging information + 'smtpd_tls_received_header': 'yes', + + # Use a strong hashing algorithm + 'smtp_tls_fingerprint_digest': 'sha256', + 'smtpd_tls_fingerprint_digest': 'sha256', + + # Mozilla Intermediate Configuration + 'smtpd_tls_mandatory_protocols': '!SSLv2, !SSLv3, !TLSv1, !TLSv1.1', + 'smtpd_tls_protocols': '!SSLv2, !SSLv3, !TLSv1, !TLSv1.1', + 'smtpd_tls_mandatory_ciphers': 'medium', + 'tls_medium_cipherlist': ':'.join(tls_medium_cipherlist), + 'tls_preempt_cipherlist': 'no', + + # Postfix SMTP client + 'smtp_tls_mandatory_protocols': '!SSLv2, !SSLv3, !TLSv1, !TLSv1.1', + 'smtp_tls_protocols': '!SSLv2, !SSLv3, !TLSv1, !TLSv1.1', + 'smtp_tls_mandatory_ciphers': 'medium', + + # Use DNSSEC to validate TLS certificates + 'smtp_host_lookup': 'dns', + 'smtp_dns_support_level': 'dnssec', + 'smtp_tls_security_level': 'dane', # Opportunistic DANE TLS + + # Maintain 1 cipherlist and keep it the most secure + 'tls_low_cipherlist': '$tls_medium_cipherlist', + 'tls_high_cipherlist': '$tls_medium_cipherlist', +} + +dovecot_cert_config = '/etc/dovecot/conf.d/91-freedombox-ssl.conf' + +dovecot_cert_template = """# This file is managed by FreedomBox +ssl_cert = <{cert} +ssl_key = <{key} +""" + +logger = logging.getLogger(__name__) + + +def get(): + results = [] + _get_regular_results(results) + _get_superuser_results(results) + return results + + +def _get_regular_results(results): + translation_table = [ + (check_tls, _('Postfix TLS parameters')), + (check_postfix_cert_usage, _('Postfix uses a TLS certificate')), + ] + with postconf.mutex.lock_all(): + for check, title in translation_table: + results.append(check(title)) + + +def _get_superuser_results(results): + translation = { + 'cert_availability': _('Has a TLS certificate'), + } + dump = actions.superuser_run('email_server', ['-i', 'tls', 'check']) + for jmap in json.loads(dump): + results.append(models.Diagnosis.from_json(jmap, translation.get)) + + +def repair(): + actions.superuser_run('email_server', ['-i', 'tls', 'set_up']) + + +def repair_component(action): + action_to_services = {'set_cert': ['dovecot', 'postfix']} + if action not in action_to_services: # action not allowed + return + actions.superuser_run('email_server', ['-i', 'tls', action]) + return action_to_services[action] + + +def check_tls(title=''): + diagnosis = models.MainCfDiagnosis(title) + diagnosis.compare(postfix_config, postconf.get_many_unsafe) + return diagnosis + + +def repair_tls(diagnosis): + diagnosis.apply_changes(postconf.set_many_unsafe) + + +def try_set_up_certificates(): + cert_folder = find_cert_folder() + if not cert_folder: + logger.warning('Could not find a suitable TLS certificate') + return + logger.info('Using TLS certificate in %s', cert_folder) + + cert = cert_folder + '/cert.pem' + key = cert_folder + '/privkey.pem' + write_postfix_cert_config(cert, key) + write_dovecot_cert_config(cert, key) + + +def find_cert_folder() -> str: + directory = '/etc/letsencrypt/live' + domains_available = [] + try: + listdir_result = os.listdir(directory) + except OSError: + return '' + + for item in listdir_result: + if item[0] != '.' and os.path.isdir(directory + '/' + item): + domains_available.append(item) + domains_available.sort() + + if len(domains_available) == 0: + return '' + if len(domains_available) == 1: + return directory + '/' + domains_available[0] + # XXX Cannot handle the case with multiple domains + if len(domains_available) > 1: + return '' + + +def write_postfix_cert_config(cert, key): + postconf.set_many_unsafe({ + 'smtpd_tls_cert_file': cert, + 'smtpd_tls_key_file': key + }) + + +def write_dovecot_cert_config(cert, key): + content = dovecot_cert_template.format(cert=cert, key=key) + with interproc.atomically_rewrite(dovecot_cert_config) as fd: + fd.write(content) + + +def check_postfix_cert_usage(title=''): + prefix = '/etc/letsencrypt/live/' + diagnosis = models.Diagnosis(title, action='set_cert') + conf = postconf.get_many_unsafe(['smtpd_tls_cert_file', + 'smtpd_tls_key_file']) + if not conf['smtpd_tls_cert_file'].startswith(prefix): + diagnosis.error("Cert file not in Let's Encrypt directory") + if not conf['smtpd_tls_key_file'].startswith(prefix): + diagnosis.error("Privkey file not in Let's Encrypt directory") + + return diagnosis + + +def su_check_cert_availability(title=''): + diagnosis = models.Diagnosis(title) + if find_cert_folder() == '': + diagnosis.error("Could not find a Let's Encrypt certificate") + return diagnosis + + +def action_set_up(): + with postconf.mutex.lock_all(): + repair_tls(check_tls()) + try_set_up_certificates() + + +def action_set_cert(): + with postconf.mutex.lock_all(): + try_set_up_certificates() + + +def action_check(): + checks = ('cert_availability',) + results = [] + for check_name in checks: + check_function = globals()['su_check_' + check_name] + results.append(check_function(check_name).to_json()) + json.dump(results, sys.stdout, indent=0) # indent=0 adds a new line diff --git a/plinth/modules/email_server/data/etc/apache2/conf-available/email-server-freedombox.conf b/plinth/modules/email_server/data/etc/apache2/conf-available/email-server-freedombox.conf new file mode 100644 index 000000000..218087e8a --- /dev/null +++ b/plinth/modules/email_server/data/etc/apache2/conf-available/email-server-freedombox.conf @@ -0,0 +1,32 @@ + + Redirect "/rspamd/" + + + + ProxyPass http://127.0.0.1:11334/ + ProxyPassReverse http://127.0.0.1:11334/ + # Modify proxy headers + ProxyAddHeaders off + RequestHeader unset Forwarded + RequestHeader unset Via + RequestHeader unset X-Forwarded-For + RequestHeader unset X-Forwarded-Host + RequestHeader unset X-Forwarded-Proto + RequestHeader unset X-Forwarded-Server + RequestHeader unset X-Real-IP + RequestHeader set X-Forwarded-For "127.0.0.1" + # Modify response headers + Header unset Set-Cookie + # Require SSO + Include includes/freedombox-single-sign-on.conf + + TKTAuthToken "admin" + + + + + + RewriteEngine On + RewriteRule ^ /plinth/apps/email_server/config.xml [PT] + + diff --git a/plinth/modules/email_server/data/etc/apache2/includes/freedombox-robots.conf b/plinth/modules/email_server/data/etc/apache2/includes/freedombox-robots.conf new file mode 100644 index 000000000..87ef3035d --- /dev/null +++ b/plinth/modules/email_server/data/etc/apache2/includes/freedombox-robots.conf @@ -0,0 +1 @@ +Header merge X-Robots-Tag "noindex, nofollow, noarchive, notranslate" diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-auth.conf b/plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-auth.conf new file mode 100644 index 000000000..53f74960f --- /dev/null +++ b/plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-auth.conf @@ -0,0 +1,31 @@ +# Direct edits to this file will be lost! +# Manage your settings on Plinth + +auth_mechanisms = plain login + +passdb { + driver = ldap + args = /etc/dovecot/freedombox-ldap-passdb.conf.ext + # Block the default passdb lookup (pam, 10-auth.conf) + result_failure = return-fail + result_internalfail = return-fail + result_success = return-ok +} + +userdb { + # UID number lookup (10001@example.com) + driver = ldap + args = /etc/dovecot/freedombox-ldap-userdb-uid.conf.ext + result_failure = continue + result_internalfail = return-fail + result_success = return-ok +} + +userdb { + driver = ldap + args = /etc/dovecot/freedombox-ldap-userdb.conf.ext + # Block the default userdb lookup (passwd, 10-auth.conf) + result_failure = return-fail + result_internalfail = return-fail + result_success = return-ok +} diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf b/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf new file mode 100644 index 000000000..0b9c3516f --- /dev/null +++ b/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf @@ -0,0 +1,10 @@ +# Direct edits to this file will be lost! +# Manage your settings on Plinth + +# Privacy: remove the recipient's UID number from email headers +lmtp_add_received_header = no +lmtp_hdr_delivery_address = original + +protocol lmtp { + mail_plugins = $mail_plugins sieve +} diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf b/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf new file mode 100644 index 000000000..d14f70d59 --- /dev/null +++ b/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf @@ -0,0 +1,43 @@ +# Direct edits to this file will be lost! +# Manage your settings on Plinth + +namespace inbox { + mailbox Archive { + auto = subscribe + special_use = \Archive + } + mailbox Drafts { + auto = subscribe + special_use = \Drafts + } + mailbox Junk { + auto = subscribe + autoexpunge = 30d + special_use = \Junk + } + mailbox Trash { + auto = subscribe + autoexpunge = 30d + special_use = \Trash + } + + mailbox INBOX.Junk { + auto = no + autoexpunge = 30d + special_use = \Junk + } + mailbox INBOX.Trash { + auto = no + autoexpunge = 30d + special_use = \Trash + } + + mailbox Sent { + auto = subscribe + special_use = \Sent + } + mailbox "Sent Messages" { + auto = no + special_use = \Sent + } +} diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-master.conf b/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-master.conf new file mode 100644 index 000000000..0b1137be7 --- /dev/null +++ b/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-master.conf @@ -0,0 +1,18 @@ +# Direct edits to this file will be lost! +# Manage your settings on Plinth + +service auth { + unix_listener /var/spool/postfix/private/auth { + mode = 0600 + user = postfix + group = postfix + } +} + +service lmtp { + unix_listener /var/spool/postfix/private/dovecot-lmtp { + mode = 0600 + user = postfix + group = postfix + } +} diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-ssl.conf b/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-ssl.conf new file mode 100644 index 000000000..fa3c5af64 --- /dev/null +++ b/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-ssl.conf @@ -0,0 +1,12 @@ +# Direct edits to this file will be lost! +# Manage your settings on Plinth + +# Mozilla Guideline v5.6, Dovecot 2.3.9, OpenSSL 1.1.1d, intermediate +# Generated 2021-08 +# https://ssl-config.mozilla.org/ +ssl = required + +ssl_min_protocol = TLSv1.2 +ssl_prefer_server_ciphers = no + +ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/95-freedombox-sieve.conf b/plinth/modules/email_server/data/etc/dovecot/conf.d/95-freedombox-sieve.conf new file mode 100644 index 000000000..dc34ba411 --- /dev/null +++ b/plinth/modules/email_server/data/etc/dovecot/conf.d/95-freedombox-sieve.conf @@ -0,0 +1,6 @@ +# Direct edits to this file will be lost! +# Manage your settings on Plinth + +plugin { + sieve_after = /etc/dovecot/freedombox-sieve-after +} diff --git a/plinth/modules/email_server/data/etc/dovecot/freedombox-ldap-passdb.conf.ext b/plinth/modules/email_server/data/etc/dovecot/freedombox-ldap-passdb.conf.ext new file mode 100644 index 000000000..0480c3354 --- /dev/null +++ b/plinth/modules/email_server/data/etc/dovecot/freedombox-ldap-passdb.conf.ext @@ -0,0 +1,8 @@ +# Direct edits to this file will be lost! +# Manage your settings on Plinth + +uris = ldap://127.0.0.1 +base = dc=thisbox + +auth_bind = yes +auth_bind_userdn = uid=%u,ou=users,dc=thisbox diff --git a/plinth/modules/email_server/data/etc/dovecot/freedombox-ldap-userdb-uid.conf.ext b/plinth/modules/email_server/data/etc/dovecot/freedombox-ldap-userdb-uid.conf.ext new file mode 100644 index 000000000..e8a047f22 --- /dev/null +++ b/plinth/modules/email_server/data/etc/dovecot/freedombox-ldap-userdb-uid.conf.ext @@ -0,0 +1,22 @@ +# Direct edits to this file will be lost! +# Manage your settings on Plinth https://localhost/plinth/apps/email_server + +uris = ldap://127.0.0.1 +base = dc=thisbox + +user_attrs = \ + =home=%{ldap:homeDirectory}, \ + =uid=%{ldap:uidNumber}, \ + =gid=%{ldap:gidNumber}, \ + =user=%{ldap:uid}, \ + =mail=maildir:~/Maildir:LAYOUT=index + +# Support user lookup by UID number + +user_filter = \ + (&(objectClass=posixAccount)(!(uidNumber=0))(uidNumber=%n)) + +# doveadm -A + +iterate_attrs = =user=%{ldap:uid} +iterate_filter = (objectClass=posixAccount) diff --git a/plinth/modules/email_server/data/etc/dovecot/freedombox-ldap-userdb.conf.ext b/plinth/modules/email_server/data/etc/dovecot/freedombox-ldap-userdb.conf.ext new file mode 100644 index 000000000..29067ba34 --- /dev/null +++ b/plinth/modules/email_server/data/etc/dovecot/freedombox-ldap-userdb.conf.ext @@ -0,0 +1,20 @@ +# Direct edits to this file will be lost! +# Manage your settings on Plinth + +uris = ldap://127.0.0.1 +base = dc=thisbox + +user_attrs = \ + =home=%{ldap:homeDirectory}, \ + =uid=%{ldap:uidNumber}, \ + =gid=%{ldap:gidNumber}, \ + =mail=maildir:~/Maildir:LAYOUT=index + +# Support user lookup by username + +user_filter = (&(objectClass=posixAccount)(uid=%Ln)(!(uidNumber=0))) + +# For doveadm + +iterate_attrs = =user=%{ldap:uid} +iterate_filter = (objectClass=posixAccount) diff --git a/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/README.txt b/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/README.txt new file mode 100644 index 000000000..17160f2fd --- /dev/null +++ b/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/README.txt @@ -0,0 +1,2 @@ +DO NOT PUT PERSONAL ITEMS HERE! +This folder in its entirety is managed by FreedomBox. diff --git a/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve b/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve new file mode 100644 index 000000000..aebaf100a --- /dev/null +++ b/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve @@ -0,0 +1,8 @@ +require ["fileinto", "mailbox"]; + +if anyof(header :contains "X-Spam" "Yes", + header :contains "X-Spam-Status" "Yes", + header :matches "X-Spam-Flag" "YES") { + fileinto :create "Junk"; + stop; +} diff --git a/plinth/modules/email_server/data/etc/plinth/modules-enabled/email_server b/plinth/modules/email_server/data/etc/plinth/modules-enabled/email_server new file mode 100644 index 000000000..fb87084c0 --- /dev/null +++ b/plinth/modules/email_server/data/etc/plinth/modules-enabled/email_server @@ -0,0 +1 @@ +#plinth.modules.email_server diff --git a/plinth/modules/email_server/data/etc/plinth/rspamd-config/local_milter_headers.conf b/plinth/modules/email_server/data/etc/plinth/rspamd-config/local_milter_headers.conf new file mode 100644 index 000000000..8c24018cf --- /dev/null +++ b/plinth/modules/email_server/data/etc/plinth/rspamd-config/local_milter_headers.conf @@ -0,0 +1,39 @@ +# The following section is managed by FreedomBox +# Be careful not to edit + +use = ["x-fbx-mail-type", "authentication-results", "x-spam-level", + "x-spam-status", "x-spamd-bar", "x-spamd-result"]; + +routines { + authentication-results { + add_smtp_user = false; + } +} + +# Custom headers required by FreedomBox filtering system +custom { +x-fbx-mail-type = < diff --git a/plinth/modules/email_server/data/var/spool/postfix/fbx-managed/README.txt b/plinth/modules/email_server/data/var/spool/postfix/fbx-managed/README.txt new file mode 100644 index 000000000..9ad4efb15 --- /dev/null +++ b/plinth/modules/email_server/data/var/spool/postfix/fbx-managed/README.txt @@ -0,0 +1,5 @@ +DO NOT PUT PERSONAL ITEMS HERE! +This folder in its entirety is managed by FreedomBox. + +/var/spool/postfix/fbx-managed/ contains config files read by chrooted Postfix +services. diff --git a/plinth/modules/email_server/data/var/spool/postfix/fbx-managed/pre-queue-milter-headers b/plinth/modules/email_server/data/var/spool/postfix/fbx-managed/pre-queue-milter-headers new file mode 100644 index 000000000..5bb480860 --- /dev/null +++ b/plinth/modules/email_server/data/var/spool/postfix/fbx-managed/pre-queue-milter-headers @@ -0,0 +1,7 @@ +# -*- mode: conf-space -*- +# This file is managed by FreedomBox. Direct edits will be lost! + +# Outbound +/^X-Fbx-Mail-Type: smtpd-submission;/ FILTER smtp:[127.0.0.1]:10025 +# Inbound +/^X-Fbx-Mail-Type: smtpd-anon;/ IGNORE diff --git a/plinth/modules/email_server/forms.py b/plinth/modules/email_server/forms.py new file mode 100644 index 000000000..9567d1be1 --- /dev/null +++ b/plinth/modules/email_server/forms.py @@ -0,0 +1,15 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +from django import forms +from django.utils.translation import ugettext_lazy as _ + + +class EmailServerForm(forms.Form): + domain = forms.CharField(label=_('domain'), max_length=256) + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + +class AliasCreationForm(forms.Form): + email_name = forms.CharField(label=_('New alias (without @domain)'), + max_length=50) diff --git a/plinth/modules/email_server/interproc.py b/plinth/modules/email_server/interproc.py new file mode 100644 index 000000000..bc1db6b9b --- /dev/null +++ b/plinth/modules/email_server/interproc.py @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later + +import contextlib +import logging +import os +import uuid + +logger = logging.getLogger(__name__) + + +def log_subprocess(result): + logger.critical('Subprocess returned %d', result.returncode) + logger.critical('Stdout: %r', result.stdout) + logger.critical('Stderr: %r', result.stderr) + + +@contextlib.contextmanager +def atomically_rewrite(filepath): + successful = False + tmp = '%s.%s.plinth-tmp' % (filepath, uuid.uuid4().hex) + fd = open(tmp, 'x') + + try: + # Let client write to a temporary file + yield fd + successful = True + finally: + fd.close() + + try: + if successful: + # Invoke rename(2) to atomically replace the original + os.rename(tmp, filepath) + finally: + # Delete temp file + try: + os.unlink(tmp) + except FileNotFoundError: + pass diff --git a/plinth/modules/email_server/lock.py b/plinth/modules/email_server/lock.py new file mode 100644 index 000000000..e3909039c --- /dev/null +++ b/plinth/modules/email_server/lock.py @@ -0,0 +1,106 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +import contextlib +import fcntl +import logging +import os +import pwd +import re +import subprocess +import threading + +from . import interproc + +lock_name_pattern = re.compile('^[0-9a-zA-Z_-]+$') +logger = logging.getLogger(__name__) + + +class RaceCondition(AssertionError): + pass + + +class Mutex: + """File and pthread lock based resource mutex""" + + def __init__(self, lock_name): + if not lock_name_pattern.match(lock_name): + raise ValueError('Bad lock name') + self._lock_path = '/var/lock/plinth-%s.lock' % lock_name + self._thread_mutex = threading.Lock() + + @property + def lock_path(self): + return self._lock_path + + @contextlib.contextmanager + def lock_threads_only(self): + """Acquire the thread lock but not the file lock""" + if not self._thread_mutex.acquire(timeout=5): + raise RuntimeError('Could not acquire thread lock') + try: + yield + finally: + self._thread_mutex.release() + + @contextlib.contextmanager + def lock_all(self): + """Acquire both the thread lock and the file lock""" + with self.lock_threads_only(): + # Set up + fd = self._open_lock_file() + fcntl.lockf(fd, fcntl.LOCK_EX) + # Enter context + try: + yield + finally: + # Clean up + fcntl.lockf(fd, fcntl.LOCK_UN) + fd.close() + + def _open_lock_file(self): + """Attempt to open lock file for R&W. Raises OSError on failure""" + og_ruid, og_euid, og_suid = os.getresuid() + if og_euid == 0 and threading.active_count() > 1: + raise RaceCondition('setuid in a multi-threaded process') + if not os.path.exists(self.lock_path): + self._create_lock_file_as_plinth(og_euid) + + fd = None + try: + if og_euid == 0: + # Temporarily run the current process as plinth + plinth_uid = pwd.getpwnam('plinth').pw_uid + self._checked_setresuid(og_ruid, plinth_uid, 0) + fd = open(self.lock_path, 'w+b') + finally: + # Restore resuid + if og_euid == 0: + self._checked_setresuid(og_ruid, 0, 0) + if og_suid != 0: + self._checked_setresuid(og_ruid, 0, og_suid) + + return fd + + def _create_lock_file_as_plinth(self, your_euid): + # Don't change the current processes umask + # Do create a new process + args = [] + if your_euid == 0: + args.extend(['sudo', '-n', '-u', 'plinth']) + args.extend(['/bin/sh', '-c']) + args.append('umask 177 && > ' + self.lock_path) + + completed = subprocess.run(args, capture_output=True) + if completed.returncode != 0: + interproc.log_subprocess(completed) + raise OSError('Could not create ' + self.lock_path) + + def _checked_setresuid(self, ruid, euid, suid): + os.setresuid(ruid, euid, suid) + if os.getresuid() != (ruid, euid, suid): + try: + raise SystemExit('PANIC: setresuid failed') + except SystemExit as e: + # Print stack trace + logger.exception(e) + # Force exit + exit(1) diff --git a/plinth/modules/email_server/manifest.py b/plinth/modules/email_server/manifest.py new file mode 100644 index 000000000..51e4d8e75 --- /dev/null +++ b/plinth/modules/email_server/manifest.py @@ -0,0 +1,66 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +from django.utils.translation import ugettext_lazy as _ +from plinth.clients import store_url + +clients = [{ + 'name': _('Roundcube'), + 'platforms': [{ + 'type': 'web', + 'url': '/plinth/apps/roundcube' + }] +}, { + 'name': _('Thunderbird'), + 'platforms': [{ + 'type': 'download', + 'os': 'gnu-linux', + 'url': 'https://www.thunderbird.net/en-US/' + }, { + 'type': 'download', + 'os': 'macos', + 'url': 'https://www.thunderbird.net/en-US/' + }, { + 'type': 'download', + 'os': 'windows', + 'url': 'https://www.thunderbird.net/en-US/' + }] +}, { + 'name': _('K-9 Mail'), + 'platforms': [{ + 'type': 'store', + 'os': 'android', + 'store_name': 'f-droid', + 'url': store_url('f-droid', 'com.fsck.k9') + }, { + 'type': 'store', + 'os': 'android', + 'store_name': 'google-play', + 'url': store_url('google-play', 'com.fsck.k9') + }] +}, { + 'name': _('FairEmail'), + 'platforms': [{ + 'type': 'store', + 'os': 'android', + 'store_name': 'f-droid', + 'url': store_url('f-droid', 'eu.faircode.email') + }, { + 'type': 'store', + 'os': 'android', + 'store_name': 'google-play', + 'url': store_url('google-play', 'eu.faircode.email') + }] +}] + +backup = { + 'data': { + 'directories': [ + '/var/lib/plinth/mailsrv', + '/var/spool/postfix/fbx-managed', + '/etc/postfix', + '/etc/dovecot', + '/etc/rspamd', + '/var/lib/rspamd', + ] + }, + 'services': ['postfix', 'dovecot', 'rspamd'] +} diff --git a/plinth/modules/email_server/modconf.py b/plinth/modules/email_server/modconf.py new file mode 100644 index 000000000..d78f9b194 --- /dev/null +++ b/plinth/modules/email_server/modconf.py @@ -0,0 +1,78 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +"""Generic config modifying utilities""" + +import contextlib +import io +import re + +from . import interproc + + +class ConfigInjector: + def __init__(self, match, generate): + self.re_pattern = re.compile(match) + self.boundary_fmt = generate + '\n' + + def do_file_des(self, template, config, scratch): + """Write modified config to the `scratch` stream""" + if not isinstance(template, io.TextIOBase): + raise TypeError('Not a text IO stream: template') + self._inject_config3(template, config, scratch) + + def _inject_config3(self, template, config, scratch): + # Copy the original config up to header line + for line in config: + match = self.re_pattern.match(line.strip()) + if match and match.group(1) == 'BEGIN': + break + scratch.write(line) + if not line.endswith('\n'): # in case no new line was at the eof + scratch.write('\n') + + # Write header line + scratch.write(self.boundary_fmt.format('BEGIN')) + # Write template to scratch + for line in template: + scratch.write(line) + # in case no new line was at the eof + if not line.endswith('\n'): + scratch.write('\n') + # Write footer line + scratch.write(self.boundary_fmt.format('END')) + + # Find the trailer line in config + for line in config: + match = self.re_pattern.match(line.strip()) + if match and match.group(1) == 'END': + break + + # Copy the original + for line in config: + scratch.write(line) # keep original file ending style + + def do_template_file(self, template_path, config_path): + with open(template_path, 'r') as template: + with self._open_config(config_path) as (config, scratch): + self._inject_config3(template, config, scratch) + + def do_template_string(self, template_string, config_path): + with self._open_config(config_path) as (config, scratch): + self._inject_config3([template_string], config, scratch) + + @contextlib.contextmanager + def _open_config(self, config_path): + with open(config_path, 'a+') as config: + with interproc.atomically_rewrite(config_path) as scratch: + config.seek(0) + yield config, scratch + + def has_header_line(self, config_path): + with open(config_path, 'r') as config_fd: + return self._has_header_line(config_fd) + + def _has_header_line(self, config_fd): + for line in config_fd: + match = self.re_pattern.match(line.strip()) + if match and match.group(1) == 'BEGIN': + return True + return False diff --git a/plinth/modules/email_server/postconf.py b/plinth/modules/email_server/postconf.py new file mode 100644 index 000000000..cba3a007b --- /dev/null +++ b/plinth/modules/email_server/postconf.py @@ -0,0 +1,180 @@ +"""Postconf wrapper providing thread-safe operations""" +# SPDX-License-Identifier: AGPL-3.0-or-later + +import logging +import re +import subprocess +from dataclasses import dataclass +from typing import ClassVar + +from . import interproc +from .lock import Mutex + +logger = logging.getLogger(__name__) +mutex = Mutex('email-postconf') + + +@dataclass +class ServiceFlags: + service: str + type: str + private: str + unpriv: str + chroot: str + wakeup: str + maxproc: str + command_args: str + + crash_handler: ClassVar[str] = '/dev/null/plinth-crash' + + def _get_flags_ordered(self): + return [self.service, self.type, self.private, self.unpriv, + self.chroot, self.wakeup, self.maxproc, self.command_args] + + def serialize(self) -> str: + ordered = self._get_flags_ordered() + return ' '.join(ordered) + + def serialize_temp(self) -> str: + ordered = self._get_flags_ordered() + ordered[-1] = self.crash_handler + return ' '.join(ordered) + + def try_remove_crash_handler(self, line) -> str: + pattern = re.compile('([^ \\t]+)[ \\t]+([a-z]+)[ \\t]+') + match = pattern.match(line) + if match is None: + return None + if match.group(1) != self.service or match.group(2) != self.type: + return None + if not line.rstrip().endswith(self.crash_handler): + return None + return line.replace(self.crash_handler, self.command_args) + + +def get_many(key_list): + """Acquire resource lock. Get the list of postconf values as specified. + Return a key-value map""" + for key in key_list: + validate_key(key) + with mutex.lock_all(): + return get_many_unsafe(key_list) + + +def get_many_unsafe(key_iterator): + result = {} + for key in key_iterator: + result[key] = get_unsafe(key) + return result + + +def set_many(kv_map): + """Acquire resource lock. Set the list of postconf values as specified""" + for key, value in kv_map.items(): + validate_key(key) + validate_value(value) + + with mutex.lock_all(): + set_many_unsafe(kv_map) + + +def set_many_unsafe(kv_map, flag=''): + args = ['/sbin/postconf'] + + if not kv_map: + return + if flag: + args.append(flag) + for key, value in kv_map.items(): + args.append('{}={}'.format(key, value)) + _run(args) + + +def set_master_cf_options(service_flags, options={}): + """Acquire resource lock. Set master.cf service options""" + if not isinstance(service_flags, ServiceFlags): + raise TypeError('service_flags') + for key, value in options.items(): + validate_key(key) + validate_value(value) + + service_key = service_flags.service + '/' + service_flags.type + long_opts = {service_key + '/' + k: v for (k, v) in options.items()} + + logger.info('Setting %s service: %r', service_flags.service, options) + + # Crash resistant config setting: + # /sbin/postconf -M "service/type=" + # /sbin/postconf -P "service/type/k=v" ... + # Delete placeholder string /dev/null/plinth-crash + with mutex.lock_all(): + set_unsafe(service_key, service_flags.serialize_temp(), '-M') + set_many_unsafe(long_opts, '-P') + _master_remove_crash_handler(service_flags) + + +def get_unsafe(key): + """Get postconf value (no locking, no sanitization)""" + result = _run(['/sbin/postconf', key]) + match = key + ' =' + if not result.startswith(match): + raise KeyError(key) + return result[len(match):].strip() + + +def set_unsafe(key, value, flag=''): + """Set postconf value (assuming root, no locking, no sanitization)""" + if flag: + _run(['/sbin/postconf', flag, '{}={}'.format(key, value)]) + else: + _run(['/sbin/postconf', '{}={}'.format(key, value)]) + + +def parse_maps(raw_value): + if '{' in raw_value or '}' in raw_value: + raise ValueError('Unsupported map list format') + + value_list = [] + for segment in raw_value.split(','): + for sub_segment in segment.strip().split(' '): + sub_segment = sub_segment.strip() + if sub_segment: + value_list.append(sub_segment) + return value_list + + +def parse_maps_by_key_unsafe(key): + return parse_maps(get_unsafe(key)) + + +def _run(args): + """Run process. Capture and return standard output as a string. Raise a + RuntimeError on non-zero exit codes""" + try: + result = subprocess.run(args, check=True, capture_output=True) + return result.stdout.decode('utf-8') + except subprocess.SubprocessError as subprocess_error: + raise RuntimeError('Subprocess failed') from subprocess_error + except UnicodeDecodeError as unicode_error: + raise RuntimeError('Unicode decoding failed') from unicode_error + + +def _master_remove_crash_handler(service_flags): + with interproc.atomically_rewrite('/etc/postfix/master.cf') as writer: + with open('/etc/postfix/master.cf') as reader: + for line in reader: + cleaned = service_flags.try_remove_crash_handler(line) + writer.write(line if cleaned is None else cleaned) + + +def validate_key(key): + """Validate postconf key format. Raises ValueError""" + if not re.match('^[a-zA-Z][a-zA-Z0-9_]*$', key): + raise ValueError('Invalid postconf key format') + + +def validate_value(value): + """Validate postconf value format. Raises ValueError""" + for c in value: + if ord(c) < 32: + raise ValueError('Value contains control characters') diff --git a/plinth/modules/email_server/templates/email_alias.html b/plinth/modules/email_server/templates/email_alias.html new file mode 100644 index 000000000..fab376a96 --- /dev/null +++ b/plinth/modules/email_server/templates/email_alias.html @@ -0,0 +1,41 @@ +{# SPDX-License-Identifier: AGPL-3.0-or-later #} +{% extends "email_form_base.html" %} + +{% load bootstrap %} +{% load i18n %} + +{% block content %} + + {{ block.super }} + + {% if no_alias %} +

{% trans "You have no email aliases." %}

+ {% else %} +
+ {% csrf_token %} + {{ alias_boxes|safe }} + + + + + + + + +
+ {% endif %} + +

{% trans "Create a new email alias" %}

+ +
+ {% csrf_token %} + {{ form|bootstrap }} + + +
+ +{% endblock %} diff --git a/plinth/modules/email_server/templates/email_autoconfig.xml b/plinth/modules/email_server/templates/email_autoconfig.xml new file mode 100644 index 000000000..4573d5339 --- /dev/null +++ b/plinth/modules/email_server/templates/email_autoconfig.xml @@ -0,0 +1,22 @@ + + + + {{ host }} + FreedomBox Mail + FBXMail + + {{ host }} + 993 + SSL + %EMAILLOCALPART% + password-cleartext + + + {{ host }} + 465 + SSL + %EMAILLOCALPART% + password-cleartext + + + diff --git a/plinth/modules/email_server/templates/email_domains.html b/plinth/modules/email_server/templates/email_domains.html new file mode 100644 index 000000000..5a588b658 --- /dev/null +++ b/plinth/modules/email_server/templates/email_domains.html @@ -0,0 +1,35 @@ +{# SPDX-License-Identifier: AGPL-3.0-or-later #} +{% extends "email_form_base.html" %} +{% load bootstrap %} +{% load i18n %} + +{% block content %} + + {{ block.super }} + +
+ + {% for data in fields %} +
+
+ {{ data.name }} = {{ data.value }} +
+
+ +
+ +
+
+
+ {% endfor %} + + {% csrf_token %} + +
+ + +{% endblock %} diff --git a/plinth/modules/email_server/templates/email_form_base.html b/plinth/modules/email_server/templates/email_form_base.html new file mode 100644 index 000000000..390c0936b --- /dev/null +++ b/plinth/modules/email_server/templates/email_form_base.html @@ -0,0 +1,19 @@ +{# SPDX-License-Identifier: AGPL-3.0-or-later #} +{% extends "base.html" %} + +{% load i18n %} + +{% block content %} + {{ tabs|safe }} + {{ block.super }} + {% if error %} + + {% endif %} +{% endblock %} diff --git a/plinth/modules/email_server/templates/email_security.html b/plinth/modules/email_server/templates/email_security.html new file mode 100644 index 000000000..0a65916f2 --- /dev/null +++ b/plinth/modules/email_server/templates/email_security.html @@ -0,0 +1,27 @@ +{# SPDX-License-Identifier: AGPL-3.0-or-later #} +{% extends "email_form_base.html" %} + +{% load i18n %} + +{% block content %} + + {{ block.super }} + +
+ {% csrf_token %} +
+ {% trans "Postfix TLS" %} + {% include "tls_form.html" with prefix="postfix" proto="smtp" %} +
+ +
+ {% trans "Dovecot TLS" %} + {% include "tls_form.html" with prefix="dovecot" proto="imap" %} +
+ + +
+ +{% endblock %} + diff --git a/plinth/modules/email_server/templates/email_server.html b/plinth/modules/email_server/templates/email_server.html new file mode 100644 index 000000000..78c1fd575 --- /dev/null +++ b/plinth/modules/email_server/templates/email_server.html @@ -0,0 +1,57 @@ +{# SPDX-License-Identifier: AGPL-3.0-or-later #} +{% extends "app.html" %} + +{% load i18n %} + +{% block content %} + {{ tabs|safe }} + {{ block.super }} +{% endblock %} + +{% block extra_content %} +

+ + {% trans "Visit Rspamd administration interface" %} + +

+ {% if related_diagnostics %} +

{% trans "Service Alert" %}

+
    + {% for model in related_diagnostics %} +
  • + + {{ model.title }} + {% if model.critical %} + {% trans "error" %} + {% elif model.errors %} + {% trans "failed" %} + {% else %} + {% trans "passed" %} + {% endif %} + + {% if model.has_failed and model.action %} +
    + {% csrf_token %} + +
    + {% endif %} + +
      + {% for message in model.critical %} +
    • {{ message }}
    • + {% endfor %} + {% for message in model.errors %} +
    • {{ message }}
    • + {% endfor %} +
    + +
  • + {% endfor %} +
+ {% endif %} + {{ block.super }} +{% endblock %} diff --git a/plinth/modules/email_server/templates/my_mail.html b/plinth/modules/email_server/templates/my_mail.html new file mode 100644 index 000000000..720ba77fe --- /dev/null +++ b/plinth/modules/email_server/templates/my_mail.html @@ -0,0 +1,32 @@ +{# SPDX-License-Identifier: AGPL-3.0-or-later #} +{% extends "email_form_base.html" %} + +{% load bootstrap %} +{% load i18n %} + +{% block content %} + + {{ block.super }} + + {% if not has_homedir %} +
+ +
+ {% endif %} + +

+ Roundcube login +

+ +{% endblock %} diff --git a/plinth/modules/email_server/templates/tls_form.html b/plinth/modules/email_server/templates/tls_form.html new file mode 100644 index 000000000..544f6e55b --- /dev/null +++ b/plinth/modules/email_server/templates/tls_form.html @@ -0,0 +1,69 @@ +{# SPDX-License-Identifier: AGPL-3.0-or-later #} + +{% load i18n %} + + +
+ + +
+ + +
+ + + +
+ +
+ +
+
+
+ + +
+ + + +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ + +
+ + +
diff --git a/plinth/modules/email_server/tests/__init__.py b/plinth/modules/email_server/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/plinth/modules/email_server/urls.py b/plinth/modules/email_server/urls.py new file mode 100644 index 000000000..5e12fefa1 --- /dev/null +++ b/plinth/modules/email_server/urls.py @@ -0,0 +1,19 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +from django.urls import path +from plinth.utils import non_admin_view +from stronghold.decorators import public +from . import views + + +urlpatterns = [ + path('apps/email_server/', views.EmailServerView.as_view(), name='index'), + path('apps/email_server/security', views.TLSView.as_view()), + path('apps/email_server/domains', views.DomainView.as_view()), + + path('apps/email_server/my_mail', + non_admin_view(views.MyMailView.as_view()), name='my_mail'), + path('apps/email_server/my_aliases', + non_admin_view(views.AliasView.as_view())), + + path('apps/email_server/config.xml', public(views.XmlView.as_view())), +] diff --git a/plinth/modules/email_server/views.py b/plinth/modules/email_server/views.py new file mode 100644 index 000000000..57492845a --- /dev/null +++ b/plinth/modules/email_server/views.py @@ -0,0 +1,316 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +import io +import itertools +import pwd + +import plinth.actions +import plinth.utils + +from django.core.exceptions import ValidationError +from django.http import HttpResponseBadRequest +from django.shortcuts import redirect +from django.utils.html import escape +from django.utils.translation import ugettext_lazy as _ +from django.views.generic.base import TemplateView, View +from plinth.views import AppView, render_tabs + +from . import aliases +from . import audit +from . import forms + + +class TabMixin(View): + admin_tabs = [ + ('', _('Home')), + ('my_mail', _('My Mail')), + ('my_aliases', _('My Aliases')), + ('security', _('Security')), + ('domains', _('Domains')) + ] + + user_tabs = [ + ('my_mail', _('Home')), + ('my_aliases', _('My Aliases')) + ] + + def get_context_data(self, *args, **kwargs): + # Retrieve context data from the next method in the MRO + context = super().get_context_data(*args, **kwargs) + # Populate context with customized data + context['tabs'] = self.render_dynamic_tabs() + return context + + def render_dynamic_tabs(self): + if plinth.utils.is_user_admin(self.request): + return render_tabs(self.request.path, self.admin_tabs) + else: + return render_tabs(self.request.path, self.user_tabs) + + def render_validation_error(self, validation_error, status=400): + context = self.get_context_data() + context['error'] = validation_error + return self.render_to_response(context, status=status) + + def render_exception(self, exception, status=500): + context = self.get_context_data() + context['error'] = [str(exception)] + return self.render_to_response(context, status=status) + + def catch_exceptions(self, function, request): + try: + return function(request) + except ValidationError as validation_error: + return self.render_validation_error(validation_error) + except Exception as error: + return self.render_exception(error) + + def find_button(self, post): + key_filter = (k for k in post.keys() if k.startswith('btn_')) + lst = list(itertools.islice(key_filter, 2)) + if len(lst) != 1: + raise ValidationError('Bad post data') + if not isinstance(lst[0], str): + raise ValidationError('Bad post data') + return lst[0][len('btn_'):] + + def find_form(self, post): + form_name = post.get('form') + for cls in self.form_classes: + if cls.__name__ == form_name: + return cls(post) + raise ValidationError('Form was unspecified') + + +class EmailServerView(TabMixin, AppView): + """Server configuration page""" + app_id = 'email_server' + template_name = 'email_server.html' + audit_modules = ('tls', 'rcube') + + def get_context_data(self, *args, **kwargs): + dlist = [] + for module_name in self.audit_modules: + self._get_audit_results(module_name, dlist) + dlist.sort(key=audit.models.Diagnosis.sorting_key) + + context = super().get_context_data(*args, **kwargs) + context['related_diagnostics'] = dlist + return context + + def _get_audit_results(self, module_name, dlist): + try: + results = getattr(audit, module_name).get() + except Exception as e: + title = _('Internal error in {0}').format('audit.' + module_name) + diagnosis = audit.models.Diagnosis(title) + diagnosis.critical(str(e)) + diagnosis.critical(_('Check syslog for more information')) + results = [diagnosis] + + for diagnosis in results: + if diagnosis.action: + diagnosis.action = '%s.%s' % (module_name, diagnosis.action) + if diagnosis.has_failed: + dlist.append(diagnosis) + + def post(self, request): + repair_field = request.POST.get('repair') + module_name, sep, action_name = repair_field.partition('.') + if not sep or module_name not in self.audit_modules: + return HttpResponseBadRequest('Bad post data') + + self._repair(module_name, action_name) + return redirect(request.path) + + def _repair(self, module_name, action_name): + module = getattr(audit, module_name) + if not hasattr(module, 'repair_component'): + return + + reload_list = [] + try: + reload_list = module.repair_component(action_name) + except Exception: + pass + + for service in reload_list: + # plinth.action_utils.service_reload(service) + plinth.actions.superuser_run('service', ['reload', service]) + + +class MyMailView(TabMixin, TemplateView): + template_name = 'my_mail.html' + + def get_context_data(self, *args, **kwargs): + context = super().get_context_data(*args, **kwargs) + + nam = self.request.user.username + context['has_homedir'] = audit.home.exists_nam(nam) + + return context + + def post(self, request): + return self.catch_exceptions(self._post, request) + + def _post(self, request): + if 'btn_mkhome' not in request.POST: + raise ValidationError('Bad post data') + audit.home.put_nam(request.user.username) + return self.render_to_response(self.get_context_data()) + + +class AliasView(TabMixin, TemplateView): + class Checkboxes: + def __init__(self, post=None, initial=None): + self.models = initial + self.post = post + self.cleaned_data = {} + # HTML rendering + self.sb = io.StringIO() + self.counter = 0 + + def render(self): + if self.models is None: + raise RuntimeError('Uninitialized form') + if self.sb.tell() > 0: + raise RuntimeError('render has been called') + + enabled = [a.email_name for a in self.models if a.enabled] + disabled = [a.email_name for a in self.models if not a.enabled] + + self._render_fieldset(enabled, _('Enabled aliases')) + self._render_fieldset(disabled, _('Disabled aliases')) + + return self.sb.getvalue() + + def _render_fieldset(self, email_names, legend): + if len(email_names) > 0: + self.sb.write('
') + self.sb.write('%s' % escape(legend)) + self._render_boxes(email_names) + self.sb.write('
') + + def _render_boxes(self, email_names): + for email_name in email_names: + input_id = 'cb_alias_%d' % self._count() + value = escape(email_name) + self.sb.write('
') + + self.sb.write('' % (input_id, value)) + + self.sb.write('' % (input_id, value)) + + self.sb.write('
') + + def _count(self): + self.counter += 1 + return self.counter + + def is_valid(self): + lst = list(filter(None, self.post.getlist('alias'))) + if not lst: + return False + else: + self.cleaned_data['alias'] = lst + return True + + template_name = 'email_alias.html' + form_classes = (forms.AliasCreationForm, Checkboxes) + + def get_context_data(self, *args, **kwargs): + context = super().get_context_data(*args, **kwargs) + context['form'] = forms.AliasCreationForm() + + uid = pwd.getpwnam(self.request.user.username).pw_uid + models = aliases.get(uid) + if len(models) > 0: + form = AliasView.Checkboxes(initial=models) + context['alias_boxes'] = form.render() + else: + context['no_alias'] = True + return context + + def post(self, request): + return self.catch_exceptions(self._post, request) + + def _post(self, request): + form = self.find_form(request.POST) + button = self.find_button(request.POST) + if not form.is_valid(): + raise ValidationError('Form invalid') + + if isinstance(form, AliasView.Checkboxes): + if button not in ('delete', 'disable', 'enable'): + raise ValidationError('Bad button') + return self.alias_operation_form_valid(form, button) + + if isinstance(form, forms.AliasCreationForm): + if button != 'add': + raise ValidationError('Bad button') + return self.alias_creation_form_valid(form, button) + + raise RuntimeError('Unknown form') + + def alias_operation_form_valid(self, form, button): + uid = pwd.getpwnam(self.request.user.username).pw_uid + alias_list = form.cleaned_data['alias'] + if button == 'delete': + aliases.delete(uid, alias_list) + elif button == 'disable': + aliases.set_disabled(uid, alias_list) + elif button == 'enable': + aliases.set_enabled(uid, alias_list) + return self.render_to_response(self.get_context_data()) + + def alias_creation_form_valid(self, form, button): + uid = pwd.getpwnam(self.request.user.username).pw_uid + aliases.put(uid, form.cleaned_data['email_name']) + return self.render_to_response(self.get_context_data()) + + +class TLSView(TabMixin, TemplateView): + template_name = 'email_security.html' + + +class DomainView(TabMixin, TemplateView): + template_name = 'email_domains.html' + + def get_context_data(self, *args, **kwargs): + context = super().get_context_data(*args, **kwargs) + fields = audit.domain.get_domain_config() + # If having post data, display the posted values + for field in fields: + field.new_value = self.request.POST.get(field.key, '') + context['fields'] = fields + return context + + def post(self, request): + return self.catch_exceptions(self._post, request) + + def _post(self, request): + changed = {} + # Skip blank fields + for key, value in request.POST.items(): + value = value.strip() + if value: + changed[key] = value + audit.domain.set_keys(changed) + return self.render_to_response(self.get_context_data()) + + +class XmlView(TemplateView): + template_name = 'email_autoconfig.xml' + + def render_to_response(self, *args, **kwargs): + kwargs['content_type'] = 'text/xml; charset=utf-8' + response = super().render_to_response(*args, **kwargs) + response['X-Robots-Tag'] = 'noindex, nofollow, noarchive' + return response + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context['host'] = self.request.get_host() + return context diff --git a/plinth/modules/security/__init__.py b/plinth/modules/security/__init__.py index 2cb859746..b67e0105e 100644 --- a/plinth/modules/security/__init__.py +++ b/plinth/modules/security/__init__.py @@ -7,7 +7,6 @@ import re import subprocess from collections import defaultdict -import requests from django.utils.translation import ugettext_lazy as _ from plinth import actions @@ -109,12 +108,6 @@ def get_apps_report(): (label, package, *_) = line.split() cves[label].add(package) - try: - past_cves = requests.get( - 'https://security-tracker.debian.org/tracker/data/json').json() - except Exception: - past_cves = None - service_exposure_lines = subprocess.check_output( ['systemd-analyze', 'security']).decode().strip().split('\n') service_exposure_lines.pop(0) @@ -130,12 +123,8 @@ def get_apps_report(): 'name': 'freedombox', 'packages': {'freedombox'}, 'vulns': 0, - 'past_vulns': 0 if past_cves else None, } } - if past_cves and 'freedombox' in past_cves: - apps['freedombox']['past_vulns'] = len(past_cves['freedombox']) - for module_name, module in module_loader.loaded_modules.items(): try: packages = module.managed_packages @@ -155,14 +144,9 @@ def get_apps_report(): 'name': module_name, 'packages': set(packages), 'vulns': 0, - 'past_vulns': 0 if past_cves else None, 'sandboxed': None, } - for package in packages: - if past_cves and package in past_cves: - apps[module_name]['past_vulns'] += len(past_cves[package]) - if services: apps[module_name]['sandboxed'] = False for service in services: diff --git a/plinth/modules/security/templates/security_report.html b/plinth/modules/security/templates/security_report.html index 4401c1e48..9869828cf 100644 --- a/plinth/modules/security/templates/security_report.html +++ b/plinth/modules/security/templates/security_report.html @@ -17,11 +17,11 @@

{% blocktrans trimmed %} - The following table lists the current reported number, and historical - count, of security vulnerabilities for each installed app. - More information on the vulnerabilities can be found on the - Debian Security - Bug Tracker. + The following table lists the current reported number of + security vulnerabilities for each installed app. More + information on the vulnerabilities can be found on the + Debian + Security Bug Tracker. {% endblocktrans %}

@@ -44,7 +44,6 @@ {% trans "App Name" %} {% trans "Current Vulnerabilities" %} - {% trans "Past Vulnerabilities" %} {% trans "Sandboxed" %} {% trans "Sandbox Coverage" %} @@ -54,7 +53,6 @@ {{ app.name }} {{ app.vulns }} - {{ app.past_vulns|default_if_none:"❗"}} {% if app.sandboxed is None %} {% trans "N/A" %} diff --git a/plinth/modules/users/tests/test_functional.py b/plinth/modules/users/tests/test_functional.py index bdcbb3117..a8fe4a6c7 100644 --- a/plinth/modules/users/tests/test_functional.py +++ b/plinth/modules/users/tests/test_functional.py @@ -158,7 +158,7 @@ def can_log_in(session_browser, username): parsers.parse( 'I can log in as the user {username:w} with password {password:w}')) def can_log_in_with_password(session_browser, username, password): - functional.visit(session_browser, '/plinth/accounts/logout/') + functional.logout(session_browser) functional.login_with_account(session_browser, functional.base_url, username, password) assert len(session_browser.find_by_id('id_user_menu')) > 0 diff --git a/plinth/modules/wordpress/__init__.py b/plinth/modules/wordpress/__init__.py new file mode 100644 index 000000000..35f64de57 --- /dev/null +++ b/plinth/modules/wordpress/__init__.py @@ -0,0 +1,119 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +FreedomBox app to configure WordPress. +""" + +from django.utils.translation import ugettext_lazy as _ +from plinth import actions +from plinth import app as app_module +from plinth import cfg, frontpage, menu +from plinth.daemon import Daemon +from plinth.modules.apache.components import Webserver +from plinth.modules.backups.components import BackupRestore +from plinth.modules.firewall.components import Firewall +from plinth.utils import format_lazy + +from . import manifest + +PUBLIC_ACCESS_FILE = '/etc/wordpress/is_public' + +version = 1 + +managed_services = ['wordpress-freedombox.timer'] + +# Add php to avoid wordpress package bringing in lib-apache2-mod-php. +# WordPress only supports MySQL/MariaDB as database server. +managed_packages = [ + 'wordpress', + 'php', # Avoid WordPress package bringing in libapache2-mod-php + 'php-imagick', # Optional, for performance + 'php-ssh2', # Optional, to upload plugins/themes using SSH connection + 'php-zip', # Optional, for performance + 'default-mysql-server', # WordPress only supports MySQL/MariaDB as DB +] + +_description = [ + _('WordPress is a popular way to create and manage websites and blogs. ' + 'Content can be managed using a visual interface. Layout and ' + 'functionality of the web pages can be customized. Appearance can be ' + 'chosen using themes. Administration interface and produced web pages ' + 'are suitable for mobile devices.'), + format_lazy( + _('You need to run WordPress setup by visiting the app before making ' + 'the site publicly available below. Setup must be run when ' + 'accessing {box_name} with the correct domain name. Enable ' + 'permalinks in administrator interface for better URLs to your ' + 'pages and posts.'), box_name=_(cfg.box_name)), + _('WordPress has its own user accounts. First administrator account is ' + 'created during setup. Bookmark the admin page to reach administration ' + 'interface in the future.'), + _('After a major version upgrade, you need to manually run database ' + 'upgrade from administrator interface. Additional plugins or themes may ' + 'be installed and upgraded at your own risk.'), +] + +app = None + + +class WordPressApp(app_module.App): + """FreedomBox app for WordPress.""" + + app_id = 'wordpress' + + def __init__(self): + """Create components for the app.""" + super().__init__() + + info = app_module.Info( + app_id=self.app_id, version=version, name=_('WordPress'), + icon_filename='wordpress', short_description=_('Website and Blog'), + description=_description, manual_page='WordPress', + clients=manifest.clients, + donation_url='https://wordpressfoundation.org/donate/') + self.add(info) + + menu_item = menu.Menu('menu-wordpress', info.name, + info.short_description, info.icon_filename, + 'wordpress:index', parent_url_name='apps') + self.add(menu_item) + + shortcut = frontpage.Shortcut('shortcut-wordpress', info.name, + short_description=info.short_description, + icon=info.icon_filename, + url='/wordpress/', clients=info.clients) + self.add(shortcut) + + firewall = Firewall('firewall-wordpress', info.name, + ports=['http', 'https'], is_external=True) + self.add(firewall) + + webserver = Webserver('webserver-wordpress', 'wordpress-freedombox', + urls=['https://{host}/wordpress/']) + self.add(webserver) + + daemon = Daemon('daemon-wordpress', managed_services[0]) + self.add(daemon) + + backup_restore = WordPressBackupRestore('backup-restore-wordpress', + **manifest.backup) + self.add(backup_restore) + + +class WordPressBackupRestore(BackupRestore): + """Component to backup/restore WordPress.""" + + def backup_pre(self, packet): + """Save database contents.""" + actions.superuser_run('wordpress', ['dump-database']) + + def restore_post(self, packet): + """Restore database contents.""" + actions.superuser_run('wordpress', ['restore-database']) + + +def setup(helper, old_version=None): + """Install and configure the module.""" + helper.install(managed_packages) + helper.call('post', actions.superuser_run, 'wordpress', ['setup']) + helper.call('post', app.enable) diff --git a/plinth/modules/wordpress/data/etc/apache2/conf-available/wordpress-freedombox.conf b/plinth/modules/wordpress/data/etc/apache2/conf-available/wordpress-freedombox.conf new file mode 100644 index 000000000..a55211a21 --- /dev/null +++ b/plinth/modules/wordpress/data/etc/apache2/conf-available/wordpress-freedombox.conf @@ -0,0 +1,56 @@ +## +## On all sites, provide WordPress on a default path: /wordpress +## +## Requires the following Apache modules to be enabled: +## mod_alias +## mod_rewrite +## mod_proxy_fcgi +## mod_auth_pubtkt +## + +# Match longer aliases first to meet expectations +Alias /wordpress/wp-content /var/lib/wordpress/wp-content +Alias /wordpress /usr/share/wordpress + + + Options FollowSymLinks + + + RewriteEngine On + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + RewriteBase /wordpress/ + RewriteRule ^index\.php$ - [L] + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule . /wordpress/index.php [L] + + + # Allow access only if site is marked as public or if user is an admin + + Include includes/freedombox-single-sign-on.conf + + TKTAuthToken "admin" + + + + # Increase maximum upload file size + + ProxyFCGISetEnvIf true PHP_VALUE "post_max_size=128M \n upload_max_filesize = 128M" + + + + + Options FollowSymLinks + + # Allow access only if site is marked as public or if user is an admin + + Include includes/freedombox-single-sign-on.conf + + TKTAuthToken "admin" + + + + + Require all granted + + diff --git a/plinth/modules/wordpress/data/etc/plinth/modules-enabled/wordpress b/plinth/modules/wordpress/data/etc/plinth/modules-enabled/wordpress new file mode 100644 index 000000000..ca1bf6533 --- /dev/null +++ b/plinth/modules/wordpress/data/etc/plinth/modules-enabled/wordpress @@ -0,0 +1 @@ +plinth.modules.wordpress diff --git a/plinth/modules/wordpress/data/lib/systemd/system/wordpress-freedombox.service b/plinth/modules/wordpress/data/lib/systemd/system/wordpress-freedombox.service new file mode 100644 index 000000000..c25e0ac2a --- /dev/null +++ b/plinth/modules/wordpress/data/lib/systemd/system/wordpress-freedombox.service @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later + +[Unit] +Description=WordPress Scheduled Events Trigger (Cron) +Documentation=https://rtcamp.com/tutorials/wordpress/wp-cron-crontab/ + +[Service] +CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SETUID CAP_SETGID CAP_SETPCAP CAP_CHOWN CAP_FSETID CAP_SETFCAP CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER CAP_IPC_OWNER CAP_NET_ADMIN CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE CAP_KILL CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_LINUX_IMMUTABLE CAP_IPC_LOCK CAP_SYS_CHROOT CAP_BLOCK_SUSPEND CAP_LEASE CAP_SYS_PACCT CAP_SYS_TTY_CONFIG CAP_SYS_BOOT CAP_MAC_ADMIN CAP_MAC_OVERRIDE CAP_SYS_NICE CAP_SYS_RESOURCE +DevicePolicy=closed +ExecStart=php --file /usr/share/wordpress/wp-cron.php +Group=www-data +LockPersonality=yes +NoNewPrivileges=yes +PrivateDevices=yes +PrivateMounts=yes +PrivateTmp=yes +PrivateUsers=yes +ProtectControlGroups=yes +ProtectClock=yes +ProtectHome=yes +ProtectHostname=yes +ProtectKernelLogs=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +ProtectSystem=strict +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK +RestrictNamespaces=yes +RestrictRealtime=yes +RestrictSUIDSGID=yes +StateDirectory=wordpress/wp-content +SystemCallArchitectures=native +SystemCallFilter=@system-service +SystemCallFilter=~@resources +SystemCallFilter=~@privileged +SystemCallErrorNumber=EPERM +Type=simple +User=www-data diff --git a/plinth/modules/wordpress/data/lib/systemd/system/wordpress-freedombox.timer b/plinth/modules/wordpress/data/lib/systemd/system/wordpress-freedombox.timer new file mode 100644 index 000000000..0a42dbb79 --- /dev/null +++ b/plinth/modules/wordpress/data/lib/systemd/system/wordpress-freedombox.timer @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later + +[Unit] +Description=WordPress Scheduled Events Trigger (Cron) Timer +Documentation=https://rtcamp.com/tutorials/wordpress/wp-cron-crontab/ + +[Timer] +OnCalendar=*:0/10 + +[Install] +WantedBy=timers.target diff --git a/plinth/modules/wordpress/forms.py b/plinth/modules/wordpress/forms.py new file mode 100644 index 000000000..8c6fe3479 --- /dev/null +++ b/plinth/modules/wordpress/forms.py @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +FreedomBox app for configuring WordPress. +""" + +from django import forms +from django.utils.translation import ugettext_lazy as _ + + +class WordPressForm(forms.Form): + """WordPress configuration form""" + + is_public = forms.BooleanField( + label=_('Public access'), required=False, help_text=_( + 'Allow all visitors. Disabling allows only administrators to view ' + 'the WordPress site or blog. Enable only after performing initial ' + 'WordPress setup.')) diff --git a/plinth/modules/wordpress/manifest.py b/plinth/modules/wordpress/manifest.py new file mode 100644 index 000000000..dd16bc2bd --- /dev/null +++ b/plinth/modules/wordpress/manifest.py @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later + +from django.utils.translation import ugettext_lazy as _ + +clients = [{ + 'name': _('WordPress'), + 'platforms': [{ + 'type': 'web', + 'url': '/wordpress/' + }] +}] + +backup = { + 'data': { + 'files': ['/var/lib/plinth/backups-data/wordpress-database.sql'], + 'directories': ['/var/lib/wordpress/'] + }, + 'secrets': { + 'directories': ['/etc/wordpress/'] + }, +} diff --git a/plinth/modules/wordpress/tests/__init__.py b/plinth/modules/wordpress/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/plinth/modules/wordpress/tests/test_functional.py b/plinth/modules/wordpress/tests/test_functional.py new file mode 100644 index 000000000..4e33c2e8a --- /dev/null +++ b/plinth/modules/wordpress/tests/test_functional.py @@ -0,0 +1,167 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +Functional, browser based tests for WordPress. +""" + +import pytest +from plinth.tests import functional + + +@pytest.fixture(scope='module', autouse=True) +def fixture_background(session_browser): + """Login and install the app.""" + functional.login(session_browser) + functional.install(session_browser, 'wordpress') + yield + functional.app_disable(session_browser, 'wordpress') + + +def test_enable_disable(session_browser): + """Test enabling the app.""" + functional.app_disable(session_browser, 'wordpress') + + functional.app_enable(session_browser, 'wordpress') + assert functional.service_is_running(session_browser, 'wordpress') + assert functional.is_available(session_browser, 'wordpress') + + functional.app_disable(session_browser, 'wordpress') + assert functional.service_is_not_running(session_browser, 'wordpress') + assert not functional.is_available(session_browser, 'wordpress') + + +def test_post(session_browser): + """Test writing a blog post.""" + functional.app_enable(session_browser, 'wordpress') + _write_post(session_browser, 'FunctionalTest') + assert _get_post(session_browser, 'FunctionalTest') + _delete_post(session_browser, 'FunctionalTest') + assert not _get_post(session_browser, 'FunctionalTest') + + +def test_public_mode(session_browser): + """Test that site is available without login in public mode.""" + functional.app_enable(session_browser, 'wordpress') + _enable_public_mode(session_browser, True) + + def no_login_prompt(): + _load_site(session_browser) + return not functional.is_login_prompt(session_browser) + + try: + functional.logout(session_browser) + functional.eventually(no_login_prompt) + finally: + functional.login(session_browser) + + +def test_private_mode(session_browser): + """Test that site is not available without login in public mode.""" + functional.app_enable(session_browser, 'wordpress') + _enable_public_mode(session_browser, False) + + def login_prompt(): + _load_site(session_browser) + return functional.is_login_prompt(session_browser) + + try: + functional.logout(session_browser) + functional.eventually(login_prompt) + finally: + functional.login(session_browser) + + +@pytest.mark.backups +def test_backup(session_browser): + """Test backing up and restoring.""" + functional.app_enable(session_browser, 'wordpress') + _write_post(session_browser, 'FunctionalTest') + functional.backup_create(session_browser, 'wordpress', 'test_wordpress') + _delete_post(session_browser, 'FunctionalTest') + functional.backup_restore(session_browser, 'wordpress', 'test_wordpress') + assert _get_post(session_browser, 'FunctionalTest') + + +def _load_site(browser): + """Visit WordPress site and wait until becomes available.""" + functional.visit(browser, '/wordpress/wp-admin/') + + def loaded(): + browser.reload() + title_node = browser.find_by_css('title') + return (not title_node or '404' not in title_node[0].text) + + functional.eventually(loaded) + + +def _visit_site(browser): + """Visit WordPress and run the first setup wizard if needed.""" + _load_site(browser) + if '/install.php' in browser.url: + browser.fill('weblog_title', 'Test Blog') + browser.fill('user_name', functional.config['DEFAULT']['username']) + # browser.fill() once does not work for some reason for password field + browser.fill('admin_password', + functional.config['DEFAULT']['password']) + browser.fill('admin_password', + functional.config['DEFAULT']['password']) + browser.check('pw_weak') + browser.fill('admin_email', 'admin@example.org') + functional.submit(browser) + + if not browser.find_by_css('.install-success'): + raise Exception('WordPress installation failed') + + functional.visit(browser, '/wordpress/wp-admin/') + + if not browser.find_by_id('wpadminbar'): + functional.visit(browser, '/wordpress/wp-login.php') + browser.fill('log', functional.config['DEFAULT']['username']) + browser.fill('pwd', functional.config['DEFAULT']['password']) + functional.submit(browser) + + +def _write_post(browser, title): + """Create a blog post in WordPress site.""" + post = _get_post(browser, title) + if post: + _delete_post(browser, title) + + functional.visit(browser, '/wordpress/wp-admin/post-new.php') + if browser.find_by_css('.edit-post-welcome-guide'): + browser.find_by_css('.components-modal__header button')[0].click() + + browser.find_by_id('post-title-0').fill(title) + browser.find_by_css('.editor-post-publish-button__button')[0].click() + functional.eventually(browser.find_by_css, ['.editor-post-publish-button']) + browser.find_by_css('.editor-post-publish-button')[0].click() + + +def _delete_post(browser, title): + """Delete a blog post in WordPress site.""" + post = _get_post(browser, title) + if not post: + raise Exception('Post not found') + + delete_element = post.find_by_css('.submitdelete')[0] + browser.visit(delete_element['href']) + + +def _get_post(browser, title): + """Return whether a blog post with a given title is available.""" + _visit_site(browser) + functional.visit(browser, '/wordpress/wp-admin/edit.php') + xpath = '//tr[contains(@class, "type-post")][.//a[contains(@class, ' \ + f'"row-title") and contains(text(), "{title}")]]' + post = browser.find_by_xpath(xpath) + return post[0] if post else None + + +def _enable_public_mode(browser, should_enable): + """Enable/disable the public mode.""" + checkbox = browser.find_by_id('id_is_public') + if should_enable: + checkbox.check() + else: + checkbox.uncheck() + + functional.submit(browser, form_class='form-configuration') diff --git a/plinth/modules/wordpress/urls.py b/plinth/modules/wordpress/urls.py new file mode 100644 index 000000000..f46b63908 --- /dev/null +++ b/plinth/modules/wordpress/urls.py @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +URLs for the WordPress module. +""" + +from django.conf.urls import url + +from .views import WordPressAppView + +urlpatterns = [ + url(r'^apps/wordpress/$', WordPressAppView.as_view(app_id='wordpress'), + name='index'), +] diff --git a/plinth/modules/wordpress/views.py b/plinth/modules/wordpress/views.py new file mode 100644 index 000000000..ef341faf3 --- /dev/null +++ b/plinth/modules/wordpress/views.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +FreedomBox app for configuring WordPress. +""" + +import pathlib + +from django.contrib import messages +from django.utils.translation import ugettext as _ +from plinth import actions, views + +from . import PUBLIC_ACCESS_FILE +from .forms import WordPressForm + + +class WordPressAppView(views.AppView): + """Serve configuration page.""" + form_class = WordPressForm + app_id = 'wordpress' + + def get_initial(self): + """Get the current WordPress settings.""" + status = super().get_initial() + status['is_public'] = pathlib.Path(PUBLIC_ACCESS_FILE).exists() + return status + + def form_valid(self, form): + """Apply the changes submitted in the form.""" + old_status = form.initial + new_status = form.cleaned_data + if old_status['is_public'] != new_status['is_public']: + actions.superuser_run( + 'wordpress', + ['set-public', '--enable', + str(new_status['is_public'])]) + messages.success(self.request, _('Configuration updated')) + + return super().form_valid(form) diff --git a/plinth/tests/functional/__init__.py b/plinth/tests/functional/__init__.py index 85d330e39..07d49003c 100644 --- a/plinth/tests/functional/__init__.py +++ b/plinth/tests/functional/__init__.py @@ -248,13 +248,13 @@ def _create_admin_account(browser, username, password): def login(browser): - """Login to the interface.""" + """Login to the FreedomBox interface with default test account.""" login_with_account(browser, base_url, config['DEFAULT']['username'], config['DEFAULT']['password']) def login_with_account(browser, url, username, password=None): - + """Login to the FreedomBox interface with provided account.""" if password is None: password = get_password(username) # XXX: Find a way to remove the hardcoded jsxc URL @@ -294,6 +294,11 @@ def login_with_account(browser, url, username, password=None): submit(browser, element=browser.find_by_name('next')[0]) +def logout(browser): + """Log out of the FreedomBox interface.""" + visit(browser, '/plinth/accounts/logout/') + + ################# # App utilities # ################# @@ -356,10 +361,9 @@ def _change_app_status(browser, app_name, change_status_to='enabled'): if button: should_enable_field = browser.find_by_id('id_should_enable') - if (should_enable_field.value == 'False' - and change_status_to == 'disabled') or ( - should_enable_field.value == 'True' - and change_status_to == 'enabled'): + if (should_enable_field.value == 'False' and change_status_to + == 'disabled') or (should_enable_field.value == 'True' + and change_status_to == 'enabled'): submit(browser, element=button) else: checkbox_id = _app_checkbox_id[app_name] diff --git a/plinth/tests/functional/step_definitions.py b/plinth/tests/functional/step_definitions.py index 9bb445f70..5d48f6eed 100644 --- a/plinth/tests/functional/step_definitions.py +++ b/plinth/tests/functional/step_definitions.py @@ -18,12 +18,12 @@ def logged_in(session_browser): @given("I'm a logged out user") def logged_out_user(session_browser): - functional.visit(session_browser, '/plinth/accounts/logout/') + functional.logout(session_browser) @when("I log out") def log_out_user(session_browser): - functional.visit(session_browser, '/plinth/accounts/logout/') + functional.logout(session_browser) @given(parsers.parse('the {app_name:w} application is installed')) diff --git a/plinth/views.py b/plinth/views.py index 4b8570ca7..de64c473f 100644 --- a/plinth/views.py +++ b/plinth/views.py @@ -3,6 +3,7 @@ Main FreedomBox views. """ +import io import time import urllib.parse @@ -11,6 +12,7 @@ from django.core.exceptions import ImproperlyConfigured from django.http import Http404, HttpResponseBadRequest, HttpResponseRedirect from django.template.response import TemplateResponse from django.urls import reverse +from django.utils.html import escape from django.utils.translation import ugettext as _ from django.views.generic import TemplateView from django.views.generic.edit import FormView @@ -321,3 +323,30 @@ def notification_dismiss(request, id): notes[0].dismiss() return HttpResponseRedirect(_get_redirect_url_from_param(request)) + + +def render_tabs(request_path, tab_data): + """Generate a Bootstrap tab group and return the raw HTML + + :param request_path: value of `request.path` + :param tab_data: a list of (page_name, link_text) tuples + :returns: raw HTML of the tabs + """ + sb = io.StringIO() + sb.write('

') + return sb.getvalue() diff --git a/static/themes/default/icons/wordpress.png b/static/themes/default/icons/wordpress.png new file mode 100644 index 000000000..7082d0f50 Binary files /dev/null and b/static/themes/default/icons/wordpress.png differ diff --git a/static/themes/default/icons/wordpress.svg b/static/themes/default/icons/wordpress.svg new file mode 100644 index 000000000..da838f6b9 --- /dev/null +++ b/static/themes/default/icons/wordpress.svg @@ -0,0 +1,54 @@ + +image/svg+xml