diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4da5bb988..b11199c70 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,7 +16,7 @@ code-quality:
stage: test
needs: []
script:
- - python3 -m flake8 --exclude actions/domainname-change,actions/dynamicdns,actions/hostname-change,actions/networks plinth actions/*
+ - python3 -m flake8 --exclude actions/domainname-change,actions/dynamicdns,actions/hostname-change,actions/networks container plinth actions/*
unit-tests:
stage: test
diff --git a/actions/apache b/actions/apache
index 2fbfb2403..3a69648ff 100755
--- a/actions/apache
+++ b/actions/apache
@@ -162,16 +162,18 @@ def subcommand_setup(arguments):
# setup freedombox site
webserver.enable('freedombox', kind='config')
+ webserver.enable('freedombox-tls', kind='config')
# enable serving Debian javascript libraries
webserver.enable('javascript-common', kind='config')
# default sites
- webserver.enable('000-default', kind='site')
+ webserver.disable('000-default', kind='site')
webserver.disable('default-tls', kind='site')
- webserver.enable('default-ssl', kind='site')
- webserver.enable('plinth', kind='site')
- webserver.enable('plinth-ssl', kind='site')
+ webserver.disable('default-ssl', kind='site')
+ webserver.disable('plinth', kind='site')
+ webserver.disable('plinth-ssl', kind='site')
+ webserver.enable('freedombox-default', kind='site')
# TODO: Check that the (name, kind) is a managed by FreedomBox before
diff --git a/actions/cockpit b/actions/cockpit
deleted file mode 100755
index 3abc8770f..000000000
--- a/actions/cockpit
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/usr/bin/python3
-# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
-Configuration helper for Cockpit.
-"""
-
-import argparse
-
-from plinth import action_utils
-from plinth.modules.cockpit import utils
-
-
-def parse_arguments():
- """Return parsed command line arguments as dictionary."""
- parser = argparse.ArgumentParser()
- subparsers = parser.add_subparsers(dest='subcommand', help='Sub command')
-
- subparser = subparsers.add_parser('setup',
- help='Setup Cockpit configuration')
- subparser.add_argument('domain_names', nargs='*',
- help='Domain names to be allowed')
- subparser = subparsers.add_parser(
- 'add-domain',
- help='Allow a new domain to be origin for Cockpit\'s WebSocket')
- subparser.add_argument('domain_name', help='Domain name to be allowed')
- subparser = subparsers.add_parser(
- 'remove-domain',
- help='Disallow a new domain from being origin for Cockpit\'s '
- 'WebSocket')
- subparser.add_argument('domain_name', help='Domain name to be removed')
-
- subparsers.required = True
- return parser.parse_args()
-
-
-def subcommand_setup(arguments):
- """Setup Cockpit configuration."""
- aug = utils.load_augeas()
- origins = [
- utils.get_origin_from_domain(domain)
- for domain in arguments.domain_names
- ]
- origins += ['https://localhost', 'https://localhost:4430']
- _set_origin_domains(aug, origins)
- aug.set('/files' + utils.CONFIG_FILE + '/WebService/UrlRoot', '/_cockpit/')
- aug.save()
-
- action_utils.service_restart('cockpit.socket')
-
-
-def _set_origin_domains(aug, origins):
- """Set the list of allowed origin domains."""
- aug.set('/files' + utils.CONFIG_FILE + '/WebService/Origins',
- ' '.join(origins))
-
-
-def subcommand_add_domain(arguments):
- """Allow a new domain to be origin for Cockpit's WebSocket."""
- aug = utils.load_augeas()
- origins = utils.get_origin_domains(aug)
- origins.add(utils.get_origin_from_domain(arguments.domain_name))
- _set_origin_domains(aug, origins)
- aug.save()
-
-
-def subcommand_remove_domain(arguments):
- """Disallow a domain from being origin for Cockpit's WebSocket."""
- aug = utils.load_augeas()
- origins = utils.get_origin_domains(aug)
- try:
- origins.remove(utils.get_origin_from_domain(arguments.domain_name))
- except KeyError:
- pass
- else:
- _set_origin_domains(aug, origins)
- aug.save()
-
-
-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/actions/gitweb b/actions/gitweb
index da0c9eaef..124e55650 100755
--- a/actions/gitweb
+++ b/actions/gitweb
@@ -142,6 +142,28 @@ def parse_arguments():
def subcommand_setup(_):
"""Disable default Apache2 Gitweb configuration."""
action_utils.webserver_disable('gitweb')
+ if not _get_global_default_branch():
+ _set_global_default_branch('main')
+
+
+def _get_global_default_branch():
+ """Get globally configured default branch name."""
+ try:
+ default_branch = subprocess.check_output(
+ ['git', 'config', '--global', '--get',
+ 'init.defaultBranch']).decode().strip()
+ except subprocess.CalledProcessError as exception:
+ if exception.returncode == 1: # Default branch not configured
+ return None
+ raise
+
+ return default_branch
+
+
+def _set_global_default_branch(name):
+ """Configure default branch name globally."""
+ subprocess.check_call(
+ ['git', 'config', '--global', 'init.defaultBranch', name])
def _clone_with_progress_report(url, repo_dir):
diff --git a/actions/janus b/actions/janus
deleted file mode 100755
index 107a07141..000000000
--- a/actions/janus
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/python3
-# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
-Configuration helper for Janus server.
-"""
-
-import argparse
-
-from plinth import action_utils
-
-JANUS_CONF_PATH = '/etc/janus/janus.jcfg'
-
-
-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='Configure Janus server')
- subparsers.required = True
- return parser.parse_args()
-
-
-def subcommand_setup(_):
- """Configure Janus server."""
- with open(JANUS_CONF_PATH, 'r', encoding='utf-8') as config_file:
- config_lines = config_file.readlines()
-
- with open(JANUS_CONF_PATH, 'w', encoding='utf-8') as config_file:
- for line in config_lines:
- if '#rtp_port_range' in line:
- config_file.write("\trtp_port_range = \"50176-51199\"\n")
- else:
- config_file.write(line)
-
- action_utils.service_try_restart('janus')
-
-
-def main():
- arguments = parse_arguments()
- sub_command = arguments.subcommand.replace('-', '_')
- sub_command_method = globals()['subcommand_' + sub_command]
- sub_command_method(arguments)
-
-
-if __name__ == '__main__':
- main()
diff --git a/actions/packages b/actions/packages
index 13f93a63b..8ac12a27b 100755
--- a/actions/packages
+++ b/actions/packages
@@ -5,21 +5,19 @@ Wrapper to handle package installation with apt-get.
"""
import argparse
-import inspect
import json
import logging
import os
import subprocess
import sys
from collections import defaultdict
-from importlib import import_module
import apt.cache
import apt_inst
import apt_pkg
from plinth import app as app_module
-from plinth import cfg
+from plinth import module_loader
from plinth.action_utils import (apt_hold_freedombox, is_package_manager_busy,
run_apt_command)
from plinth.package import Packages
@@ -48,11 +46,13 @@ def parse_arguments():
'--force-missing-configuration', action='store_true',
help='force installation of missing configuration files')
subparser.add_argument(
- 'module', help='name of module for which package is being installed')
+ 'app_id', help='ID of app for which package is being installed')
subparser.add_argument('packages', nargs='+',
help='list of packages to install')
subparser = subparsers.add_parser('remove', help='remove the package(s)')
+ subparser.add_argument(
+ 'app_id', help='ID of app for which package is being uninstalled')
subparser.add_argument('--packages', required=True,
help='List of packages to remove', nargs='+')
@@ -76,7 +76,7 @@ def subcommand_update(arguments):
def subcommand_install(arguments):
"""Install packages using apt-get."""
try:
- _assert_managed_packages(arguments.module, arguments.packages)
+ _assert_managed_packages(arguments.app_id, arguments.packages)
except Exception as exception:
print('Access check failed:', exception, file=sys.stderr)
sys.exit(99)
@@ -109,29 +109,29 @@ def subcommand_install(arguments):
def subcommand_remove(arguments):
- """Remove apt package(s)."""
- sys.exit(run_apt_command(['remove'] + arguments.packages))
+ """Remove packages using apt-get."""
+ try:
+ _assert_managed_packages(arguments.app_id, arguments.packages)
+ except Exception as exception:
+ print('Access check failed:', exception, file=sys.stderr)
+ sys.exit(99)
+
+ subprocess.run(['dpkg', '--configure', '-a'], check=False)
+ with apt_hold_freedombox():
+ run_apt_command(['--fix-broken', 'install'])
+ returncode = run_apt_command(['remove'] + arguments.packages)
+
+ sys.exit(returncode)
-def _assert_managed_packages(module, packages):
+def _assert_managed_packages(app_id, packages):
"""Check that list of packages are in fact managed by module."""
- cfg.read()
- module_file = os.path.join(cfg.config_dir, 'modules-enabled', module)
-
- with open(module_file, 'r', encoding='utf-8') as file_handle:
- module_path = file_handle.read().strip()
-
- module = import_module(module_path)
- module_classes = inspect.getmembers(module, inspect.isclass)
- app_classes = [
- cls[1] for cls in module_classes if issubclass(cls[1], app_module.App)
- ]
+ module_loader.load_modules()
+ app_module.apps_init()
+ app = app_module.App.get(app_id)
managed_packages = []
- for cls in app_classes:
- app = cls()
- components = app.get_components_of_type(Packages)
- for component in components:
- managed_packages += component.possible_packages
+ for component in app.get_components_of_type(Packages):
+ managed_packages += component.possible_packages + component.conflicts
for package in packages:
assert package in managed_packages
diff --git a/actions/privoxy b/actions/privoxy
deleted file mode 100755
index f07e4d72c..000000000
--- a/actions/privoxy
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/python3
-# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
-Configuration helper for Privoxy server.
-"""
-
-import argparse
-
-from plinth import action_utils
-
-
-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(
- 'pre-install',
- help='Preseed debconf values before packages are installed')
-
- subparsers.required = True
- return parser.parse_args()
-
-
-def subcommand_pre_install(_):
- """Preseed debconf values before packages are installed."""
- action_utils.debconf_set_selections(
- ['privoxy privoxy/listen-address string [::]:8118'])
-
-
-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/actions/tor b/actions/tor
index b1e779992..6189562f9 100755
--- a/actions/tor
+++ b/actions/tor
@@ -40,8 +40,6 @@ def parse_arguments():
subparsers.add_parser('get-status', help='Get Tor status in JSON format')
configure = subparsers.add_parser('configure', help='Configure Tor')
- configure.add_argument('--service', choices=['enable', 'disable'],
- help='Configure Tor service')
configure.add_argument('--relay', choices=['enable', 'disable'],
help='Configure relay')
configure.add_argument('--bridge-relay', choices=['enable', 'disable'],
@@ -57,6 +55,9 @@ def parse_arguments():
configure.add_argument('--upstream-bridges',
help='Set list of upstream bridges to use')
+ subparsers.add_parser('update-ports',
+ help='Update firewall ports based on what Tor uses')
+
subparsers.add_parser('restart', help='Restart Tor')
subparsers.required = True
@@ -171,9 +172,6 @@ def subcommand_configure(arguments):
"""Configure Tor."""
aug = augeas_load()
- if arguments.service == 'disable':
- _disable()
-
_use_upstream_bridges(arguments.use_upstream_bridges, aug=aug)
if arguments.use_upstream_bridges == 'enable':
@@ -190,15 +188,17 @@ def subcommand_configure(arguments):
elif arguments.hidden_service == 'disable':
_disable_hs(aug=aug)
- if arguments.service == 'enable':
- _enable()
-
if arguments.apt_transport_tor == 'enable':
_enable_apt_transport_tor()
elif arguments.apt_transport_tor == 'disable':
_disable_apt_transport_tor()
+def subcommand_update_ports(_):
+ """Update firewall ports based on what Tor uses."""
+ _update_ports()
+
+
def subcommand_restart(_):
"""Restart Tor."""
if (action_utils.service_is_enabled('tor@plinth', strict_check=True)
diff --git a/actions/upgrades b/actions/upgrades
index aba6566ef..b4d46f207 100755
--- a/actions/upgrades
+++ b/actions/upgrades
@@ -79,7 +79,8 @@ Pin-Priority: 500
DIST_UPGRADE_OBSOLETE_PACKAGES: List[str] = []
DIST_UPGRADE_PACKAGES_WITH_PROMPTS = [
- 'firewalld', 'mumble-server', 'radicale', 'roundcube-core', 'tt-rss'
+ 'firewalld', 'janus', 'mumble-server', 'radicale', 'roundcube-core',
+ 'tt-rss'
]
DIST_UPGRADE_PRE_INSTALL_PACKAGES = ['base-files']
diff --git a/container b/container
index ce209a89e..f791f8f97 100755
--- a/container
+++ b/container
@@ -177,7 +177,7 @@ sudo chmod --recursive --silent a+w htmlcov
sudo chmod --silent a+w .coverage
exit 0
-'''
+''' # noqa
SETUP_AND_RUN_TESTS_SCRIPT = '''
set -x
@@ -257,19 +257,22 @@ systemd_version = None
def parse_arguments():
"""Return parsed command line arguments as dictionary."""
- parser = argparse.ArgumentParser()
+ parser = argparse.ArgumentParser(
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
subparsers = parser.add_subparsers(dest='subcommand', help='Sub command')
distributions = list(URLS.keys())
distribution = os.environ.get('DISTRIBUTION')
+ formatter_class = argparse.ArgumentDefaultsHelpFormatter
default_distribution = 'testing'
if distribution and distribution in distributions:
default_distribution = distribution
# Up
- subparser = subparsers.add_parser('up', help='Bring up the container')
+ subparser = subparsers.add_parser('up', help='Bring up the container',
+ formatter_class=formatter_class)
subparser.add_argument(
'--distribution', choices=distributions, default=default_distribution,
help='Distribution of the image to download and setup')
@@ -278,20 +281,23 @@ def parse_arguments():
# Print IP address
subparser = subparsers.add_parser(
- 'ip', help='Print the IP address of the container.')
+ 'ip', help='Print the IP address of the container.',
+ formatter_class=formatter_class)
subparser.add_argument(
'--distribution', choices=distributions, default=default_distribution,
help='Distribution of the container to print IP address')
# ssh
- subparser = subparsers.add_parser('ssh', help='SSH into the container')
+ subparser = subparsers.add_parser('ssh', help='SSH into the container',
+ formatter_class=formatter_class)
subparser.add_argument('--distribution', choices=distributions,
default=default_distribution,
help='Distribution of the container to SSH into')
# Run tests
subparser = subparsers.add_parser('run-tests',
- help='Run tests in the container')
+ help='Run tests in the container',
+ formatter_class=formatter_class)
subparser.add_argument('--distribution', choices=distributions,
default=default_distribution,
help='Distribution of the container to run tests')
@@ -300,25 +306,33 @@ def parse_arguments():
help='Additional arguments to pass to the pytest command')
# Stop
- subparser = subparsers.add_parser('stop', help='Stop the container')
+ subparser = subparsers.add_parser('stop', help='Stop the container',
+ formatter_class=formatter_class)
subparser.add_argument('--distribution', choices=distributions,
default=default_distribution,
help='Distribution of the container to stop')
# Destroy
subparser = subparsers.add_parser('destroy',
- help='Destroy the container image')
+ help='Destroy the container image',
+ formatter_class=formatter_class)
subparser.add_argument('--distribution', choices=distributions,
default=default_distribution,
help='Distribution of the image to delete')
# Update
subparser = subparsers.add_parser(
- 'update', help='Update the container image to the latest version')
+ 'update', help='Update the container image to the latest version',
+ formatter_class=formatter_class)
subparser.add_argument('--distribution', choices=distributions,
default=default_distribution,
help='Distribution of the image to update')
+ # Display help message when no args are passed
+ if len(sys.argv) == 1:
+ parser.print_help()
+ sys.exit()
+
return parser.parse_args()
@@ -917,8 +931,8 @@ def _get_ssh_command(ip_address, distribution):
return [
'ssh', '-Y', '-C', '-t', '-i',
str(public_key), '-o', 'LogLevel=error', '-o',
- 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null',
- f'fbx@{ip_address}'
+ 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-o',
+ 'IdentitiesOnly=yes', f'fbx@{ip_address}'
]
diff --git a/data/etc/apache2/sites-available/plinth-ssl.conf b/data/etc/apache2/conf-available/freedombox-tls.conf
similarity index 56%
rename from data/etc/apache2/sites-available/plinth-ssl.conf
rename to data/etc/apache2/conf-available/freedombox-tls.conf
index 202e1bf1b..1a3cf184b 100644
--- a/data/etc/apache2/sites-available/plinth-ssl.conf
+++ b/data/etc/apache2/conf-available/freedombox-tls.conf
@@ -1,18 +1,17 @@
##
-## When enabled allows only SSL traffic onto Plinth. This is done by
-## redirecting non-secure traffic to secure traffic. The redirect is
-## permanent as recommended in:
-## http://tools.ietf.org/html/rfc6797#section-7
+## Allow only TLS traffic onto FreedomBox service. This is done by redirecting
+## non-secure traffic to secure traffic. The redirect is permanent as
+## recommended in: http://tools.ietf.org/html/rfc6797#section-7
##
## Requires the following Apache modules to be enabled:
## mod_rewrite
## mod_ssl
##
-
+
RewriteEngine on
# Don't redirect for onion sites as it is not needed and leads to
# unnecessary warning.
RewriteCond %{HTTP_HOST} !^.*\.onion$ [NC]
ReWriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
-
+
diff --git a/data/etc/apache2/conf-available/freedombox.conf b/data/etc/apache2/conf-available/freedombox.conf
index 9a484e8e2..d493cc0de 100644
--- a/data/etc/apache2/conf-available/freedombox.conf
+++ b/data/etc/apache2/conf-available/freedombox.conf
@@ -44,7 +44,6 @@
## other services.
##
RedirectMatch "^/$" "/plinth"
-RedirectMatch "^/freedombox" "/plinth"
##
## Disable sending Referer (sic) header from FreedomBox web interface to
@@ -79,10 +78,38 @@ RedirectMatch "^/freedombox" "/plinth"
## Disable browser guessing of MIME types. FreedoBox already sets good content
## types for all the common file types.
##
-
+
Header set Referrer-Policy 'same-origin'
Header set Content-Security-Policy "font-src 'self'; frame-src 'none'; img-src 'self'; manifest-src 'none'; media-src 'none'; object-src 'none'; script-src 'self'; style-src 'self'; worker-src 'self'; default-src 'self'; base-uri 'none'; sandbox allow-scripts allow-popups allow-forms allow-same-origin allow-downloads; form-action 'self'; frame-ancestors 'none'; block-all-mixed-content;"
Header set X-Content-Type-Options 'nosniff'
+
+
+##
+## On all sites, provide FreedomBox on a default path: /plinth
+##
+## Requires the following Apache modules to be enabled:
+## mod_headers
+## mod_proxy
+## mod_proxy_http
+##
+
+ ProxyPass http://127.0.0.1:8000/plinth
+ ## Send the scheme from user's request to enable Plinth to redirect
+ ## URLs, set cookies, set absolute URLs (if any) properly.
+ RequestHeader set X-Forwarded-Proto 'https' env=HTTPS
+
+ ## Ignore any X-FORWARDED-FOR headers sent by the client and their
+ ## proxies. Apache will still set this header with the remote
+ ## address of the client. Apache is the first and only trusted entry
+ ## point for FreedomBox. Any code that does not deal with this
+ ## header properly will remain safe. For example:
+ ## https://github.com/jazzband/django-axes/issues/286
+ RequestHeader unset X-Forwarded-For
+
+
+ ProxyPass http://127.0.0.1:8000/plinth
+ RequestHeader set X-Forwarded-Proto 'https' env=HTTPS
+ RequestHeader unset X-Forwarded-For
##
@@ -102,3 +129,20 @@ RedirectMatch "^/freedombox" "/plinth"
AddOutputFilterByType DEFLATE image/svg+xml
+
+##
+## Send all logs to systemd journal by default. This may be overridden per host
+## in . With all system logs in journald, it is possible to turn
+## off persistent logging to improve SD card lifetime and performance. It is
+## also easy to improve privacy by turning off logging altogether.
+##
+## - To obtain the old style access log run the following command (note that the
+## first field is the name of the virtual host accessed as Apache format logged
+## is vhost_combined):
+## journalctl --identifier apache-access --output cat > access.log
+##
+## - To obtain the old style error log run the following command:
+## journalctl --identifier apache-error --output cat > error.log
+##
+ErrorLog "|/usr/bin/systemd-cat --identifier=apache-error"
+CustomLog "|/usr/bin/systemd-cat --identifier=apache-access" vhost_combined
diff --git a/data/etc/apache2/sites-available/freedombox-default.conf b/data/etc/apache2/sites-available/freedombox-default.conf
new file mode 100644
index 000000000..ef08dffa7
--- /dev/null
+++ b/data/etc/apache2/sites-available/freedombox-default.conf
@@ -0,0 +1,35 @@
+## SPDX-License-Identifier: AGPL-3.0-or-later
+##
+## DO NOT EDIT. If you do, FreedomBox will not automatically upgrade.
+##
+## Apache configuration managed by FreedomBox. If customization is needed,
+## create a new configuration file with higher priority and override directives.
+##
+## Default apache sites default.conf and 000-default-ssl.conf will be disabled
+## for the sake of the following configuration. This is primarily to override
+## the logging directives (to allow default values to prevail).
+##
+
+# Keep this in sync with apache default 000-default.conf
+
+ ServerAdmin webmaster@localhost
+ DocumentRoot /var/www/html
+
+
+# Keep this in sync with apache default default-ssl.conf
+
+
+ ServerAdmin webmaster@localhost
+ DocumentRoot /var/www/html
+
+ SSLEngine on
+ SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
+ SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
+
+ SSLOptions +StdEnvVars
+
+
+ SSLOptions +StdEnvVars
+
+
+
diff --git a/data/etc/apache2/sites-available/plinth.conf b/data/etc/apache2/sites-available/plinth.conf
deleted file mode 100644
index 41d4dbc3a..000000000
--- a/data/etc/apache2/sites-available/plinth.conf
+++ /dev/null
@@ -1,22 +0,0 @@
-##
-## On all sites, provide Plinth on a default path: /plinth
-##
-## Requires the following Apache modules to be enabled:
-## mod_headers
-## mod_proxy
-## mod_proxy_http
-##
-
- ProxyPass http://127.0.0.1:8000/plinth
- ## Send the scheme from user's request to enable Plinth to redirect
- ## URLs, set cookies, set absolute URLs (if any) properly.
- RequestHeader set X-Forwarded-Proto 'https' env=HTTPS
-
- ## Ignore any X-FORWARDED-FOR headers sent by the client and their
- ## proxies. Apache will still set this header with the remote
- ## address of the client. Apache is the first and only trusted entry
- ## point for FreedomBox. Any code that does not deal with this
- ## header properly will remain safe. For example:
- ## https://github.com/jazzband/django-axes/issues/286
- RequestHeader unset X-Forwarded-For
-
diff --git a/debian/changelog b/debian/changelog
index b1ce822c2..5ebb1d3ac 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,224 @@
+freedombox (22.19) unstable; urgency=medium
+
+ [ James Valleroy ]
+ * debian: Update Spanish translation template (Closes: #1017452)
+ * avahi: Don't disable after tests
+ * ejabberd: Set hostname for test that relies on it
+ * upgrades: Add button to test dist-upgrade in development mode
+ * Translated using Weblate (French)
+ * janus: Convert action to privileged
+ * janus: Handle upgrades to 1.0.*
+ * upgrades: Hold janus during dist-upgrade
+ * locale: Update translation strings
+ * doc: Fetch latest manual
+
+ [ Joseph Nuthalapati ]
+ * tests: Make functional.is_available check faster
+
+ [ nautilusx ]
+ * Translated using Weblate (German)
+
+ [ Maxime Leroy ]
+ * Translated using Weblate (French)
+
+ [ Burak Yavuz ]
+ * Translated using Weblate (Turkish)
+
+ [ Eric ]
+ * Translated using Weblate (Chinese (Simplified))
+
+ [ Andrij Mizyk ]
+ * Translated using Weblate (Ukrainian)
+
+ [ 109247019824 ]
+ * Translated using Weblate (Bulgarian)
+
+ [ Fioddor Superconcentrado ]
+ * Translated using Weblate (Spanish)
+
+ [ Jiří Podhorecký ]
+ * Translated using Weblate (Czech)
+
+ [ nbenedek ]
+ * ttrss: add donation url
+ * d/control: Break ufw as we use firewalld
+
+ [ Veiko Aasa ]
+ * container: Display help message when no args are passed
+ * container: Show default values in command help
+
+ [ Hugel ]
+ * Translated using Weblate (Chinese (Simplified))
+
+ [ Sunil Mohan Adapa ]
+ * operation: Factor out template code into a separate file
+ * operation: Show operations on app page in addition to setup page
+ * package: Implement low-level methods for uninstalling
+ * forms: Implement form for uninstallation
+ * setup: Drop check for already running operation
+ * app: Add API to uninstall an app
+ * package: Implement uninstall in Package component
+ * setup: Implement operation to uninstall an app
+ * views: Implement a view to uninstall an app
+ * app: Add a menu item to trigger uninstallation
+ * tests: functional: Add install/uninstall test for all apps
+ * backups: Use AppView for the main app page
+ * diagnostics: Use AppView for app page
+ * names: Use AppView for app page
+ * networks: Use AppView for app page
+ * power: Use AppView for app page
+ * security: Use AppView for app page
+ * snapshot: Use AppView for app page
+ * letsencrypt: Use AppView for app page
+ * tor: Use AppView and Operation for app page
+ * jsxc: Allow disabling the app
+
+ -- James Valleroy Mon, 29 Aug 2022 22:33:54 -0400
+
+freedombox (22.18) unstable; urgency=medium
+
+ [ Maxime Leroy ]
+ * Translated using Weblate (French)
+
+ [ ikmaak ]
+ * Translated using Weblate (Dutch)
+
+ [ Burak Yavuz ]
+ * Translated using Weblate (Turkish)
+
+ [ Jiří Podhorecký ]
+ * Translated using Weblate (Czech)
+ * Translated using Weblate (Czech)
+
+ [ 109247019824 ]
+ * Translated using Weblate (Bulgarian)
+
+ [ nautilusx ]
+ * Translated using Weblate (German)
+
+ [ Andrij Mizyk ]
+ * Translated using Weblate (Ukrainian)
+
+ [ James Valleroy ]
+ * networks: Remove DNSSEC diagnostics
+ * locale: Update translation strings
+ * doc: Fetch latest manual
+
+ [ Cosmin Humeniuc ]
+ * container: Add IdentitiesOnly option to SSH
+
+ [ Veiko Aasa ]
+ * container: Ignore flake8 error 'line too long' in bash script text
+ * storage: Fix enumerating partitions without mount points
+
+ [ Sunil Mohan Adapa ]
+ * coturn: Fix link to ejabberd in description
+ * notification: Pass full context when rendering body template
+ * package: Run installation operation using app_id instead of module
+ * operation: Add module to manage threaded operations
+ * *: Make setup method part of App class for all apps
+ * *: Add setup method on all apps that don't have it
+ * *: Make force upgrading part of app rather than a module
+ * app: Drop optimization that skips setup process
+ * setup: Fix issue with immediate refresh after installation
+ * *: Drop module level app property
+ * setup: Drop setup_helper and use the new Operation API
+ * setup: Allow starting installation when package manager is busy
+ * backups: tests: Mark need for Django database during API tests
+ * matrixsynapse: Fix showing the status messages
+ * ejabberd: Fix showing the status messages
+ * ssh: tests: functional: Keep service enabled after tests
+ * sharing: tests: functional: Fix a flaky test by waiting
+ * sharing: Add installing and enable/disable like other apps
+ * wireguard: Fix module.app usage that is no longer available
+ * doc: dev: Document previously undocumented components
+
+ -- James Valleroy Mon, 15 Aug 2022 20:54:46 -0400
+
+freedombox (22.17) unstable; urgency=medium
+
+ [ ikmaak ]
+ * Translated using Weblate (German)
+ * Translated using Weblate (Dutch)
+
+ [ Burak Yavuz ]
+ * Translated using Weblate (Turkish)
+
+ [ Eric ]
+ * Translated using Weblate (Chinese (Simplified))
+
+ [ Maxime Leroy ]
+ * Translated using Weblate (French)
+
+ [ nbenedek ]
+ * wordpress: Don't install php-ssh2
+
+ [ James Valleroy ]
+ * help: Add "How can I help?" section to Contribute page
+ * locale: Update translation strings
+ * doc: Fetch latest manual
+
+ [ Sunil Mohan Adapa ]
+ * help: Update test for contribute view
+ * help: tests: Fix about page test by mocking version calls
+
+ -- James Valleroy Mon, 01 Aug 2022 21:01:41 -0400
+
+freedombox (22.16) unstable; urgency=medium
+
+ [ Eric ]
+ * Translated using Weblate (Chinese (Simplified))
+
+ [ Andrij Mizyk ]
+ * Translated using Weblate (Ukrainian)
+
+ [ 109247019824 ]
+ * Translated using Weblate (Bulgarian)
+ * Translated using Weblate (Bulgarian)
+ * Translated using Weblate (Bulgarian)
+ * Translated using Weblate (Bulgarian)
+
+ [ Maxime Leroy ]
+ * Translated using Weblate (French)
+ * Translated using Weblate (French)
+
+ [ Nikita Epifanov ]
+ * Translated using Weblate (Russian)
+ * Translated using Weblate (Russian)
+
+ [ Sunil Mohan Adapa ]
+ * cockpit: Depend on apache and setup after it
+ * privoxy: Use privileged decorator for actions
+ * cockpit: Reconfigure to allow any origin
+ * cockpit: Use decorator for privileged actions
+ * rssbridge: Whitelist all bridges by default
+ * rssbridge: Add functional tests
+ * apache: Merge old configuration files into a better location
+ * apache: Also configure to serve on /freedombox
+ * apache: Redirect all logs to systemd journal
+ * config: Add option to set logging mode: none/volatile/persistent
+ * config: Set volatile logging by default
+ * roundcube: Configure to log to journald
+ * roundcube: Use privileged to simplify actions
+
+ [ nbenedek ]
+ * privoxy: Restrict to private IPs, prevent access over the internet
+ * rssbridge: New app to generate RSS feeds for websites
+ * roundcube: Add fail2ban jail
+
+ [ Veiko Aasa ]
+ * gitweb: Switch default branch name to main for new repositories
+
+ [ James Valleroy ]
+ * janus: Change short description to "Video Room"
+ * rssbridge: Fix flake8 errors
+ * debian: Update copyright year
+ * debian: Follows policy version 4.6.1
+ * locale: Update translation strings
+ * doc: Fetch latest manual
+
+ -- James Valleroy Mon, 18 Jul 2022 20:50:09 -0400
+
freedombox (22.15~bpo11+1) bullseye-backports; urgency=medium
* Rebuild for bullseye-backports.
diff --git a/debian/control b/debian/control
index bb15b913e..4a8c95d6e 100644
--- a/debian/control
+++ b/debian/control
@@ -50,7 +50,7 @@ Build-Depends:
sshpass,
xmlto,
xsltproc
-Standards-Version: 4.6.0
+Standards-Version: 4.6.1
Homepage: https://salsa.debian.org/freedombox-team/freedombox
Vcs-Git: https://salsa.debian.org/freedombox-team/freedombox.git
Vcs-Browser: https://salsa.debian.org/freedombox-team/freedombox
@@ -62,6 +62,8 @@ Breaks:
plinth (<< 0.46.0~),
# Ensure fuse gets replaced by fuse3 on upgrades from buster s.t. sshfs can be installed.
fuse (<< 3),
+# If ufw is installed, remove it. See issue 2247.
+ ufw,
Replaces:
freedombox-setup (<< 0.13~),
plinth (<< 0.46.0~),
diff --git a/debian/copyright b/debian/copyright
index e0a3a8c61..05ef0294a 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -67,6 +67,8 @@ Files: static/themes/default/icons/ejabberd.png
static/themes/default/icons/privoxy.png
static/themes/default/icons/privoxy.svg
static/themes/default/icons/radicale.svg
+ static/themes/default/icons/rssbridge.png
+ static/themes/default/icons/rssbridge.svg
static/themes/default/icons/zoph.png
static/themes/default/icons/zoph.svg
static/themes/default/img/network-connection.svg
@@ -82,6 +84,7 @@ Comment: Placed into public domain by authors (or)
https://commons.wikimedia.org/wiki/File:Ejabberd_icon.png
https://radicale.org/css/logo.svg
https://github.com/resiprocate/resiprocate/blob/master/resip/stack/doc/reSIProcate-logo.svg
+ https://github.com/RSS-Bridge/rss-bridge/blob/master/static/logo_600px.png
License: public-domain
Files: doc/manual/en/images/icons/*
@@ -305,7 +308,7 @@ License: OFL-1.1
Files: debian/*
Copyright: 2013 Tzafrir Cohen
- 2013-2019 FreedomBox Authors
+ 2013-2022 FreedomBox Authors
License: GPL-2+
License: AGPL-3+
diff --git a/debian/freedombox.maintscript b/debian/freedombox.maintscript
index f299b3cf9..286037ad7 100644
--- a/debian/freedombox.maintscript
+++ b/debian/freedombox.maintscript
@@ -17,3 +17,5 @@ rm_conffile /etc/plinth/modules-enabled/diaspora 21.16~
rm_conffile /etc/plinth/modules-enabled/monkeysphere 21.16~
rm_conffile /etc/plinth/modules-enabled/tahoe 21.16~
rm_conffile /etc/plinth/modules-enabled/mldonkey 22.4~
+rm_conffile /etc/apache2/sites-available/plinth.conf 22.16~
+rm_conffile /etc/apache2/sites-available/plinth-ssl.conf 22.16~
diff --git a/debian/po/es.po b/debian/po/es.po
index 13eb6c095..d1f812f64 100644
--- a/debian/po/es.po
+++ b/debian/po/es.po
@@ -6,37 +6,32 @@
msgid ""
msgstr ""
"Project-Id-Version: plinth 19.20\n"
-"Report-Msgid-Bugs-To: plinth@packages.debian.org\n"
-"POT-Creation-Date: 2019-11-18 18:11-0500\n"
-"PO-Revision-Date: 2019-10-30 12:45+0100\n"
-"Last-Translator: Fioddor Superconcentrado \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-07-31 16:07+0000\n"
+"PO-Revision-Date: 2022-08-01 15:13+0200\n"
+"Last-Translator: Camaleón \n"
"Language-Team: Debian L10n Spanish \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.1.1\n"
+"X-Generator: Poedit 2.4.2\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. Type: note
#. Description
-#: ../templates:1001
+#: ../freedombox.templates:1001
msgid "FreedomBox first wizard secret - ${secret}"
msgstr "Secreto del asistente al primer arranque de FreedomBox - ${secret}"
#. Type: note
#. Description
-#: ../templates:1001
-#, fuzzy
-#| msgid ""
-#| "Please save this string. You will be asked to enter this in the first "
-#| "screen after you launch the FreedomBox interface. In case you lose it, "
-#| "you can find it in the file /var/lib/plinth/firstboot-wizard-secret."
+#: ../freedombox.templates:1001
msgid ""
"Please note down the above secret. You will be asked to enter this in the "
"first screen after you launch the FreedomBox web interface. In case you lose "
"it, you can retrieve it by running the following command:"
msgstr ""
"Por favor, anote esta cadena de texto. Se le pedirá en la primera pantalla "
-"al lanzar el interfaz web de FreedomBox. En caso de pérdida puede "
-"recuperarla mirando el fichero /var/lib/plinth/firstboot-wizard-secret."
+"al iniciar la interfaz web de FreedomBox. Si la pierde, podrá recuperarla "
+"ejecutando la siguiente orden:"
diff --git a/doc/dev/reference/components/daemon.rst b/doc/dev/reference/components/daemon.rst
index 293d715a5..ff6dd4664 100644
--- a/doc/dev/reference/components/daemon.rst
+++ b/doc/dev/reference/components/daemon.rst
@@ -5,3 +5,6 @@ Daemon
.. autoclass:: plinth.daemon.Daemon
:members:
+
+.. autoclass:: plinth.daemon.RelatedDaemon
+ :members:
diff --git a/doc/dev/reference/components/enablestate.rst b/doc/dev/reference/components/enablestate.rst
new file mode 100644
index 000000000..056432a57
--- /dev/null
+++ b/doc/dev/reference/components/enablestate.rst
@@ -0,0 +1,7 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+EnableState
+^^^^^^^^^^^
+
+.. autoclass:: plinth.app.EnableState
+ :members:
diff --git a/doc/dev/reference/components/index.rst b/doc/dev/reference/components/index.rst
index 7273e82ca..a105c69bb 100644
--- a/doc/dev/reference/components/index.rst
+++ b/doc/dev/reference/components/index.rst
@@ -7,6 +7,7 @@ Components
:caption: Available components:
info
+ enablestate
menu
packages
daemon
@@ -15,6 +16,7 @@ Components
frontpage
domain
letsencrypt
+ users
staticfiles
backups
coturn
diff --git a/doc/dev/reference/components/users.rst b/doc/dev/reference/components/users.rst
new file mode 100644
index 000000000..88e09d17f
--- /dev/null
+++ b/doc/dev/reference/components/users.rst
@@ -0,0 +1,7 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+Users
+^^^^^
+
+.. autoclass:: plinth.modules.users.components.UsersAndGroups
+ :members:
diff --git a/doc/dev/tutorial/setup.rst b/doc/dev/tutorial/setup.rst
index da73d3529..a512f75e3 100644
--- a/doc/dev/tutorial/setup.rst
+++ b/doc/dev/tutorial/setup.rst
@@ -9,28 +9,33 @@ Installing packages required for the app
So far, we haven't dealt with installing the packages needed for Transmission to
work. Nor did we take care of performing the initial configuration for
Transmission. FreedomBox takes care of installing all the Debian packages
-required for our app to work. All we need to do is specify the list of the
-Debian packages required in the ``setup()`` method that is called during
-installation:
+required for our app to work. All we need to do is call the base class method in
+the ``setup()`` method that of the ``TrasmissionApp`` class that is called
+during installation. The base class ``setup()`` method in turn calls ``setup()``
+on the ``Packages`` component which performs the actual installation:
.. code-block:: python3
:caption: ``__init__.py``
- def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
+ class TransmissionApp(app_module.App):
+ ...
- new_configuration = {
- 'rpc-whitelist-enabled': False,
- 'rpc-authentication-required': False
- }
- helper.call('post', privileged.merge_configuration, new_configuration)
- helper.call('post', app.enable)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+
+ new_configuration = {
+ 'rpc-whitelist-enabled': False,
+ 'rpc-authentication-required': False
+ }
+ privileged.merge_configuration(new_configuration)
+
+ self.enable()
The first time this app's view is accessed, FreedomBox shows an app installation
page and allows the user to install the app. After the app installation is
completed, the user is shown the app's configuration page.
-In case of our app Transmission, first we are installing the Debian packages,
-then performing the first time configuration on the app using the action script
-and finally enabling the app.
+In case of our app Transmission, first we are installing the Debian packages (by
+calling base class ``setup()`` method), then performing the first time
+configuration on the app using the action script and finally enabling the app.
diff --git a/doc/manual/en/Configure.raw.wiki b/doc/manual/en/Configure.raw.wiki
index 7998cb01d..cdafd24ca 100644
--- a/doc/manual/en/Configure.raw.wiki
+++ b/doc/manual/en/Configure.raw.wiki
@@ -16,7 +16,7 @@ Configure has some general configuration options:
. Hostname is the local name by which other devices on the local network can reach your !FreedomBox. The default hostname is ''freedombox''.
=== Domain Name ===
- . Domain name is the global name by which other devices on the Internet can reach your !FreedomBox. The value set here is used by the [[FreedomBox/Manual/ejabberd|Chat Server (XMPP)]], [[FreedomBox/Manual/MatrixSynapse|Matrix Synapse]], [[FreedomBox/Manual/LetsEncrypt|Certificates (Let's Encrypt)]], and [[FreedomBox/Manual/Monkeysphere|Monkeysphere]].
+ . Domain name is the global name by which other devices on the Internet can reach your !FreedomBox. The value set here is used by the [[FreedomBox/Manual/ejabberd|Chat Server (XMPP)]], [[FreedomBox/Manual/MatrixSynapse|Matrix Synapse]], and [[FreedomBox/Manual/LetsEncrypt|Certificates (Let's Encrypt)]].
=== Webserver Home Page ===
. This is an advanced option that allows you to set something other than !FreedomBox Service as the home page to be served on the domain name of the !FreedomBox. For example, if your !FreedomBox's domain name is https://myfreedombox.rocks and you set !MediaWiki as the home page, visiting https://myfreedombox.rocks will take you to https://myfreedombox.rocks/mediawiki/ instead of the usual https://myfreedombox.rocks/plinth/.
diff --git a/doc/manual/en/Minetest.raw.wiki b/doc/manual/en/Minetest.raw.wiki
index bd4a66d7b..965202aae 100644
--- a/doc/manual/en/Minetest.raw.wiki
+++ b/doc/manual/en/Minetest.raw.wiki
@@ -24,7 +24,7 @@ If your !FreedomBox is behind a router, you will need to set up port forwarding
=== External links ===
* Website: https://www.minetest.net
-
+ * Wiki: https://wiki.minetest.net
## END_INCLUDE
diff --git a/doc/manual/en/Monkeysphere.raw.wiki b/doc/manual/en/Monkeysphere.raw.wiki
deleted file mode 100644
index ab7a3dcae..000000000
--- a/doc/manual/en/Monkeysphere.raw.wiki
+++ /dev/null
@@ -1,34 +0,0 @@
-#language en
-
-~- [[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[es/FreedomBox/Manual/Monkeysphere|Español]] -~
-
-<>
-
-## BEGIN_INCLUDE
-
-== Monkeysphere ==
-
-{{{#!wiki caution
-This application is no longer available in !FreedomBox.
-}}}
-
-With Monkeysphere, an OpenPGP key can be generated for each configured domain serving SSH. The OpenPGP public key can then be uploaded to the OpenPGP keyservers. Users connecting to this machine through SSH can verify that they are connecting to the correct host. For users to trust the key, at least one person (usually the machine owner) must sign the key using the regular OpenPGP key signing process. See the [[http://web.monkeysphere.info/getting-started-ssh/|Monkeysphere SSH documentation]] for more details.
-
-Monkeysphere can also generate an OpenPGP key for each Secure Web Server (HTTPS) certificate installed on this machine. The OpenPGP public key can then be uploaded to the OpenPGP keyservers. Users accessing the web server through HTTPS can verify that they are connecting to the correct host. To validate the certificate, the user will need to install some software that is available on the [[https://web.monkeysphere.info/download/|Monkeysphere website]].
-
-
-=== External links ===
-
- * Upstream project: http://web.monkeysphere.info
- * User Documentation: http://web.monkeysphere.info/doc/
-
-
-## END_INCLUDE
-
-Back to [[FreedomBox/Features|Features introduction]] or [[FreedomBox/Manual|manual]] pages.
-
-
-<>
-
-----
-CategoryFreedomBox
diff --git a/doc/manual/en/Mumble.raw.wiki b/doc/manual/en/Mumble.raw.wiki
index 978651f22..f8be8329d 100644
--- a/doc/manual/en/Mumble.raw.wiki
+++ b/doc/manual/en/Mumble.raw.wiki
@@ -29,24 +29,7 @@ If your !FreedomBox is behind a router, you will need to set up port forwarding
=== Managing Permissions ===
-A super user in Mumble has the ability to create administrator accounts who can in turn manage groups and channel permissions. This can be done after logging in with the username "!SuperUser" using the super user password. See [[https://wiki.mumble.info/wiki/Murmurguide|Mumble Guide]] for information on how to do this.. !FreedomBox currently does not offer a UI to get or set the super user password for Mumble. A super user password is automatically generated during Mumble setup. To get the password, login to the terminal as admin user using [[FreedomBox/Manual/Cockpit|Cockpit]] , [[FreedomBox/Manual/SecureShell|Secure Shell]] or the console. Then, to read the super user password that was automatically generated during Mumble installation run the following command:
-
-{{{
-sudo grep SuperUser /var/log/mumble-server/mumble-server.log
-}}}
-
-You should see output such as:
-{{{
-2019-11-06 02:47:41.313 1 => Password for 'SuperUser' set to 'noo8Dahwiesh'
-}}}
-
-Alternatively, you can set a new password as follows:
-
-{{{
-sudo su -
-echo "newpassword" | su mumble-server -s /bin/sh -c "/usr/sbin/murmurd -ini /etc/mumble-server.ini --readsupw"
-}}}
-
+A super user in Mumble has the ability to create administrator accounts who can in turn manage groups and channel permissions. This can be done after logging in with the username "!SuperUser" using the super user password. See [[https://wiki.mumble.info/wiki/Murmurguide|Mumble Guide]] for information on how to do this. The !SuperUser password can be set through the !FreedomBox interface.
=== External links ===
diff --git a/doc/manual/en/OpenVPN.raw.wiki b/doc/manual/en/OpenVPN.raw.wiki
index 590fc40e7..29178b110 100644
--- a/doc/manual/en/OpenVPN.raw.wiki
+++ b/doc/manual/en/OpenVPN.raw.wiki
@@ -137,7 +137,7 @@ Some services are known '''not''' to work at this time:
=== External Links ===
-https://community.openvpn.net/openvpn
+ * Wiki / Tracker: https://community.openvpn.net/openvpn
## END_INCLUDE
diff --git a/doc/manual/en/Privoxy.raw.wiki b/doc/manual/en/Privoxy.raw.wiki
index 2139359b3..0b36809c8 100644
--- a/doc/manual/en/Privoxy.raw.wiki
+++ b/doc/manual/en/Privoxy.raw.wiki
@@ -52,7 +52,7 @@ The default installation should provide a reasonable starting point for most. Th
=== External links ===
* Website: https://www.privoxy.org
-
+ * User manual: https://www.privoxy.org/user-manual/index.html
## END_INCLUDE
diff --git a/doc/manual/en/RSSBridge.raw.wiki b/doc/manual/en/RSSBridge.raw.wiki
new file mode 100644
index 000000000..cf16de926
--- /dev/null
+++ b/doc/manual/en/RSSBridge.raw.wiki
@@ -0,0 +1,55 @@
+#language en
+
+##TAG:TRANSLATION-HEADER-START
+~- [[FreedomBox/Manual/RSSBridge|English]] - [[es/FreedomBox/Manual/RSSBridge|Español]] - [[DebianWiki/EditorGuide#translation|(+)]]-~
+##TAG:TRANSLATION-HEADER-END
+
+<>
+
+## BEGIN_INCLUDE
+
+== RSS Bridge (RSS Feed Generator) ==
+|| {{attachment:rssbridge-icon_en_V01.png|RSS Bridge icon}} ||
+
+'''Available since''': version 22.16
+
+=== What is RSS Bridge? ===
+RSS-Bridge is a web application capable of generating RSS and Atom feeds for websites that don't have one. For example, with the help of RSS Bridge you can subscribe to !YouTube channels without having to have a !YouTube account.
+
+=== Usage Example ===
+==== Subscribing to a YouTube account ====
+In this example, we will see one of the ways to subscribe to a given !YouTube channel.
+
+ 1. Visit the !YouTube channel and copy its name to the clipboard
+{{attachment:copy_channel_name.png|Copy YouTube Channel Name - FreedomBox|width=800}}
+ 2.#2 Find "!YouTube Bridge" and click on '''show more'''
+{{attachment:show_more.png|RSS Bridge Show More - FreedomBox|width=800}}
+ 3.#3 Paste the previously copied channel name in the '''Custom name''' section and click on '''Generate Feed'''
+{{attachment:paste_channel_name.png|RSS Bridge Paste Channel Name - FreedomBox|width=800}}
+ 4.#4 From the available feed types select '''Atom'''. If you're using a Chromium based browser, this will open the Atom feed in a new tab, which you can easily copy into your feed Reader, such as [[FreedomBox/Manual/TinyTinyRSS|Tiny Tiny RSS]]
+{{attachment:select_atom_feed.png|RSS Bridge Select Atom Feed - FreedomBox|width=800}}
+
+==== Subscribing to feed with Tiny Tiny RSS ====
+ 1. Copy the URL that RSS Bridge generated
+{{attachment:copy_url.png|RSS Bridge Copy URL - FreedomBox|width=800}}
+ 2.#2 In Tiny Tiny RSS select '''Subscribe to feed''' from the drop-down menu on the right side.
+ 3. Paste the generated link from step one into the textbox and select '''This feed requires authentication.'''
+ 4. Submit your !FreedomBox username and password and click on '''Subscribe'''
+{{attachment:subscribe_to_feed.png|RSS Bridge Subscribe to Feed - FreedomBox|width=800}}
+
+For a more detailed description of Tiny Tiny RSS, see [[FreedomBox/Manual/TinyTinyRSS|its manual page]]
+
+=== External links ===
+
+ * Website: https://rss-bridge.github.io/rss-bridge/
+ * User documentation: https://rss-bridge.github.io/rss-bridge/General/Project_goals.html
+
+
+## END_INCLUDE
+
+Back to [[FreedomBox/Features|Features introduction]] or [[FreedomBox/Manual|manual]] pages.
+
+<>
+
+----
+CategoryFreedomBox
diff --git a/doc/manual/en/ReleaseNotes.raw.wiki b/doc/manual/en/ReleaseNotes.raw.wiki
index 3f7061310..2fa0298a2 100644
--- a/doc/manual/en/ReleaseNotes.raw.wiki
+++ b/doc/manual/en/ReleaseNotes.raw.wiki
@@ -8,6 +8,121 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version.
+== FreedomBox 22.19 (2022-08-29) ==
+
+=== Highlights ===
+
+ * jsxc: Allow disabling the app
+ * app: Add a menu item to trigger uninstallation
+
+=== Other Changes ===
+
+ * app: Add API to uninstall an app
+ * avahi: Don't disable after tests
+ * backups: Use !AppView for the main app page
+ * container: Display help message when no args are passed
+ * container: Show default values in command help
+ * d/control: Break ufw as we use firewalld
+ * debian: Update Spanish translation template
+ * diagnostics: Use !AppView for app page
+ * ejabberd: Set hostname for test that relies on it
+ * forms: Implement form for uninstallation
+ * janus: Convert action to privileged
+ * janus: Handle upgrades to 1.0.*
+ * letsencrypt: Use !AppView for app page
+ * locale: Update translations for Bulgarian, Chinese (Simplified), Czech, French, German, Spanish, Turkish, Ukrainian
+ * names: Use !AppView for app page
+ * networks: Use !AppView for app page
+ * operation: Factor out template code into a separate file
+ * operation: Show operations on app page in addition to setup page
+ * package: Implement low-level methods for uninstalling
+ * package: Implement uninstall in Package component
+ * power: Use !AppView for app page
+ * security: Use !AppView for app page
+ * setup: Drop check for already running operation
+ * setup: Implement operation to uninstall an app
+ * snapshot: Use !AppView for app page
+ * tests: Make functional.is_available check faster
+ * tests: functional: Add install/uninstall test for all apps
+ * tor: Use !AppView and Operation for app page
+ * ttrss: Add donation url
+ * upgrades: Add button to test dist-upgrade in development mode
+ * upgrades: Hold janus during dist-upgrade
+ * views: Implement a view to uninstall an app
+
+== FreedomBox 22.18 (2022-08-15) ==
+
+=== Highlights ===
+
+ * networks: Remove DNSSEC diagnostics
+ * setup: Allow starting installation when package manager is busy
+ * setup: Fix issue with immediate refresh after installation
+
+=== Other Changes ===
+
+ * *: Add setup method on all apps that don't have it
+ * *: Drop module level app property
+ * *: Make force upgrading part of app rather than a module
+ * *: Make setup method part of App class for all apps
+ * app: Drop optimization that skips setup process
+ * backups: tests: Mark need for Django database during API tests
+ * container: Add !IdentitiesOnly option to SSH
+ * container: Ignore flake8 error 'line too long' in bash script text
+ * coturn: Fix link to ejabberd in description
+ * doc: dev: Document previously undocumented components
+ * ejabberd: Fix showing the status messages
+ * locale: Update translations for Bulgarian, Czech, Dutch, French, German, Turkish, Ukrainian
+ * matrixsynapse: Fix showing the status messages
+ * notification: Pass full context when rendering body template
+ * operation: Add module to manage threaded operations
+ * package: Run installation operation using app_id instead of module
+ * setup: Drop setup_helper and use the new Operation API
+ * sharing: Add installing and enable/disable like other apps
+ * sharing: tests: functional: Fix a flaky test by waiting
+ * ssh: tests: functional: Keep service enabled after tests
+ * storage: Fix enumerating partitions without mount points
+
+== FreedomBox 22.17 (2022-08-01) ==
+
+=== Highlights ===
+
+ * help: Add "How can I help?" section to Contribute page
+
+=== Other Changes ===
+
+ * locale: Update translations for Chinese (Simplified), Dutch, French, German, Turkish
+ * wordpress: Don't install php-ssh2
+
+== FreedomBox 22.16 (2022-07-18) ==
+
+=== Highlights ===
+
+ * cockpit: Reconfigure to allow any origin
+ * rssbridge: New app to generate RSS feeds for websites
+
+=== Other Changes ===
+
+ * apache: Also configure to serve on /freedombox
+ * apache: Merge old configuration files into a better location
+ * apache: Redirect all logs to systemd journal
+ * cockpit: Depend on apache and setup after it
+ * cockpit: Use decorator for privileged actions
+ * config: Add option to set logging mode: none/volatile/persistent
+ * config: Set volatile logging by default
+ * debian: Follows policy version 4.6.1
+ * debian: Update copyright year
+ * gitweb: Switch default branch name to main for new repositories
+ * janus: Change short description to "Video Room"
+ * locale: Update translations for Bulgarian, Chinese (Simplified), French, Russian, Ukrainian
+ * privoxy: Restrict to private IPs, prevent access over the internet
+ * privoxy: Use privileged decorator for actions
+ * roundcube: Add fail2ban jail
+ * roundcube: Configure to log to journald
+ * roundcube: Use privileged to simplify actions
+ * rssbridge: Add functional tests
+ * rssbridge: Fix flake8 errors
+ * rssbridge: Whitelist all bridges by default
+
== FreedomBox 22.15 (2022-07-04) ==
=== Highlights ===
diff --git a/doc/manual/en/ServiceDiscovery.raw.wiki b/doc/manual/en/ServiceDiscovery.raw.wiki
index 32af18ed0..b001f678a 100644
--- a/doc/manual/en/ServiceDiscovery.raw.wiki
+++ b/doc/manual/en/ServiceDiscovery.raw.wiki
@@ -14,9 +14,9 @@ It also allows !FreedomBox to discover other devices and services running on you
Service discovery is not essential and works only on internal networks. It may be disabled to improve security especially when connecting to a hostile local network.
-== Troubleshooting ==
+=== Troubleshooting ===
-=== Unable to reach .local ===
+==== Unable to reach .local ====
If .local is not able to be reached, you may simply need to disable and re-enable the Service Discovery feature in !FreedomBox.
To do this, go to '''System -> Service Discovery''', slide the toggle to the left position to disable it (it turns grey), followed by sliding it back to the right to re-enable it (it turns blue).
diff --git a/doc/manual/en/Shadowsocks.raw.wiki b/doc/manual/en/Shadowsocks.raw.wiki
index 90b87ab4e..26d11b69f 100644
--- a/doc/manual/en/Shadowsocks.raw.wiki
+++ b/doc/manual/en/Shadowsocks.raw.wiki
@@ -14,7 +14,8 @@
'''Available since''': version 0.18.0
=== What is Shadowsocks? ===
-[[https://shadowsocks.org/en/index.html|Shadowsocks]] is a lightweight and secure SOCKS5 proxy, designed to protect your Internet traffic. It can be used to bypass Internet filtering and censorship. Your !FreedomBox can run a Shadowsocks client which can connect to a Shadowsocks server. It will also run a SOCKS5 proxy. Local devices can connect to this proxy, and their data will be encrypted and proxied through the Shadowsocks server.
+
+Shadowsocks is a lightweight and secure SOCKS5 proxy, designed to protect your Internet traffic. It can be used to bypass Internet filtering and censorship. Your !FreedomBox can run a Shadowsocks client which can connect to a Shadowsocks server. It will also run a SOCKS5 proxy. Local devices can connect to this proxy, and their data will be encrypted and proxied through the Shadowsocks server.
=== Using the Shadowsocks client? ===
@@ -36,7 +37,7 @@ To use Shadowsocks after setup, set the SOCKS5 proxy URL in your device, browser
=== External links ===
- * Website: https://shadowsocks.org/en/index.html
+ * Website: https://shadowsocks.org/
## END_INCLUDE
diff --git a/doc/manual/en/TinyTinyRSS.raw.wiki b/doc/manual/en/TinyTinyRSS.raw.wiki
index 326eb155e..568e36069 100644
--- a/doc/manual/en/TinyTinyRSS.raw.wiki
+++ b/doc/manual/en/TinyTinyRSS.raw.wiki
@@ -83,54 +83,10 @@ To configure, first install the application, then in the setting page, set URL a
{{attachment:ttrssapp5.png|Tiny Tiny RSS|width=288}}
-=== Subscribing to popular platforms ===
+=== RSS Bridge ===
-==== YouTube ====
+[[FreedomBox/Manual/RSSBridge|RSS Bridge]] can be used with Tiny Tiny RSS to generate Atom/RSS links for websites that don't provide one.
-1. On your computer open a text editor and copy-paste the following line:
-{{{https://www.youtube.com/feeds/videos.xml?channel_id=}}}
-
-2. Open a video of the channel you would like to subscribe to. In this example we will subscribe to the !FreedomBox Foundation's !YouTube channel.
-
-3. Under the video, right click on the channel's name, and select '''Copy Link'''. You have to make sure you copy the channel's URL this way, as there many channels with custom URL IDs. Copying the link from here will give you the uncustomized ID of the channel.
-
-{{attachment:copy_link_youtube.png|Tiny Tiny RSS|width=960}}
-
-4. Paste this link into your text file as well.
-
-5. Now that you have both links, you should select the text which comes after {{{/channel/}}}, and place it next to the first link as shown in the pictures below.
-
-{{attachment:paste_link_youtube.png|Tiny Tiny RSS|width=800}}
-----
-
-{{attachment:valid_youtube_rss_feed.png|Tiny Tiny RSS|width=800}}
-
-6. Now you can use this link as a valid RSS feed.
-
-{{attachment:youtube_final_step.png|Tiny Tiny RSS|width=800}}
-
-In addition, you can make videos display inside Tiny Tiny RSS:
-
-1. Select "Preferences" from the Actions dropdown.
-
-2. Select Plugins
-
-3. Turn on the plugin titled "af_youtube_embed"
-
-4. Click on "Enable selected plugins"
-
-Please note, that it is highly reccommended that you use one of the privacy extensions, like [[https://ublockorigin.com//|uBlockOrigin]] to avoid advertisements and intrusive trackers.
-
-
-==== Reddit ====
-
-1. Take the link of the subreddit you want to subscribe to
-
-2. Add {{{.rss}}} after the subreddit's url.
-
-For example the subreddit for !FreedomBox is {{{https://www.reddit.com/r/Freedombox/}}}, and {{{https://www.reddit.com/r/Freedombox/.rss}}} will give you an RSS feed.
-
-{{attachment:subscribe_to_subreddit.png|Tiny Tiny RSS|width=800}}
=== External links ===
diff --git a/doc/manual/en/WireGuard.raw.wiki b/doc/manual/en/WireGuard.raw.wiki
index e90e023f0..4c8a6b06e 100644
--- a/doc/manual/en/WireGuard.raw.wiki
+++ b/doc/manual/en/WireGuard.raw.wiki
@@ -21,20 +21,24 @@
You can install wireguard from the Apps section of the !FreedomBox web interface.
-=== Configuration - Debian Peers ===
-
- * [[WireGuard#Step_1_-_Generating_Keypairs|Step 1 - Generating Keypairs]]
- * [[WireGuard#Alternative_A_-_Create_configuration_manually|Step 2 - Alternative A - Manual Configuration]]
-
=== Usage ===
* Point-to-point tunnel
* VPN client with default route
+
+=== Configuration - Debian Peers ===
+
+Note: These steps are handled automatically on !FreedomBox. So you only need to follow these steps on any Debian clients that will connect to !FreedomBox, or Debian servers that !FreedomBox will connect to.
+
+ * [[WireGuard#Step_1_-_Generating_Keypairs|Step 1 - Generating Keypairs]]
+ * [[WireGuard#Step_2_-_Configuration|Step 2 - Alternative A - Manual Configuration]]
+
+
=== Configuration - Mobile Clients ===
-WireGuard has a user space implementation for mobile devices available via the WireGuard app - available for Android and iOS (a full list of supported operating systems is available [[https://www.wireguard.com/install/|here]]).
+!WireGuard has a user space implementation for mobile devices available via the !WireGuard app - available for Android and iOS (a full list of supported operating systems is available [[https://www.wireguard.com/install/|here]]).
The client can be configured in several ways:
diff --git a/doc/manual/en/freedombox-manual.raw.wiki b/doc/manual/en/freedombox-manual.raw.wiki
index 786cf3e88..cee8e631d 100644
--- a/doc/manual/en/freedombox-manual.raw.wiki
+++ b/doc/manual/en/freedombox-manual.raw.wiki
@@ -38,6 +38,7 @@
<>
<>
<>
+<>
<>
<>
<>
@@ -61,7 +62,6 @@
<>
<>
<>
-<>
<>
<>
<>
diff --git a/doc/manual/en/images/apu1d.jpg b/doc/manual/en/images/apu1d.jpg
index cbd61211f..39e75d3da 100644
Binary files a/doc/manual/en/images/apu1d.jpg and b/doc/manual/en/images/apu1d.jpg differ
diff --git a/doc/manual/en/images/copy_channel_name.png b/doc/manual/en/images/copy_channel_name.png
new file mode 100644
index 000000000..dfbe2d030
Binary files /dev/null and b/doc/manual/en/images/copy_channel_name.png differ
diff --git a/doc/manual/en/images/copy_link_youtube.png b/doc/manual/en/images/copy_link_youtube.png
deleted file mode 100644
index c6eb12527..000000000
Binary files a/doc/manual/en/images/copy_link_youtube.png and /dev/null differ
diff --git a/doc/manual/en/images/copy_url.png b/doc/manual/en/images/copy_url.png
new file mode 100644
index 000000000..f149dd673
Binary files /dev/null and b/doc/manual/en/images/copy_url.png differ
diff --git a/doc/manual/en/images/paste_channel_name.png b/doc/manual/en/images/paste_channel_name.png
new file mode 100644
index 000000000..5bbf2588b
Binary files /dev/null and b/doc/manual/en/images/paste_channel_name.png differ
diff --git a/doc/manual/en/images/paste_link_youtube.png b/doc/manual/en/images/paste_link_youtube.png
deleted file mode 100644
index 707d76abc..000000000
Binary files a/doc/manual/en/images/paste_link_youtube.png and /dev/null differ
diff --git a/doc/manual/en/images/rssbridge-icon_en_V01.png b/doc/manual/en/images/rssbridge-icon_en_V01.png
new file mode 100644
index 000000000..66e6139c5
Binary files /dev/null and b/doc/manual/en/images/rssbridge-icon_en_V01.png differ
diff --git a/doc/manual/en/images/select_atom_feed.png b/doc/manual/en/images/select_atom_feed.png
new file mode 100644
index 000000000..c8cd33004
Binary files /dev/null and b/doc/manual/en/images/select_atom_feed.png differ
diff --git a/doc/manual/en/images/show_more.png b/doc/manual/en/images/show_more.png
new file mode 100644
index 000000000..9556cc5aa
Binary files /dev/null and b/doc/manual/en/images/show_more.png differ
diff --git a/doc/manual/en/images/subscribe_to_feed.png b/doc/manual/en/images/subscribe_to_feed.png
new file mode 100644
index 000000000..508c66548
Binary files /dev/null and b/doc/manual/en/images/subscribe_to_feed.png differ
diff --git a/doc/manual/en/images/subscribe_to_subreddit.png b/doc/manual/en/images/subscribe_to_subreddit.png
deleted file mode 100644
index bed8b8d33..000000000
Binary files a/doc/manual/en/images/subscribe_to_subreddit.png and /dev/null differ
diff --git a/doc/manual/en/images/valid_youtube_rss_feed.png b/doc/manual/en/images/valid_youtube_rss_feed.png
deleted file mode 100644
index 97807468d..000000000
Binary files a/doc/manual/en/images/valid_youtube_rss_feed.png and /dev/null differ
diff --git a/doc/manual/en/images/youtube_final_step.png b/doc/manual/en/images/youtube_final_step.png
deleted file mode 100644
index 98141861b..000000000
Binary files a/doc/manual/en/images/youtube_final_step.png and /dev/null differ
diff --git a/doc/manual/es/Manual.raw.wiki b/doc/manual/es/Manual.raw.wiki
index 786cf3e88..cee8e631d 100644
--- a/doc/manual/es/Manual.raw.wiki
+++ b/doc/manual/es/Manual.raw.wiki
@@ -38,6 +38,7 @@
<>
<>
<>
+<>
<>
<>
<>
@@ -61,7 +62,6 @@
<>
<>
<>
-<>
<>
<>
<>
diff --git a/doc/manual/es/Minetest.raw.wiki b/doc/manual/es/Minetest.raw.wiki
index 77450bd24..d5915e770 100644
--- a/doc/manual/es/Minetest.raw.wiki
+++ b/doc/manual/es/Minetest.raw.wiki
@@ -22,6 +22,7 @@ Si tu !FreedomBox está detrás de un router necesitarás configurar la redirecc
=== Enlaces externos ===
* Sitio web: https://www.minetest.net
+ * Wiki: https://wiki.minetest.net
## END_INCLUDE
diff --git a/doc/manual/es/Mumble.raw.wiki b/doc/manual/es/Mumble.raw.wiki
index c0dd39eb5..7d2cbdf3e 100644
--- a/doc/manual/es/Mumble.raw.wiki
+++ b/doc/manual/es/Mumble.raw.wiki
@@ -27,24 +27,7 @@ Si tu !FreedomBox está detrás de un router necesitarás configurar la redirecc
=== Administrar Permisos ===
-En Mumble un superusuario puede crear cuentas de administrador que a su vez pueden administrar permisos a grupos y canales. Esto se puede hacer tras ingresar con el usuario "!SuperUser" y la contraseña de superusuario. Ver la [[https://wiki.mumble.info/wiki/Murmurguide|Guía de Mumble]] para obtener información respecto a cómo hacer esto. Actualmente !FreedomBox no ofrece una interfaz gráfica para obtener o establecer la contraseña de superusuario en Mumble. Se genera una contraseña de superusuario automáticamente durante la instalación de Mumble. Para obtenerla ingresa en el terminal como `admin` usando [[es/FreedomBox/Manual/Cockpit|Cockpit]] , la [[es/FreedomBox/Manual/SecureShell|Shell Segura]] o la consola. Y ejecuta el siguiente comando:
-
-{{{
-sudo grep SuperUser /var/log/mumble-server/mumble-server.log
-}}}
-
-Deberás ver una salida como esta:
-{{{
-2019-11-06 02:47:41.313 1 => Password for 'SuperUser' set to 'noo8Dahwiesh'
-}}}
-
-O puedes establecer una contraseña nueva así:
-
-{{{
-sudo su -
-echo "nuevacontraseña" | su mumble-server -s /bin/sh -c "/usr/sbin/murmurd -ini /etc/mumble-server.ini --readsupw"
-}}}
-
+En Mumble un superusuario puede crear cuentas de administrador que a su vez pueden administrar permisos a grupos y canales. Esto se puede hacer tras ingresar con el usuario "!SuperUser" y la contraseña de superusuario. Ver la [[https://wiki.mumble.info/wiki/Murmurguide|Guía de Mumble]] para obtener información respecto a cómo hacer esto. La interfaz web de !FreedomBox permite establecer la contraseña de superusuario.
=== External links ===
diff --git a/doc/manual/es/OpenVPN.raw.wiki b/doc/manual/es/OpenVPN.raw.wiki
index fc50c18de..40043883e 100644
--- a/doc/manual/es/OpenVPN.raw.wiki
+++ b/doc/manual/es/OpenVPN.raw.wiki
@@ -135,7 +135,7 @@ Algunos servicios '''no''' funcionan aún con OpenVPN:
=== Enlaces Externos ===
-https://community.openvpn.net/openvpn
+* Wiki y Administrador de tareas: https://community.openvpn.net/openvpn
## END_INCLUDE
diff --git a/doc/manual/es/Privoxy.raw.wiki b/doc/manual/es/Privoxy.raw.wiki
index 982693685..6ceb2e2b7 100644
--- a/doc/manual/es/Privoxy.raw.wiki
+++ b/doc/manual/es/Privoxy.raw.wiki
@@ -49,8 +49,8 @@ La instalación de serie debería proporcionar un punto de partida razonable par
=== Enlaces externos ===
- * Website: https://www.privoxy.org
-
+ * Sitio web: https://www.privoxy.org
+ * Manual de usuario: https://www.privoxy.org/user-manual/index.html
## END_INCLUDE
diff --git a/doc/manual/es/ReleaseNotes.raw.wiki b/doc/manual/es/ReleaseNotes.raw.wiki
index 3f7061310..2fa0298a2 100644
--- a/doc/manual/es/ReleaseNotes.raw.wiki
+++ b/doc/manual/es/ReleaseNotes.raw.wiki
@@ -8,6 +8,121 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version.
+== FreedomBox 22.19 (2022-08-29) ==
+
+=== Highlights ===
+
+ * jsxc: Allow disabling the app
+ * app: Add a menu item to trigger uninstallation
+
+=== Other Changes ===
+
+ * app: Add API to uninstall an app
+ * avahi: Don't disable after tests
+ * backups: Use !AppView for the main app page
+ * container: Display help message when no args are passed
+ * container: Show default values in command help
+ * d/control: Break ufw as we use firewalld
+ * debian: Update Spanish translation template
+ * diagnostics: Use !AppView for app page
+ * ejabberd: Set hostname for test that relies on it
+ * forms: Implement form for uninstallation
+ * janus: Convert action to privileged
+ * janus: Handle upgrades to 1.0.*
+ * letsencrypt: Use !AppView for app page
+ * locale: Update translations for Bulgarian, Chinese (Simplified), Czech, French, German, Spanish, Turkish, Ukrainian
+ * names: Use !AppView for app page
+ * networks: Use !AppView for app page
+ * operation: Factor out template code into a separate file
+ * operation: Show operations on app page in addition to setup page
+ * package: Implement low-level methods for uninstalling
+ * package: Implement uninstall in Package component
+ * power: Use !AppView for app page
+ * security: Use !AppView for app page
+ * setup: Drop check for already running operation
+ * setup: Implement operation to uninstall an app
+ * snapshot: Use !AppView for app page
+ * tests: Make functional.is_available check faster
+ * tests: functional: Add install/uninstall test for all apps
+ * tor: Use !AppView and Operation for app page
+ * ttrss: Add donation url
+ * upgrades: Add button to test dist-upgrade in development mode
+ * upgrades: Hold janus during dist-upgrade
+ * views: Implement a view to uninstall an app
+
+== FreedomBox 22.18 (2022-08-15) ==
+
+=== Highlights ===
+
+ * networks: Remove DNSSEC diagnostics
+ * setup: Allow starting installation when package manager is busy
+ * setup: Fix issue with immediate refresh after installation
+
+=== Other Changes ===
+
+ * *: Add setup method on all apps that don't have it
+ * *: Drop module level app property
+ * *: Make force upgrading part of app rather than a module
+ * *: Make setup method part of App class for all apps
+ * app: Drop optimization that skips setup process
+ * backups: tests: Mark need for Django database during API tests
+ * container: Add !IdentitiesOnly option to SSH
+ * container: Ignore flake8 error 'line too long' in bash script text
+ * coturn: Fix link to ejabberd in description
+ * doc: dev: Document previously undocumented components
+ * ejabberd: Fix showing the status messages
+ * locale: Update translations for Bulgarian, Czech, Dutch, French, German, Turkish, Ukrainian
+ * matrixsynapse: Fix showing the status messages
+ * notification: Pass full context when rendering body template
+ * operation: Add module to manage threaded operations
+ * package: Run installation operation using app_id instead of module
+ * setup: Drop setup_helper and use the new Operation API
+ * sharing: Add installing and enable/disable like other apps
+ * sharing: tests: functional: Fix a flaky test by waiting
+ * ssh: tests: functional: Keep service enabled after tests
+ * storage: Fix enumerating partitions without mount points
+
+== FreedomBox 22.17 (2022-08-01) ==
+
+=== Highlights ===
+
+ * help: Add "How can I help?" section to Contribute page
+
+=== Other Changes ===
+
+ * locale: Update translations for Chinese (Simplified), Dutch, French, German, Turkish
+ * wordpress: Don't install php-ssh2
+
+== FreedomBox 22.16 (2022-07-18) ==
+
+=== Highlights ===
+
+ * cockpit: Reconfigure to allow any origin
+ * rssbridge: New app to generate RSS feeds for websites
+
+=== Other Changes ===
+
+ * apache: Also configure to serve on /freedombox
+ * apache: Merge old configuration files into a better location
+ * apache: Redirect all logs to systemd journal
+ * cockpit: Depend on apache and setup after it
+ * cockpit: Use decorator for privileged actions
+ * config: Add option to set logging mode: none/volatile/persistent
+ * config: Set volatile logging by default
+ * debian: Follows policy version 4.6.1
+ * debian: Update copyright year
+ * gitweb: Switch default branch name to main for new repositories
+ * janus: Change short description to "Video Room"
+ * locale: Update translations for Bulgarian, Chinese (Simplified), French, Russian, Ukrainian
+ * privoxy: Restrict to private IPs, prevent access over the internet
+ * privoxy: Use privileged decorator for actions
+ * roundcube: Add fail2ban jail
+ * roundcube: Configure to log to journald
+ * roundcube: Use privileged to simplify actions
+ * rssbridge: Add functional tests
+ * rssbridge: Fix flake8 errors
+ * rssbridge: Whitelist all bridges by default
+
== FreedomBox 22.15 (2022-07-04) ==
=== Highlights ===
diff --git a/doc/manual/es/Shadowsocks.raw.wiki b/doc/manual/es/Shadowsocks.raw.wiki
index 476c04775..c49065afd 100644
--- a/doc/manual/es/Shadowsocks.raw.wiki
+++ b/doc/manual/es/Shadowsocks.raw.wiki
@@ -36,7 +36,7 @@ Para usar Shadowsocks una vez instalado configura la URL del proxy SOCKS5 en tu
=== Enlaces externos ===
- * Sitio web: https://shadowsocks.org/en/index.html
+ * Sitio web: https://shadowsocks.org
## END_INCLUDE
diff --git a/doc/manual/es/TinyTinyRSS.raw.wiki b/doc/manual/es/TinyTinyRSS.raw.wiki
index ccbe15552..2621a8cd1 100644
--- a/doc/manual/es/TinyTinyRSS.raw.wiki
+++ b/doc/manual/es/TinyTinyRSS.raw.wiki
@@ -67,7 +67,7 @@ Para importar tu fichero Subscriptions.opml a TT-RSS,
Tras importar se te llevará a la sección '''Feeds''' que está en la página encima de la de OPML. Puedes ver que los ''feeds'' del lector previo figuran ahora importados en Tiny Tiny RSS. Ahora puedes empezar a usar Tiny Tiny RSS como tu lector principal.
-=== Usar la app móvil ===
+=== Usar la app para dispositivos móviles ===
La app oficial para Android del proyecto Tiny Tiny RSS funciona con el servidor Tiny Tiny RSS de !FreedomBox. Se sabe que la aplicación anterior TTRSS-Reader '''no''' funciona.
@@ -81,7 +81,11 @@ Para configurarla, primero instálala y entonces en la página de configuración
{{attachment:ttrssapp4.png|Tiny Tiny RSS|width=288}}
{{attachment:ttrssapp5.png|Tiny Tiny RSS|width=288}}
-=== Suscribirse a plataformas populares ===
+=== Suscribirse a contenidos ===
+
+==== Cualquier contenido en general ====
+
+Se puede usar [[es/FreedomBox/Manual/RSSBridge|RSS Bridge]] junto con Tiny Tiny RSS para generar enlaces Atom/RSS para sitios web que no proporcionan ninguno.
==== YouTube ====
diff --git a/doc/manual/es/WireGuard.raw.wiki b/doc/manual/es/WireGuard.raw.wiki
index 0b0daff29..252b380b4 100644
--- a/doc/manual/es/WireGuard.raw.wiki
+++ b/doc/manual/es/WireGuard.raw.wiki
@@ -20,8 +20,10 @@ Puedes instalar !WireGuard desde la sección ''Apps'' de la interfaz de !Freedom
=== Configuración - Debian Peers ===
+Nota: !FreedomBox trata estos pasos automáticamente. Así que solo necesitas seguirlos en clientes Debian que se conecten a !FreedomBox, O en servidores Debian a los que !FreedomBox se conecte.
+
* [[WireGuard#Step_1_-_Generating_Keypairs|Paso 1 - Generar los pares de claves]]
- * [[WireGuard#Alternative_A_-_Create_configuration_manuallyS|Paso 2 - Alternativa A - Configuration Manual]]
+ * [[WireGuard#Step_2_-_Configuration|Paso 2 - Alternativa A - Configuración Manual]]
=== Uso ===
@@ -31,7 +33,7 @@ Puedes instalar !WireGuard desde la sección ''Apps'' de la interfaz de !Freedom
=== Configuración - Clientes móviles ===
-WireGuard tiene una implementación en espacio de usuario para dispositivos móviles disponible en la propia app. Funciona en Android e iOS. [[https://www.wireguard.com/install/|Aquí]] hay una lista completa de sistemas operativos compatibles.
+!WireGuard tiene una implementación en espacio de usuario para dispositivos móviles disponible en la propia app. Funciona en Android e iOS. [[https://www.wireguard.com/install/|Aquí]] hay una lista completa de sistemas operativos compatibles.
El cliente se puede configurar de varias maneras:
diff --git a/doc/manual/es/images/apu1d.jpg b/doc/manual/es/images/apu1d.jpg
index cbd61211f..39e75d3da 100644
Binary files a/doc/manual/es/images/apu1d.jpg and b/doc/manual/es/images/apu1d.jpg differ
diff --git a/plinth/__init__.py b/plinth/__init__.py
index e686974d5..64b5f728c 100644
--- a/plinth/__init__.py
+++ b/plinth/__init__.py
@@ -3,4 +3,4 @@
Package init file.
"""
-__version__ = '22.15'
+__version__ = '22.19'
diff --git a/plinth/app.py b/plinth/app.py
index df90dc2aa..5e294ff06 100644
--- a/plinth/app.py
+++ b/plinth/app.py
@@ -7,7 +7,6 @@ import collections
import enum
import inspect
import logging
-import sys
from plinth import cfg
from plinth.signals import post_app_loading
@@ -51,6 +50,7 @@ class App:
class SetupState(enum.Enum):
"""Various states of app being setup."""
+
NEEDS_SETUP = 'needs-setup'
NEEDS_UPDATE = 'needs-update'
UP_TO_DATE = 'up-to-date'
@@ -133,21 +133,17 @@ class App:
for component in self.components.values():
component.setup(old_version=old_version)
+ def uninstall(self):
+ """De-configure and uninstall the app."""
+ for component in self.components.values():
+ component.uninstall()
+
def get_setup_state(self) -> SetupState:
"""Return whether the app is not setup or needs upgrade."""
current_version = self.get_setup_version()
if current_version and self.info.version <= current_version:
return self.SetupState.UP_TO_DATE
- # If an app needs installing/updating but no setup method is available,
- # then automatically set version.
- #
- # Minor violation of 'get' only discipline for convenience.
- module = sys.modules[self.__module__]
- if not hasattr(module, 'setup'):
- self.set_setup_version(self.info.version)
- return self.SetupState.UP_TO_DATE
-
if not current_version:
return self.SetupState.NEEDS_SETUP
@@ -289,6 +285,9 @@ class Component:
def setup(self, old_version):
"""Run operations to install and configure the component."""
+ def uninstall(self):
+ """De-configure and uninstall the component."""
+
def enable(self):
"""Run operations to enable the component."""
@@ -464,7 +463,16 @@ class Info(FollowerComponent):
class EnableState(LeaderComponent):
- """A component to hold the enable state of an app using a simple flag."""
+ """A component to hold the enable state of an app using a simple flag.
+
+ The flag is stored in the FreedomBox service database. This component
+ should only be used if an app does not have any other way to determine if
+ it is enabled or disabled by examining the state of the system. Typical
+ apps have daemons, web server configuration, etc. and the enabled/disabled
+ state of those determine the enabled/disabled state of the entire app. If
+ an does not have any such system state, then this component may be used to
+ provide enable/disable functionality for the app.
+ """
@property
def key(self):
@@ -550,17 +558,13 @@ def _insert_apps(app_id, app, remaining_apps, ordered_apps):
def _initialize_module(module_name, module):
"""Perform initialization on all apps in a module."""
- # Perform setup related initialization on the module
- from . import setup # noqa # Avoid circular import
- setup.init(module_name, module)
-
try:
module_classes = inspect.getmembers(module, inspect.isclass)
app_classes = [
cls for _, cls in module_classes if issubclass(cls, App)
]
for app_class in app_classes:
- module.app = app_class()
+ app_class()
except Exception as exception:
logger.exception('Exception while running init for %s: %s', module,
exception)
diff --git a/plinth/forms.py b/plinth/forms.py
index b2f207847..504747110 100644
--- a/plinth/forms.py
+++ b/plinth/forms.py
@@ -14,12 +14,32 @@ from django.utils.translation import gettext_lazy as _
import plinth
+def _get_repository_choices():
+ """Return the list of available repositories."""
+ import plinth.modules.backups.repository as repository_module
+ choices = [(repository.uuid, repository.name)
+ for repository in repository_module.get_repositories()
+ if repository.is_usable()]
+
+ return choices
+
+
class AppEnableDisableForm(forms.Form):
"""Form to enable / disable an app."""
should_enable = forms.BooleanField(widget=forms.HiddenInput,
required=False)
+class UninstallForm(forms.Form):
+ """Form to uninstall an app."""
+ should_backup = forms.BooleanField(
+ label=_('Backup app before uninstall'),
+ help_text=_('Restoring from the backup will restore app data.'),
+ required=False, initial=True)
+ repository = forms.ChoiceField(label=_('Repository to backup to'),
+ choices=_get_repository_choices)
+
+
class DomainSelectionForm(forms.Form):
"""Form for selecting a domain name to be used for
distributed federated applications
diff --git a/plinth/locale/ar/LC_MESSAGES/django.po b/plinth/locale/ar/LC_MESSAGES/django.po
index 25b3463aa..463906eb3 100644
--- a/plinth/locale/ar/LC_MESSAGES/django.po
+++ b/plinth/locale/ar/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2022-03-31 09:12+0000\n"
"Last-Translator: abidin toumi \n"
"Language-Team: Arabic any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1116,7 +1099,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr ""
@@ -1194,43 +1177,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1250,11 +1255,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1276,11 +1281,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1317,17 +1322,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1346,55 +1351,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1441,7 +1446,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1472,11 +1477,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1586,13 +1591,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1664,12 +1670,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1762,7 +1768,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1807,19 +1813,19 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr ""
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1853,7 +1859,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -1934,7 +1940,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2071,15 +2077,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2175,54 +2181,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr ""
@@ -2325,6 +2331,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2431,16 +2472,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2465,19 +2506,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2530,15 +2571,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2576,8 +2617,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2592,32 +2633,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2634,11 +2675,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2657,28 +2698,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "خادم ويب"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2690,17 +2729,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2844,7 +2883,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2876,8 +2915,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -2948,12 +2987,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3014,39 +3053,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr ""
@@ -3059,11 +3098,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3108,7 +3147,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3119,15 +3158,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3180,11 +3219,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3226,15 +3265,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3267,27 +3306,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3807,7 +3841,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3827,13 +3861,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3854,7 +3888,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3864,13 +3898,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4053,245 +4087,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4306,20 +4336,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4427,15 +4457,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4541,36 +4571,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4587,7 +4617,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4659,21 +4689,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4697,11 +4728,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4726,12 +4757,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4794,7 +4825,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4802,7 +4833,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4811,7 +4842,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4821,7 +4852,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4836,6 +4867,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4867,15 +4932,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -4995,15 +5060,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5084,7 +5149,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5149,12 +5214,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5168,11 +5233,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5202,11 +5267,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5235,14 +5300,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5290,28 +5355,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5451,7 +5516,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5499,53 +5564,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5557,7 +5622,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5598,7 +5663,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5618,104 +5683,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5849,16 +5914,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5878,40 +5943,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -5921,37 +5986,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -5959,22 +6020,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -5982,18 +6043,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6005,22 +6066,24 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
+#: plinth/modules/tor/views.py:55
+msgid "Updating configuration"
msgstr ""
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "خطأ أثناء تثبيت التطبيق: {error}"
+
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@@ -6063,7 +6126,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6088,15 +6151,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6117,33 +6176,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6221,6 +6280,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6276,39 +6336,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6324,15 +6402,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -6897,12 +6975,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -6937,11 +7015,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -6975,37 +7053,126 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr ""
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "حدث خطأ أثناء تثبيت التطبيق: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "حدث خطأ أثناء تثبيت التطبيق: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "خطأ أثناء تثبيت التطبيق: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "خطأ أثناء تثبيت التطبيق: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "ثُبت التطبيق."
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Error installing application: {error}"
+msgid "Uninstalling app"
+msgstr "خطأ أثناء تثبيت التطبيق: {error}"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "حدث خطأ أثناء تثبيت التطبيق: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "خطأ أثناء تثبيت التطبيق: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "ثُبت التطبيق."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7048,7 +7215,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7291,6 +7458,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "ثُبت التطبيق."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7300,52 +7471,64 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr ""
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Application installed."
+msgid "Uninstall"
+msgstr "ثُبت التطبيق."
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr ""
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "خادم ويب"
diff --git a/plinth/locale/ar_SA/LC_MESSAGES/django.po b/plinth/locale/ar_SA/LC_MESSAGES/django.po
index 09baf5844..2639d4441 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2020-06-10 15:41+0000\n"
"Last-Translator: aiman an \n"
"Language-Team: Arabic (Saudi Arabia) any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1116,7 +1099,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr ""
@@ -1194,43 +1177,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1250,11 +1255,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1276,11 +1281,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1317,17 +1322,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1346,55 +1351,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1441,7 +1446,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1472,11 +1477,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1586,13 +1591,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1664,12 +1670,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1762,7 +1768,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1807,21 +1813,21 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Web Server"
msgid "Email Server"
msgstr "خادم ويب"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1855,7 +1861,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -1936,7 +1942,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2073,15 +2079,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2177,54 +2183,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr ""
@@ -2327,6 +2333,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2433,16 +2474,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2467,19 +2508,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2532,15 +2573,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2578,8 +2619,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2594,32 +2635,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2636,11 +2677,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2659,28 +2700,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "خادم ويب"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2692,17 +2731,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2846,7 +2885,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2878,8 +2917,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -2950,12 +2989,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3018,39 +3057,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr ""
@@ -3063,11 +3102,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3112,7 +3151,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3123,15 +3162,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3184,11 +3223,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3230,15 +3269,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3271,27 +3310,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3811,7 +3845,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3831,13 +3865,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3858,7 +3892,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3868,13 +3902,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4057,245 +4091,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4310,20 +4340,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4431,15 +4461,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4545,36 +4575,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4591,7 +4621,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4663,21 +4693,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4701,11 +4732,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4730,12 +4761,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4798,7 +4829,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4806,7 +4837,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4815,7 +4846,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4825,7 +4856,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4840,6 +4871,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4871,15 +4936,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -4999,15 +5064,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5088,7 +5153,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5153,12 +5218,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5172,11 +5237,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5206,11 +5271,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5239,14 +5304,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5294,28 +5359,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5455,7 +5520,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5503,53 +5568,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5561,7 +5626,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5602,7 +5667,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5622,104 +5687,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5853,16 +5918,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5882,40 +5947,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -5925,37 +5990,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -5963,22 +6024,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -5986,18 +6047,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6009,22 +6070,24 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
+#: plinth/modules/tor/views.py:55
+msgid "Updating configuration"
msgstr ""
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "خطأ في تثبيت التطبيق:{error}"
+
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@@ -6067,7 +6130,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6092,15 +6155,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6121,33 +6180,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6225,6 +6284,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6280,39 +6340,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6328,15 +6406,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -6901,12 +6979,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -6941,11 +7019,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -6979,37 +7057,126 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr ""
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "خطأ في تثبيت التطبيق :{string}{details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "خطأ في تثبيت التطبيق :{string}{details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "خطأ في تثبيت التطبيق:{error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "خطأ في تثبيت التطبيق:{error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "تم تثبيت التطبيق."
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Error installing application: {error}"
+msgid "Uninstalling app"
+msgstr "خطأ في تثبيت التطبيق:{error}"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "خطأ في تثبيت التطبيق :{string}{details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "خطأ في تثبيت التطبيق:{error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "تم تثبيت التطبيق."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7052,7 +7219,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7295,6 +7462,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "تم تثبيت التطبيق."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7304,56 +7475,68 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr ""
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Application installed."
+msgid "Uninstall"
+msgstr "تم تثبيت التطبيق."
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr ""
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "خادم ويب"
+
#, fuzzy
#~| msgid "Web Server"
#~ msgid "Server URL"
diff --git a/plinth/locale/bg/LC_MESSAGES/django.po b/plinth/locale/bg/LC_MESSAGES/django.po
index e6733be74..93670c397 100644
--- a/plinth/locale/bg/LC_MESSAGES/django.po
+++ b/plinth/locale/bg/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
-"PO-Revision-Date: 2022-06-29 21:17+0000\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
+"PO-Revision-Date: 2022-08-18 17:21+0000\n"
"Last-Translator: 109247019824 \n"
"Language-Team: Bulgarian \n"
@@ -17,13 +17,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.13.1-dev\n"
+"X-Generator: Weblate 4.14-dev\n"
#: doc/dev/_templates/layout.html:11
msgid "Page source"
msgstr "Изходен код на страницата"
-#: plinth/context_processors.py:23 plinth/views.py:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr "FreedomBox"
@@ -53,10 +53,24 @@ msgid "Cannot connect to {host}:{port}"
msgstr "Не може да се свърже с {host}:{port}"
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+#, fuzzy
+#| msgid "Repository not found"
+msgid "Repository to backup to"
+msgstr "Хранилището не е намерено"
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr "Изберете име на домейн, което да се използва с това приложение"
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
@@ -64,12 +78,12 @@ msgstr ""
"Предупреждение! Приложението може да не работи правилно, ако името на "
"домейна бъде променено по-късно."
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr "Домейн за TLS"
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
@@ -78,41 +92,27 @@ msgstr ""
"Изберете домейн, с който да използвате TLS. Ако списъкът е празен, настройте "
"поне един домейн със сертификати."
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr "Език"
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr "Език на интерфейса"
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr "Използване на предпочитания от четеца език"
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr "Приложението е инсталирано."
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr "Грешка при инсталиране на приложението: {string} {details}"
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr "Грешка при инсталиране на приложението: {error}"
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr "Сървър на Apache HTTP"
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr "Уеб сървър"
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr "{box_name} интерфейс (Plinth)"
@@ -144,11 +144,11 @@ msgstr ""
"мрежи. То може да бъде спряно и така да бъде подобрена сигурността, особено "
"когато се свързвате към враждебна местна мрежа."
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr "Откриване на услуги"
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr "Домейн в местната мрежа"
@@ -156,12 +156,12 @@ msgstr "Домейн в местната мрежа"
msgid "Backups allows creating and managing backup archives."
msgstr "Създаване и управление на архиви с резервни копия."
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr "Резервни копия"
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
@@ -170,18 +170,18 @@ msgstr ""
"Предпочетете шифровано местоположение за отдалечено архивиране или "
"допълнително свързан диск."
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr "Включване на резервни копия по график"
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr "Към {app_name}"
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
@@ -191,7 +191,7 @@ msgstr ""
"опита за създаване на резервно копие са безуспешни. Последната грешка е: "
"{error_message}"
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr "Грешка при създаване на резервно копие"
@@ -277,7 +277,7 @@ msgstr "Хранилище"
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr "Наименование"
@@ -444,7 +444,7 @@ msgid "{box_name} storage"
msgstr "Хранилище на {box_name}"
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr "Създаване на резервно копие"
@@ -496,7 +496,7 @@ msgid "Create Location"
msgstr "Добавяне на хранилище"
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr "Създаване на хранилище"
@@ -554,7 +554,7 @@ msgstr "Изтегляне"
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr "Възстановяване"
@@ -656,99 +656,99 @@ msgstr ""
msgid "Verify Host"
msgstr "Проверяване на хоста"
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
-msgstr "Графикът за резервни копия е обновен."
+msgstr "Графикът за резервни копия е променен."
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr "Резервни копия по график"
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr "Архивът е създаден."
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr "Премахване на архив"
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr "Архивът е премахнат."
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr "Качване и възстановяване от резервно копие"
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr "Файловете от резервното копие са възстановени."
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr "Не е намерено резервно копие."
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr "Възстановяване от качен файл"
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr "Няма допълнителни дискове, на които да бъде създадено хранилище."
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr "Създаване на хранилище за резервни копия"
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr "Създаване на отдалечено хранилище за резервни копия"
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr "Създадено е отдалечено хранилище с достъп през SSH."
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr "Проверяване на ключа за SSH на хоста"
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr "SSH на хоста вече е проверен."
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr "Ключът на хоста е проверен."
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr "Публичният ключ за SSH на хоста не може да бъде проверен."
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr "Удостоверяването на отдалечения сървър е неуспешно."
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr "Грешка при свързване със сървъра: {}"
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr "Хранилището е премахнато."
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr "Премахване на хранилище"
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr "Хранилището е премахнато. Резервните копия не са премахнати."
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr "Грешка при размонтиране!"
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr "Грешка при монтиране"
@@ -776,39 +776,39 @@ msgid ""
"the list."
msgstr ""
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr ""
@@ -899,16 +899,15 @@ msgstr "Премахване"
msgid "Admin"
msgstr ""
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr "Настройките са променени."
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr "Възникна грешка по време на настройване."
@@ -938,11 +937,11 @@ msgid ""
"connection from {box_name}."
msgstr ""
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr ""
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr ""
@@ -994,12 +993,12 @@ msgstr ""
msgid "Refresh IP address and domains"
msgstr ""
-#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
-#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -1029,15 +1028,15 @@ msgid ""
"app. All users with access can use all the libraries."
msgstr ""
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr ""
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr ""
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr ""
@@ -1099,25 +1098,25 @@ msgstr ""
msgid "Delete library %(library)s"
msgstr ""
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr ""
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr ""
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr ""
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1126,7 +1125,7 @@ msgid ""
"console operations is also available."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1134,7 +1133,7 @@ msgid ""
"management."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1143,30 +1142,16 @@ msgstr ""
"Достъпът до нея е възможен от всеки потребител "
"на {box_name}, принадлежащ към групата admin."
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1181,7 +1166,7 @@ msgstr "Общи настройки"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Настройки"
@@ -1259,43 +1244,67 @@ msgstr "Допълнителни приложения и възможности"
msgid "Show apps and features that require more technical knowledge."
msgstr "Показване на приложения и възможности, изискващи технически познания"
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Monitoring"
+msgid "System-wide logging"
+msgstr "Наблюдение на системата"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Грешка при задаване на името на хоста: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Името на хоста е зададено"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Грешка при задаване на името на домейна: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Името на домейна е зададено"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Грешка при задаване на началната страница на сървъра: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Началната страница на сървъра е зададена"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Грешка при промяна на разширения режим: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Разширените приложения и възможности се показват"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Разширените приложения и възможности са скрити"
@@ -1315,11 +1324,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "Помощник за VoIP"
@@ -1343,11 +1352,11 @@ msgstr ""
"Сървърът за време по мрежата е приложение, която поддържа системния часовник "
"синхронизиран със сървъри в интернет."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Дата и час"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Часовникът се сверява със сървър на NTP"
@@ -1386,17 +1395,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1413,72 +1422,77 @@ 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:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
-msgstr ""
+msgstr "Диагностика"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
-msgstr ""
+msgstr "преминала"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
-msgstr ""
+msgstr "неуспех"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
-msgstr ""
+msgstr "грешка"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
-msgstr ""
+msgstr "предупреждение"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
-msgstr ""
+msgstr "МБ"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
-msgstr ""
-
-#: plinth/modules/diagnostics/__init__.py:214
-msgid "You should disable some apps to reduce memory usage."
-msgstr ""
+msgstr "ГБ"
#: plinth/modules/diagnostics/__init__.py:219
-msgid "You should not install any new apps on this system."
+msgid "You should disable some apps to reduce memory usage."
msgstr ""
+"За да намалее използваната памет, трябва да изключите някои приложения."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:224
+msgid "You should not install any new apps on this system."
+msgstr "Не трябва да инсталирате нови приложения."
+
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
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:233
+#: plinth/modules/diagnostics/__init__.py:238
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"
-msgstr ""
+msgstr "Резултати"
#: plinth/modules/diagnostics/templates/diagnostics.html:36
#, python-format
@@ -1487,32 +1501,35 @@ msgid ""
" App: %(app_name)s\n"
" "
msgstr ""
+"\n"
+" Приложение: %(app_name)s\n"
+" "
#: plinth/modules/diagnostics/templates/diagnostics_app.html:10
msgid "Diagnostic Results"
-msgstr ""
+msgstr "Резултати от диагностиката"
#: plinth/modules/diagnostics/templates/diagnostics_app.html:12
#, python-format
msgid "App: %(app_name)s"
-msgstr ""
+msgstr "Приложение: %(app_name)s"
#: plinth/modules/diagnostics/templates/diagnostics_app.html:21
msgid "This app does not support diagnostics"
-msgstr ""
+msgstr "Приложението не поддържа дисгностика"
#: plinth/modules/diagnostics/templates/diagnostics_results.html:11
msgid "Test"
-msgstr ""
+msgstr "Проверка"
#: plinth/modules/diagnostics/templates/diagnostics_results.html:12
#: plinth/modules/dynamicdns/templates/dynamicdns.html:20
msgid "Result"
-msgstr ""
+msgstr "Резултат"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
-msgstr ""
+msgstr "Диагностична проверка"
#: plinth/modules/dynamicdns/__init__.py:29
#, python-brace-format
@@ -1541,11 +1558,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1623,7 +1640,7 @@ msgstr ""
#: plinth/modules/dynamicdns/forms.py:70
msgid "Update URL"
-msgstr ""
+msgstr "Адрес за обновяване"
#: plinth/modules/dynamicdns/forms.py:74
msgid "Accept all SSL certificates"
@@ -1655,13 +1672,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1738,12 +1756,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1838,7 +1856,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1883,19 +1901,19 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr "Postfix/Dovecot"
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "Пощенски сървър"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1929,7 +1947,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2011,29 +2029,28 @@ msgid ""
"network traffic on your {box_name}. Keeping a firewall enabled and properly "
"configured reduces risk of security threat from the Internet."
msgstr ""
-"Защитната стена е система за сигурност, която контролира входящия и "
-"изходящия мрежов трафик в и от {box_name}. Поддържането на включена и "
-"правилно настроена защитната стена намалява риска от заплахи за сигурността "
-"от интернет."
+"Защитната стена е система за сигурност, която управлява входящия и изходящия "
+"мрежов трафик в и от {box_name}. Поддържането на включена и правилно "
+"настроена защитна стена намалява риска от заплахи за сигурността от интернет."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
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
@@ -2043,6 +2060,11 @@ msgid ""
"you may run it using the command 'service firewalld start' or in case of a "
"system with systemd 'systemctl start firewalld'."
msgstr ""
+"Демонът на защитната стена не работи. Стартирайте го. Защитната стена на "
+"%(box_name)s по подразбиране е включена. Всички системи на базата на Дебиан, "
+"каквато е %(box_name)s, можете да я стартирате с командата „service "
+"firewalld start“, а при устройства със systemd командата е „systemctl start "
+"firewalld“."
#: plinth/modules/firewall/templates/firewall.html:35
msgid "Service/Port"
@@ -2067,11 +2089,11 @@ 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"
@@ -2098,6 +2120,9 @@ msgid ""
"Advanced firewall operations such as opening custom ports are provided by "
"the Cockpit app."
msgstr ""
+"Разширените възможности на защитната стена, като отваряне на определени "
+"портове, се осигуряват от приложението Cockpit."
#: plinth/modules/first_boot/forms.py:14
#, python-brace-format
@@ -2133,7 +2158,7 @@ msgid ""
"You may want to check the network setup and "
"modify it if necessary."
msgstr ""
-"Вероятно ще искате да промените настройките на "
+"Вероятно ще искате да проверите настройките на "
"мрежата и при необходимост, да ги промените."
#: plinth/modules/first_boot/templates/firstboot_welcome.html:29
@@ -2161,15 +2186,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Обикновен хостинг на Git"
@@ -2265,54 +2290,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Хранилището е променено."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Промяна на хранилище"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Документация"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Ръководство"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Получаване на помощ"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Обратна връзка"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Допринасяне"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "За проекта"
@@ -2321,7 +2346,7 @@ msgstr "За проекта"
#: plinth/modules/upgrades/templates/upgrades_configure.html:26
#, python-format
msgid "You are running %(os_release)s and %(box_name)s version %(version)s."
-msgstr ""
+msgstr "Използвате %(os_release)s и %(box_name)s издание %(version)s."
#: plinth/modules/help/templates/help_about.html:23
#, python-format
@@ -2415,6 +2440,41 @@ msgstr ""
msgid "Learn more..."
msgstr "Научете повече…"
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr "Дефекти, подходящи за начинаещи"
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2507,7 +2567,7 @@ msgstr ""
#: plinth/modules/help/templates/statuslog.html:10
msgid "Status Log"
-msgstr ""
+msgstr "Дневник на състоянието"
#: plinth/modules/help/templates/statuslog.html:13
#, python-format
@@ -2523,19 +2583,19 @@ msgid ""
"Please remove any passwords or other personal information from the log "
"before submitting the bug report."
msgstr ""
-"Моля, премахнете всички пароли или друга лична информация от дневника, преди "
-"да изпратите доклад за грешка."
+"Премахнете всички пароли или друга лична информация от дневника, преди да "
+"изпратите доклад за грешка."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Документация и въпроси"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "Относно {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "Руководство за {box_name}"
@@ -2560,19 +2620,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2625,15 +2685,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2671,8 +2731,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Обновяване на настройки"
@@ -2687,32 +2747,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2729,11 +2789,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2752,26 +2812,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
-msgstr "Услуга на WebRTC"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2783,17 +2843,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2937,7 +2997,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2969,8 +3029,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Настройки"
@@ -3041,12 +3101,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3112,43 +3172,41 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Паролата е променена"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr "Паролата не е променена. Изберете по-сложна парола"
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr "Името на домейна е променено"
-#: plinth/modules/mediawiki/views.py:103
-#, fuzzy
-#| msgid "Domain name updated"
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
-msgstr "Името на домейна е променено"
+msgstr "Името на страницата е променено"
#: plinth/modules/minetest/__init__.py:35
#, python-brace-format
@@ -3159,11 +3217,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3208,7 +3266,7 @@ msgstr ""
msgid "Address"
msgstr "Адрес"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3219,15 +3277,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3265,7 +3323,7 @@ msgstr ""
#: plinth/modules/minidlna/views.py:38
msgid "Updated media directory"
-msgstr ""
+msgstr "Медийният каталог е обновен"
#: plinth/modules/mumble/__init__.py:25
msgid ""
@@ -3280,11 +3338,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3326,15 +3384,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
-msgstr "Паролата на суперпотребителя е обновена."
+msgstr "Паролата на суперпотребителя е променена."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr "Паролата за присъединяване е променена"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3367,27 +3425,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3907,7 +3960,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3927,13 +3980,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3954,7 +4007,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Редактиране на връзката"
@@ -3964,13 +4017,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4153,245 +4206,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Връзката не може да бъде променена: връзката не е намерена."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4406,20 +4455,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4527,15 +4576,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4641,36 +4690,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4687,7 +4736,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Наблюдение на системата"
@@ -4765,21 +4814,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4803,11 +4853,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4832,12 +4882,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Календар и адресна книга"
@@ -4900,7 +4950,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Правата за достъп са променени"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4908,7 +4958,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4917,7 +4967,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4927,7 +4977,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4945,6 +4995,42 @@ msgstr ""
"страницата за вход и потребителите могат да четат и изпращат писма само от "
"тази страница {box_name}."
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Ако е отметнато, достъп до RSS-Bridge ще има всеки "
+"потребител, принадлежащ към групата feed-reader."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4976,15 +5062,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -5104,15 +5190,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5142,7 +5228,7 @@ msgstr ""
#: plinth/modules/security/forms.py:13
msgid "Restrict console logins (recommended)"
-msgstr "Ограничаване на входа през конзолата (препоръчително)"
+msgstr "Ограничаване на влизането през конзолата (препоръчително)"
#: plinth/modules/security/forms.py:14
msgid ""
@@ -5156,7 +5242,7 @@ msgstr ""
#: plinth/modules/security/forms.py:19
msgid "Fail2Ban (recommended)"
-msgstr ""
+msgstr "Fail2Ban (препоръчано)"
#: plinth/modules/security/forms.py:20
msgid ""
@@ -5164,8 +5250,8 @@ msgid ""
"attempts to the SSH server and other enabled password protected internet-"
"services."
msgstr ""
-"Когато е отметнато, Fail2Ban ще ограничи опитите за проникване с груба сила "
-"в сървъра на SSH и други разрешени мрежови услуги, защитени с парола."
+"Когато е отметнато, Fail2Ban ще ограничава опитите за проникване с груба "
+"сила в сървъра на SSH и други разрешени мрежови услуги, защитени с парола."
#: plinth/modules/security/templates/security.html:12
#: plinth/modules/security/templates/security.html:14
@@ -5205,7 +5291,7 @@ msgstr ""
"сътрудници на Дебиан и общността на %(box_name)s."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Доклад за сигурността"
@@ -5215,6 +5301,9 @@ msgid ""
"There are %(count)s reported security vulnerabilities in the FreedomBox app, "
"which provides the core services and user interface for a FreedomBox server."
msgstr ""
+"Има %(count)s известни уязвимости в сигурността на приложението FreedomBox, "
+"което предоставя основните услуги и потребителски интерфейс на сървъра на "
+"FreedomBox."
#: plinth/modules/security/templates/security_report.html:19
msgid ""
@@ -5223,6 +5312,10 @@ msgid ""
"vulnerabilities can be found on the Debian Security Bug Tracker."
msgstr ""
+"В таблицата е посочен актуалният брой на известните уязвимости в сигурността "
+"за всяко инсталирано приложение. Повече информация за уязвимостите можете да "
+"намерите в системата за проследяване на дефекти на екипа за сигурност на Дебиан."
#: plinth/modules/security/templates/security_report.html:28
msgid ""
@@ -5230,6 +5323,9 @@ msgid ""
"sandboxing features are in use. Sandboxing mitigates the impact of a "
"potentially compromised app to the rest of the system."
msgstr ""
+"За приложения, които предоставят услуги, колоната „Пясъчник“ показва дали се "
+"използват функциите му. Той намалява въздействието на потенциално "
+"компрометирано приложение върху останалата част от системата."
#: plinth/modules/security/templates/security_report.html:35
msgid ""
@@ -5237,47 +5333,50 @@ msgid ""
"from the rest of the system. It is only displayed while the service is "
"running."
msgstr ""
+"„Покритие на пясъчника“ е оценка на ефективността на изолацията на услугата "
+"от останалата част на системата. Тя се показва само докато услугата е "
+"включена."
#: plinth/modules/security/templates/security_report.html:45
msgid "App Name"
-msgstr ""
+msgstr "Име на приложението"
#: plinth/modules/security/templates/security_report.html:46
msgid "Current Vulnerabilities"
-msgstr ""
+msgstr "Текущи уязвимости"
#: plinth/modules/security/templates/security_report.html:47
msgid "Sandboxed"
-msgstr ""
+msgstr "Пясъчник"
#: plinth/modules/security/templates/security_report.html:48
msgid "Sandbox Coverage"
-msgstr ""
+msgstr "Покритие на пясъчника"
#: plinth/modules/security/templates/security_report.html:58
msgid "N/A"
-msgstr ""
+msgstr "Н/Д"
#: plinth/modules/security/templates/security_report.html:60
msgid "Yes"
-msgstr ""
+msgstr "Да"
#: plinth/modules/security/templates/security_report.html:62
msgid "No"
-msgstr ""
+msgstr "Не"
#: plinth/modules/security/templates/security_report.html:69
msgid "Not running"
-msgstr ""
+msgstr "Изключено"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
-msgstr ""
+msgstr "Грешка при настройка на ограничения достъп: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
-msgstr ""
+msgstr "Настройките за сигурност са променени"
#: plinth/modules/shaarli/__init__.py:18
msgid "Shaarli allows you to save and share bookmarks."
@@ -5289,11 +5388,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5323,11 +5422,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5356,14 +5455,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5411,28 +5510,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5572,7 +5671,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5620,53 +5719,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
-msgstr ""
+msgstr "Настройките на моментните снимки на хранилището са променени"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5678,7 +5777,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5719,7 +5818,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5739,104 +5838,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5970,16 +6069,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6001,40 +6100,40 @@ msgstr ""
"На {box_name} е достъпен порт на Tor SOCKS за вътрешни мрежи на порт 9050 от "
"TCP."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6044,15 +6143,11 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6063,22 +6158,22 @@ msgstr ""
"на интернет услуги (ISP) възпрепятства или цензурира връзките с мрежата на "
"Tor. По този начин ще изключите режимите на ретранслация."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, fuzzy, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6086,11 +6181,11 @@ msgid ""
"download bandwidth."
msgstr "Когато е отментато, на {box_name} ще работи"
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
#, fuzzy
msgid ""
"When enabled, relay information is published in the Tor bridge database "
@@ -6098,11 +6193,11 @@ msgid ""
"This helps others circumvent censorship."
msgstr "Когато е отметнато,"
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6110,11 +6205,11 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6124,7 +6219,7 @@ msgstr ""
"изтеглян през мрежата на Tor. По този начин се увеличава степента на "
"поверителност на личния живот и сигурност при изтегляне."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6136,21 +6231,25 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Настройките не са променени"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "Updated security configuration"
+msgid "Updating configuration"
+msgstr "Настройките за сигурност са променени"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Грешка при инсталиране на приложението: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6202,7 +6301,7 @@ msgstr ""
"След приключване на изтеглянето, имате достъп до файловете си и като "
"използвате приложението Споделяне."
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6229,15 +6328,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Четец на абонаменти за новини"
@@ -6260,33 +6355,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Обновяване на софтуера"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox е обновен"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "Обновяването на дистрибуцията не може да бъде стартирано"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6360,7 +6455,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:9
#, python-format
msgid "%(box_name)s updated"
-msgstr ""
+msgstr "Устройството %(box_name)s е обновено"
#: plinth/modules/upgrades/templates/upgrades-new-release.html:13
#, python-format
@@ -6368,9 +6463,12 @@ msgid ""
"%(box_name)s has been updated to version %(version)s. See the release announcement."
msgstr ""
+"Устройството %(box_name)s е обновено до %(version)s. Прочетете съобщението към изданието."
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6433,39 +6531,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Could not start distribution update"
+msgid "Test Distribution Upgrade"
+msgstr "Обновяването на дистрибуцията не може да бъде стартирано"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Could not start distribution update"
+msgid "Test distribution upgrade now"
+msgstr "Обновяването на дистрибуцията не може да бъде стартирано"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Честото обновяване на възможности е включено."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Could not start distribution update"
+msgid "Starting distribution upgrade test."
+msgstr "Обновяването на дистрибуцията не може да бъде стартирано"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6489,15 +6611,15 @@ msgstr ""
"администратори могат да променят приложенията и настройките на "
"системата."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Потребители и групи"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Достъп до всички услуги и системни настройки"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Проверете записа на LDAP „{search_item}“"
@@ -6720,7 +6842,7 @@ msgstr "Потребителят %(username)s е създаден."
#: plinth/modules/users/views.py:76
#, python-format
msgid "User %(username)s updated."
-msgstr "Потребителят %(username)s е обновен."
+msgstr "Потребителят %(username)s е променен."
#: plinth/modules/users/views.py:77
msgid "Edit User"
@@ -7006,7 +7128,7 @@ msgstr ""
#: plinth/modules/wireguard/views.py:93
msgid "Updated client."
-msgstr ""
+msgstr "Настройките на клиентското приложение са променени."
#: plinth/modules/wireguard/views.py:98
msgid "Modify Client"
@@ -7034,7 +7156,7 @@ msgstr ""
#: plinth/modules/wireguard/views.py:191
msgid "Updated server."
-msgstr ""
+msgstr "Настройките на сървъра са променени."
#: plinth/modules/wireguard/views.py:196
msgid "Modify Connection to Server"
@@ -7080,12 +7202,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -7120,11 +7242,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7160,37 +7282,133 @@ msgstr "PPPoE"
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Грешка при задаване на името на хоста: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr "Пакетът „{expression}“ е недостъпен за инсталиране"
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr ""
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Грешка при създаване на резервно копие"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Инсталиране на приложения"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Грешка при инсталиране на приложението: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Грешка при инсталиране на приложението: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Грешка при инсталиране на приложението: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Грешка при инсталиране на приложението: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Приложението е инсталирано."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Последно обновяване"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Инсталиране на приложения"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Грешка при инсталиране на приложението: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Грешка при инсталиране на приложението: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Приложението е инсталирано."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7233,7 +7451,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Услугата %(service_name)s не работи."
@@ -7476,6 +7694,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Приложението е инсталирано."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7485,55 +7707,72 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
-msgstr ""
+msgstr "В момента това приложение не е налично в дистрибуцията."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Повторна проверка"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
+"Конфликтни пакети: Някои пакети, инсталирани в системата, "
+"са в конфликт с инсталирането на това приложение. Ако продължите, следните "
+"пакети ще бъдат премахнати:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
-msgstr ""
+msgstr "Инсталиране"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
+msgstr "Обновяване"
+
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Инсталиране"
+
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Променяне на потребителя %(username)s"
+
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Настройките не са променени"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr ""
-
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
-msgstr ""
+msgstr "Гуджарати"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "В момента настройките на Тор се обновяват"
+
+#~ msgid "WebRTC server"
+#~ msgstr "Услуга на WebRTC"
#~ msgid "Server URL"
#~ msgstr "Адрес на сървъра"
diff --git a/plinth/locale/bn/LC_MESSAGES/django.po b/plinth/locale/bn/LC_MESSAGES/django.po
index 606af2aab..dc317b130 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-06-16 07:33+0000\n"
"Last-Translator: Oymate \n"
"Language-Team: Bengali any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1115,7 +1098,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "কনফিগার"
@@ -1193,43 +1176,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1249,11 +1254,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1275,11 +1280,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1316,17 +1321,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "বন্যা"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1345,55 +1350,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "কারণ নির্ণয়"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1441,7 +1446,7 @@ msgstr "পরীক্ষা"
msgid "Result"
msgstr "ফলাফল"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1472,11 +1477,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1586,13 +1591,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1664,12 +1670,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ইজ্যাবার্ড"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1764,7 +1770,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1809,21 +1815,21 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr ""
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Enabled"
msgid "My Email Aliases"
msgstr "সক্রিয়"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Enabled"
msgid "Manage Aliases for Mailbox"
@@ -1863,7 +1869,7 @@ msgstr ""
msgid "Aliases"
msgstr "সক্রিয়"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -1948,7 +1954,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "ফায়ারওয়্যাল"
@@ -2085,15 +2091,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2189,54 +2195,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "নির্দেশিকা"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "সম্পর্কে"
@@ -2339,6 +2345,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2445,16 +2486,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2479,19 +2520,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2544,15 +2585,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ইকিউইকি"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2590,8 +2631,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2606,32 +2647,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2648,11 +2689,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "ইফিনোটেড"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2671,25 +2712,25 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
msgstr ""
#: plinth/modules/janus/manifest.py:7
@@ -2702,17 +2743,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2856,7 +2897,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2888,8 +2929,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "পছন্দসমূহ"
@@ -2960,12 +3001,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3028,39 +3069,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr ""
@@ -3073,11 +3114,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "মাইনটেস্ট"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3122,7 +3163,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3133,15 +3174,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3194,11 +3235,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3240,15 +3281,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3281,27 +3322,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3821,7 +3857,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3841,13 +3877,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3868,7 +3904,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3878,13 +3914,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4067,245 +4103,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4320,20 +4352,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4441,15 +4473,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4555,36 +4587,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4601,7 +4633,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4673,21 +4705,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4711,11 +4744,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4740,12 +4773,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4808,7 +4841,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4816,7 +4849,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4825,7 +4858,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4835,7 +4868,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4850,6 +4883,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4881,15 +4948,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -5011,15 +5078,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5100,7 +5167,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5165,12 +5232,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5184,11 +5251,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5218,11 +5285,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5251,14 +5318,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5306,28 +5373,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5467,7 +5534,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5515,53 +5582,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5573,7 +5640,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5614,7 +5681,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5634,104 +5701,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5865,16 +5932,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5894,40 +5961,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -5937,37 +6004,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -5975,22 +6038,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -5998,18 +6061,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6021,20 +6084,23 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "Configuration"
+msgid "Updating configuration"
+msgstr "পছন্দসমূহ"
+
+#: plinth/modules/tor/views.py:72
+#, python-brace-format
+msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/transmission/__init__.py:23
@@ -6079,7 +6145,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6104,15 +6170,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6133,33 +6195,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6237,6 +6299,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6292,39 +6355,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6340,15 +6421,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -6913,12 +6994,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -6953,11 +7034,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -6991,37 +7072,114 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr ""
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr ""
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr ""
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr ""
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+msgid "Uninstalling app"
+msgstr ""
+
+#: plinth/setup.py:122
+#, python-brace-format
+msgid "Error uninstalling app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:128
+#, python-brace-format
+msgid "Error uninstalling app: {error}"
+msgstr ""
+
+#: plinth/setup.py:131
+msgid "App uninstalled."
+msgstr ""
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7064,7 +7222,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7309,6 +7467,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr ""
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7318,50 +7480,55 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+msgid "Uninstall"
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
diff --git a/plinth/locale/cs/LC_MESSAGES/django.po b/plinth/locale/cs/LC_MESSAGES/django.po
index 8a7287064..d2bdd40b9 100644
--- a/plinth/locale/cs/LC_MESSAGES/django.po
+++ b/plinth/locale/cs/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
-"PO-Revision-Date: 2022-06-25 00:20+0000\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
+"PO-Revision-Date: 2022-08-20 15:15+0000\n"
"Last-Translator: Jiří Podhorecký \n"
"Language-Team: Czech \n"
@@ -17,13 +17,13 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.13.1-dev\n"
+"X-Generator: Weblate 4.14-dev\n"
#: doc/dev/_templates/layout.html:11
msgid "Page source"
msgstr "Zdrojový kód stránky"
-#: plinth/context_processors.py:23 plinth/views.py:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr "FreedomBox"
@@ -53,10 +53,24 @@ msgid "Cannot connect to {host}:{port}"
msgstr "Nedaří se připojit k {host}:{port}"
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+#, fuzzy
+#| msgid "Repository not found"
+msgid "Repository to backup to"
+msgstr "Repozitář nenalezen"
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr "Vyberte doménový název který použít pro tuto aplikaci"
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
@@ -64,12 +78,12 @@ msgstr ""
"Varování! Pokud později změníte doménový název, může se stát, že aplikace "
"nebude správně fungovat."
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr "TLS doména"
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
@@ -78,41 +92,27 @@ msgstr ""
"Vyberte doménu, se kterou chcete používat TLS. Pokud je seznam prázdný, "
"nakonfigurujte alespoň jednu doménu s certifikáty."
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr "Jazyk"
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr "Jazyk pro toto webové rozhraní"
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr "Použít upřednostňovaný jazyk nastavený ve webovém prohlížeči"
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr "Aplikace nainstalována."
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr "Chyba při instalaci aplikace: {string} {details}"
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr "Chyba při instalaci aplikace: {error}"
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr "Apache HTTP Server"
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr "Webový server"
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr "Webové rozhraní {box_name} (Plinth)"
@@ -143,11 +143,11 @@ msgstr ""
"nutné a funguje pouze na vnitřních sítích. Je možné ho vypnout a posílit tak "
"zabezpečení, hlavně v případě připojení na hostilní místní síť."
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr "Zjišťování služby"
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr "Doména místní sítě"
@@ -155,12 +155,12 @@ msgstr "Doména místní sítě"
msgid "Backups allows creating and managing backup archives."
msgstr "Zálohy umožňují vytváření a správu zálohových archivů."
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr "Zálohy"
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
@@ -168,18 +168,18 @@ msgstr ""
"Povolit automatický plán zálohování pro bezpečnost dat. Upřednostněte "
"šifrované vzdálené umístění zálohování nebo další připojený disk."
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr "Povolení plánu zálohování"
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr "Jít na {app_name}"
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
@@ -188,7 +188,7 @@ msgstr ""
"Naplánované zálohování se nezdařilo. Minulé pokusy o zálohování s počtem "
"chyb {error_count} nebyly úspěšné. Poslední chyba je: {error_message}"
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr "Chyba při zálohování"
@@ -274,7 +274,7 @@ msgstr "Repozitář"
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr "Název"
@@ -439,7 +439,7 @@ msgid "{box_name} storage"
msgstr "Úložiště {box_name}"
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr "Vytvořit novou zálohu"
@@ -491,7 +491,7 @@ msgid "Create Location"
msgstr "Vytvořit umístění"
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr "Vytvořit repozitář"
@@ -548,7 +548,7 @@ msgstr "Stáhnout"
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr "Obnovit"
@@ -649,99 +649,99 @@ msgstr ""
msgid "Verify Host"
msgstr "Ověřit stroj"
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr "Plán zálohování aktualizován."
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr "Plánování záloh"
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr "Archiv vytvořen."
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr "Smazat archiv"
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr "Archiv smazán."
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr "Nahrát zálohu a obnovit z ní"
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr "Soubory obnovené ze zálohy."
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr "Nebyl nalezen žádný soubor se zálohou."
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr "Obnovit z nahraného souboru"
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr "Nejsou k dispozici žádná další úložiště pro přidání repozitáře."
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr "Vytvořit repozitář pro zálohy"
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr "Vytvořit repozitář pro zálohy na protějšku"
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr "Přidán nový vzdálený SSH repozitář."
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr "Ověřit SSH klíč stroje"
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr "SSH stroj už je ověřen."
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr "SSH stroj ověřen."
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr "Veřejný klíč SSH stroje se nepodařilo ověřit."
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr "Ověření vůči vzdálenému serveru se nezdařilo."
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr "Chyba při navazování spojení se serverem: {}"
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr "Repozitář odstraněn."
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr "Odebrat repozitář"
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr "Repozitář odebrán. Zálohy jako takové smazány nebyly."
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr "Odpojení se nezdařilo!"
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr "Připojení (mount) se nezdařilo"
@@ -779,39 +779,39 @@ msgstr ""
"různým osobám nebo skupinám. To vám umožní později odebrat přístup jedné "
"osobě nebo skupině tím, že její heslo odstraníte ze seznamu."
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr "Čtení souboru, pokud je k dispozici webový odkaz na soubor"
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr "Vytváření nebo nahrávání souborů"
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr "Seznam všech souborů a jejich webových odkazů"
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr "Smazat soubory"
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr "Správa souborů: uzamčení/odemčení souborů"
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr "Žádné, vždy je vyžadováno heslo"
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr "Seznam a čtení všech souborů"
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr "bepasty"
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr "Sdílení souborů a útržků"
@@ -903,16 +903,15 @@ msgstr "Smazat"
msgid "Admin"
msgstr "správce"
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr "Nastavení aktualizována."
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr "Při nastavování se vyskytla chyba."
@@ -947,11 +946,11 @@ msgstr ""
"ostatních strojů na místní síti. Není také slučitelný se sdílením připojení "
"k Internetu přes {box_name}."
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr "BIND"
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr "Doménový jmenný server"
@@ -1004,12 +1003,12 @@ msgstr "IP adresy"
msgid "Refresh IP address and domains"
msgstr "Obnovení IP adresy a domén"
-#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
-#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -1050,15 +1049,15 @@ msgstr ""
"K aplikaci budou mít přístup pouze uživatelé patřící do skupiny calibre"
"em>. Všichni uživatelé s přístupem mohou používat všechny knihovny."
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "Použití knihoven e-knih Calibre"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "Knihovna e-knih"
@@ -1122,25 +1121,25 @@ msgstr "Přejít do knihovny %(library)s"
msgid "Delete library %(library)s"
msgstr "Smazat knihovnu %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "Knihovna vytvořena."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "Při vytváření knihovny došlo k chybě."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} smazáno."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "{name} se nepodařilo smazat: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1153,7 +1152,7 @@ msgstr ""
"pokročilých funkcí, které obvykle nejsou potřeba. Je také k dispozici webový "
"terminál pro operace na příkazovém řádku."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1165,7 +1164,7 @@ msgstr ""
"vlastních portů brány firewall a pokročilému síťování, jako je bonding, "
"přemostění a správa VLAN."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1174,33 +1173,16 @@ msgstr ""
"Přístup k němu má každý uživatel na {box_name} "
"patřící do skupiny admin."
-#: plinth/modules/cockpit/__init__.py:40
-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 vyžaduje přístup prostřednictvím názvu domény. Při přístupu pomocí "
-"IP adresy jako součásti adresy URL nebude fungovat."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Správa serveru"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Přístup"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-"Cockpit bude fungovat pouze při přístupu pomocí následujících adres URL."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1215,7 +1197,7 @@ msgstr "Obecná nastavení"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Nastavit"
@@ -1309,43 +1291,67 @@ msgstr "Zobrazit pokročilé aplikace a funkce"
msgid "Show apps and features that require more technical knowledge."
msgstr "Zobrazit aplikace a funkce, které vyžadují techničtější znalosti."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr "Celosystémové protokolování"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr "Zakázat protokolování kvůli ochraně soukromí"
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr "Některé z nich ponechat v paměti až do restartu kvůli výkonu"
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr "Zápis na disk, užitečné pro ladění"
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+"Protokoly obsahují informace o tom, kdo přistupoval k systému, a informace o "
+"ladění různých služeb"
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Chyba při nastavování názvu stroje: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Nastavení názvu stroje"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Chyba při nastavování doménového názvu: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Nastavení doménového názvu"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Chyba při nastavování domovské stránky webového serveru: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Nastavení domovské stránky webového serveru"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Chyba při změně pokročilého režimu: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Jsou zobrazovány pokročilé aplikace a funkce"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Jsou skryté pokročilé aplikace a funkce"
@@ -1372,11 +1378,11 @@ msgstr ""
"\"{ms_url}\">Matrix Synapse nebo ejabberd je "
"třeba nakonfigurovat pomocí zde uvedených údajů."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "Pomocník VoIP"
@@ -1400,11 +1406,11 @@ msgstr ""
"Server síťového času je program který udržuje systémový čas synchronní se "
"servery na Internetu."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Datum a čas"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Čas synchronizován s NTP serverem"
@@ -1446,17 +1452,17 @@ msgstr ""
"Výchozí heslo je \"deluge\", ale měli byste se přihlásit a změnit ho ihned "
"po povolení této služby."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Stahovat soubory pomocí BitTorrent aplikací"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "Webový klient sítě BitTorrent"
@@ -1477,48 +1483,48 @@ msgstr ""
"a služby fungují tak, jak mají."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnostika"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "prošlo"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "selhalo"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "chyba"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "varování"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr "Měli byste zakázat některé aplikace, abyste snížili využití paměti."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Do tohoto systému byste neměli instalovat žádné nové aplikace."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1527,7 +1533,7 @@ msgstr ""
"Systém má málo paměti: {percent_used}% využité, {memory_available} "
"{memory_available_unit} volné. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Málo paměti"
@@ -1577,7 +1583,7 @@ msgstr "Vyzkoušet"
msgid "Result"
msgstr "Výsledek"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Diagnostické testy"
@@ -1622,11 +1628,11 @@ msgstr ""
"aktualizaci URL na adrese freedns.afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Klient dynamické DNS"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Název dynamické domény"
@@ -1755,13 +1761,14 @@ msgid "This field is required."
msgstr "Toto pole je povinné."
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1843,12 +1850,12 @@ msgstr ""
"aplikaci Coturn nebo nakonfigurujte externí "
"server."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Chat server"
@@ -1957,7 +1964,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2023,19 +2030,19 @@ msgstr ""
"Během instalace budou odinstalovány všechny ostatní e-mailové servery v "
"systému."
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr "Postfix / Dovecot"
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "E-mailový Server"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr "Moje e-mailové aliasy"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr "Správa aliasů pro poštovní schránku"
@@ -2071,7 +2078,7 @@ msgstr "Nemůže být číslo"
msgid "Aliases"
msgstr "Aliasy"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2157,7 +2164,7 @@ msgstr ""
"provoz na vašem {box_name}. Zapnutá a správně nastavená brána firewall "
"snižuje riziko bezpečnostních hrozeb z Internetu."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Brána firewall"
@@ -2318,15 +2325,15 @@ msgstr ""
"Více o Git se dozvíte navštívením výuky Gitu."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Přístup do Git repozitářů pro čtení a zápis"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Jednoduché hostování Git"
@@ -2422,54 +2429,54 @@ msgstr "Smazat Git repozitář %(name)s"
msgid "Delete this repository permanently?"
msgstr "Nevratně smazat tento repozitář?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Repozitář vytvořen."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Při vytváření úložiště došlo k chybě."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Repozitář upraven."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Upravit repozitář"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Dokumentace"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Příručka"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Získejte podporu"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Odeslat zpětnou vazbu"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Zapojit se"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "O projektu"
@@ -2603,6 +2610,43 @@ msgstr ""
msgid "Learn more..."
msgstr "Zjistit více…"
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr "Jak mohu pomoci?"
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+"Níže je uveden seznam možností, jak přispět do Debianu. Byl filtrován tak, "
+"aby zobrazoval pouze balíčky, které jsou nainstalovány v tomto systému."
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr "Zobrazit problémy"
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr "Balíčky, které budou odstraněny z testování Debianu"
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr "zdrojový balíček:"
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr "Balíčky, které nejsou v testování Debianu"
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr "Dobré první problémy pro začátečníky"
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr "Problémy, pro které správce balíčku požádal o pomoc"
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2743,16 +2787,16 @@ msgstr ""
"Před odesláním hlášení chyby odeberte ze záznamů událostí veškerá hesla a "
"ostatní osobní údaje."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Dokumentace a často kladené dotazy"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "O {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "Příručka k {box_name}"
@@ -2784,19 +2828,19 @@ msgid ""
msgstr ""
"První navštívení poskytovaného webového rozhraní spustí proces nastavení."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "Spravovat aplikaci I2P"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Anonymní síť"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "I2P proxy"
@@ -2864,15 +2908,15 @@ msgstr ""
"může upravovat ty stávající. V Nastavení "
"uživatele můžete tato oprávnění změnit nebo přidat nové uživatele."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "wiki a blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Zobrazit a upravit wiki aplikace"
@@ -2910,8 +2954,8 @@ msgstr "Smazat stránku %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Aktualizovat nastavení"
@@ -2928,32 +2972,32 @@ msgstr ""
"Tato akce odebere veškeré příspěvky, stránky a komentáře včetně historie "
"verzí. Opravdu chcete nenávratně smazat tuto wiki/blog?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Wiki {name} vytvořena."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Wiki se nepodařilo vytvořit: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Blog {name} vytvořen."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Blog se nepodařilo vytvořit: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} dsmazáno."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "{title} se nepodařilo smazat: {error}"
@@ -2974,11 +3018,11 @@ msgstr ""
"desktopového klienta a nainstalujte ho. Poté spusťte Gobby a zvolte "
"„Připojit k serveru“ a zadejte doménový název svého {box_name}."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Gobby server"
@@ -2999,27 +3043,27 @@ msgstr ""
"Spusťte Goggy a zvolte „Připojit k serveru“ a zadejte doménový název svého "
"{box_name}."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr "Janus je odlehčený server WebRTC."
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr "Součástí je jednoduchá videokonferenční místnost."
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
"Coturn je vyžadován pro použití systému Janus."
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr "Janus"
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
-msgstr "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr "Video Room"
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3031,7 +3075,7 @@ msgstr "Janus Video Room"
msgid "JavaScript license information"
msgstr "Licenční informace o JavaScriptu"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3039,11 +3083,11 @@ msgstr ""
"JSXC je webový klient pro XMPP. Typicky je používaný s lokálně provozovaným "
"XMPP serverem."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Chatovací klient"
@@ -3210,7 +3254,7 @@ msgstr ""
"Nainstalujte aplikaci Coturn nebo "
"nakonfigurujte externí server."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3248,8 +3292,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Nastavení"
@@ -3352,12 +3396,12 @@ msgstr ""
"Kdokoli kdo má odkaz na tuto wiki ji může číst. Měnit obsah mohou pouze "
"uživatelé, kteří jsou přihlášení."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3430,39 +3474,39 @@ msgstr ""
"Vyberte výchozí vzhled pro instalaci MediaWiki. Uživatelé mají možnost "
"vybrat si preferovaný vzhled."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Heslo aktualizováno"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr "Aktualizace hesla se nezdařila. Zvolte prosím silnější heslo"
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Registrace pro veřejnost otevřené"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Registrace pro veřejnost zavřené"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Soukromý režim zapnut"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Soukromý režim vypnut"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Změna výchozího vzhledu"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr "Nastavení doménového názvu aktualizováno"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr "Název webu aktualizován"
@@ -3479,11 +3523,11 @@ msgstr ""
"serveru je třeba Minetest "
"klient."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Pískoviště s kostkami"
@@ -3532,7 +3576,7 @@ msgstr "Pokud je vypnuto, postavy hráčů nemohou zemřít nebo se zranit."
msgid "Address"
msgstr "Adresa"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3550,15 +3594,15 @@ msgstr ""
"televizory a herní systémy (například PS3 a Xbox 360) nebo aplikace, jako "
"jsou totem a Kodi."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Server pro streamování médií"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Simple Media Server"
@@ -3621,11 +3665,11 @@ msgstr ""
"dispozici jsou Klienti pro připojení k "
"Mumble z vašeho počítače a mobilních zařízení."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Hlasový chat"
@@ -3673,15 +3717,15 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "Heslo SuperUser bylo úspěšně aktualizováno."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr "Heslo pro připojení změněno"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr "Změna názvu kořenového kanálu."
@@ -3718,7 +3762,7 @@ msgstr "Zabezpečený shell"
msgid "Services"
msgstr "Služby"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3726,7 +3770,7 @@ msgstr ""
"Nastavit síťová zařízení. Připojit k Internetu přes ethernet, WiFi nebo "
"PPPoE. Sdílet toto připojení s ostatními zařízeními na síti."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3734,15 +3778,10 @@ msgstr ""
"Zařízení spravovaná jinými metodami zde nemusí být k dispozici pro "
"konfiguraci."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Sítě"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "S použitím DNSSEC na IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Typ připojení"
@@ -4354,7 +4393,7 @@ msgid "Create Connection"
msgstr "Vytvořit připojení"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Smazat připojení"
@@ -4374,13 +4413,13 @@ msgstr "Mezery"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4401,7 +4440,7 @@ msgid "Computer"
msgstr "Počítač"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Upravit připojení"
@@ -4411,13 +4450,13 @@ msgstr "Připojení"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Wi-Fi sítě poblíž"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Přidat připojení"
@@ -4642,247 +4681,243 @@ msgstr ""
"směrovače a vyhledejte na internetu jeho příručku. Ten vám poskytne úplné "
"pokyny k provedení tohoto úkolu."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "vypnuto"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "automaticky"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "příručka"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "sdílené"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr "link-local"
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "neznámý"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "nespravované"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "nedostupné"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "odpojeno"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "příprava"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "připojení"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "potřebuje ověření"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "vyžadující adresu"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "kontrola"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr "čekání na sekundární"
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "aktivováno"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "deaktivace"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "bez důvodu"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "neznámá chyba"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "zařízení je nyní spravováno"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "zařízení je nyní bez správy"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "konfigurace selhala"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr "požadovaná tajemství"
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "Klienta DHCP se nepodařilo spustit"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "Chyba klienta DHCP"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "Klient DHCP selhal"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr "nepodařilo se spustit službu sdíleného připojení"
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "služba sdíleného připojení selhala"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "zařízení bylo odstraněno"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "zařízení odpojené uživatelem"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr "selhala závislost připojení"
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "Síť Wi-Fi nebyla nalezena"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "selhalo sekundární připojení"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr "aktivace nového spojení byla zařazena do fronty"
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "byla zjištěna duplicitní IP adresa"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "vybraná metoda IP není podporována"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "obecný"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "Rozhraní TUN nebo TAP"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad-hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "Infrastruktura"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "přístupový bod"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "bod sítě"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Síťová připojení"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Připojení nelze zobrazit: Připojení neexistuje."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Informace o spojení"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Připojení nelze upravit: Připojení neexistuje."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Tento typ připojení ještě není podporován."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "Připojení {name} aktivováno."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Aktivace připojení se nezdařila: Připojení nenalezeno."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"Nepodařilo se aktivovat připojení {name}: Není k dispozici žádné použitelné "
"zařízení."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Připojení {name} deaktivováno."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Deaktivace připojení se nezdařila: Připojení nenalezeno."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Přidávání nového generického připojení"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Přidávání nového ethernetového připojení"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Přidávání nového PPPoE připojení"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Přidávání nového Wi-Fi připojení"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Připojení {name} smazáno."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Smazání připojení se nezdařilo: Připojení nenalezeno."
@@ -4903,20 +4938,20 @@ msgstr ""
"zvýšení zabezpečení a anonymity je také možné přistupovat k ostatku "
"Internetu prostřednictvím {box_name}."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "Připojení ke službám VPN"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Virtuální soukromá síť"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5056,15 +5091,15 @@ msgstr ""
"pagekite, například pagekite.net. V "
"budoucnu bude možná možné k tomuto účelu použít {box_name} vašeho kamaráda."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Viditelnost na veřejnosti"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "PageKite doména"
@@ -5177,29 +5212,29 @@ msgstr ""
"kombinace protokol/port, které zde můžete určit. Například o HTTPS na portu "
"jiném, než 443 je známo, že způsobuje problémy."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Webový server (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "Stránky budou k dispozici na http://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Webový server (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "Stránky budou k dispozici na https://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Zabezpečený shell (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5208,7 +5243,7 @@ msgstr ""
"a> pro nastavení SSH klienta"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Výkon"
@@ -5230,7 +5265,7 @@ msgstr ""
"Výkonnostní metriky shromažďuje nástroj Performance Co-Pilot a lze je "
"zobrazit pomocí aplikace Cockpit."
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Monitoring systému"
@@ -5314,26 +5349,27 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Privoxy můžete použít úpravou nastavením svého webového prohlížeče na název "
-"nebo IP adresu svého {box_name} a port 8118. Při používání Privoxy si můžete "
-"prohlédnout podrobnosti nastavení a dokumentaci na http://config.privoxy.org/ nebo http://p.p."
+"nebo IP adresu svého {box_name} a port 8118. Povolena jsou pouze připojení z "
+"IP adres místní sítě. Při používání Privoxy si můžete prohlédnout "
+"podrobnosti nastavení a dokumentaci na http://config.privoxy.org/ nebo http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Webová proxy"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Přistupte {url} s proxy {proxy} na tcp{kind}"
@@ -5367,11 +5403,11 @@ msgstr ""
"\"http://quassel-irc.org/downloads\">desktopu a mobilních zařízení."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "IRC klient"
@@ -5404,12 +5440,12 @@ msgstr ""
"nových kalendářů a adresářů kontaktů. Nepodporuje přidávání událostí či "
"kontaktů, to je třeba dělat v tomu určeném klientovi."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Kalendář a adresář kontaktů"
@@ -5487,7 +5523,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Nastavení přístupových práv aktualizováno"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5500,7 +5536,7 @@ msgstr ""
"klienta, včetně podpory MIME, adresáře kontaktů, manipulace se složkami, "
"vyhledávání ve zprávách a kontrolou pravopisu."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5514,7 +5550,7 @@ msgstr ""
"protokolu IMAP přes SSL (doporučeno) vyplňte pole serveru například "
"imaps://imap.example.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5530,7 +5566,7 @@ msgstr ""
"lesssecureapps\">https://www.google.com/settings/security/lesssecureapps"
"a>)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "E-mailový klient"
@@ -5548,6 +5584,47 @@ msgstr ""
"stránky odstraněno a uživatelé mohou číst a odesílat e-maily pouze z tohoto "
"{box_name}."
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+"RSS-Bridge generuje kanály RSS a Atom pro webové stránky, které je nemají. "
+"Vygenerované kanály lze využívat v libovolné čtečce kanálů."
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Pokud je funkce RSS Bridge povolena, může k ní přistupovat každý uživatel patřící do skupiny feed-reader."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+"RSS-Bridge můžete používat s Tiny Tiny RSS pro "
+"sledování různých webových stránek. Při přidávání kanálu povolte ověřování a "
+"použijte své přihlašovací údaje {box_name}."
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Číst a přihlásit se k odběru novinek"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr "RSS-Bridge"
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr "Generátor kanálů RSS"
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5589,15 +5666,15 @@ msgstr ""
"Domácí sdílení - každý uživatel ve skupině freedombox-share může mít svůj "
"vlastní soukromý prostor."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Přístup k soukromému sdílení"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Distribuované souborové úložiště"
@@ -5732,15 +5809,15 @@ msgstr ""
"Použitím Searx je možné se vyhnout sledování a profilování vyhledávači. Ve "
"výchozím stavu neukládá žádné cookie."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Hledat na webu"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Vyhledávání na webu"
@@ -5835,7 +5912,7 @@ msgstr ""
"o ně starají přispěvatelé Debianu a komunita %(box_name)s."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Výkaz o zabezpečení"
@@ -5911,12 +5988,12 @@ msgstr "ne"
msgid "Not running"
msgstr "Neprobíhá"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Chyba při nastavování omezeného přístupu: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Nastavení zabezpečení aktualizováno"
@@ -5932,11 +6009,11 @@ msgstr ""
"Všimněte si, že Shaarli podporuje pouze jeden uživatelský účet, který je "
"třeba nastavit při první návštěvě."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Záložky"
@@ -5975,11 +6052,11 @@ msgstr ""
"Pro použití Shadowsocks po nastavení, nastavte SOCKS5 proxy URL adresu ve "
"svém zařízení, prohlížeči nebo aplikaci na http://adresa_freedombox:1080/"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Socks5 proxy"
@@ -6011,7 +6088,7 @@ msgid "Encryption method. Must match setting on server."
msgstr ""
"Metoda šifrování. Je třeba, aby byla stejná, jaká je nastavená na serveru."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6020,7 +6097,7 @@ msgstr ""
"Sdílení umožňuje sdílet soubory a složky na vašem {box_name} přes web se "
"zvolenou skupinou uživatelů."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Sdílení"
@@ -6075,28 +6152,28 @@ msgid "Shares should be either public or shared with at least one group"
msgstr ""
"Sdílení by mělo být buď veřejné, nebo sdílené alespoň s jednou skupinou."
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Přidat sdílení"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Nyní není nastavené žádné sdílení."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Popis umístění na datovém úložišti"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Sdíleno přes"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Se skupinami"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "veřejný přístup"
@@ -6255,7 +6332,7 @@ msgstr "Datum"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Smazat zachycené stavy"
@@ -6308,53 +6385,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "Vrátit k zachycenému stavu č. %(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "ručně vytvořen"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "časová osa"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Spravovat zachycené stavy"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Zachycený stav pořízen."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Nastavení zachycování stavů úložiště aktualizováno"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Chyba akce: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Označené zachycené stavy smazány"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr "Zachycený stav je používán. Zkuste to později."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "Vráceno zpět do podoby zachyceného stavu č. {number}."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "Pro dokončení obnovy ze zálohy je třeba systém restartovat."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Vrátit do podoby zachyceného stavu"
@@ -6370,7 +6447,7 @@ msgstr ""
"spojení provádět úkoly správy, kopírovat soubory nebo spouštět ostatní "
"služby."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Server zabezpečeného shellu (SSH)"
@@ -6418,7 +6495,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr "Ověřování SSH s povoleným heslem."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Sdružené přihlášení (SSO)"
@@ -6441,105 +6518,105 @@ msgstr ""
"{box_name}. Lze zobrazit úložná zařízení, která jsou využívána, připojovat a "
"odpojovat ta vyjímatelná."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Úložiště"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} bajtů"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "Operace se nezdařila."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "Operace byla zrušena."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Toto zařízení už je odpojováno (umount)."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr "Operace není podporována z důvodu chybějící podpory ovladače/nástroje."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "Časový limit aplikace překročen."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr "Operace by probudila disk který je v režimu hlubokého spánku."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Pokus o odpojení zařízení které je zaneprázdněno."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "Operace už byla zrušena."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "Chybí oprávnění pro provedení požadované operace."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Toto zařízení je už připojeno (mount)."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Zařízení není připojeno."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "Není umožněno použít požadovanou volbu."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Zařízení je připojeno jiným uživatelem."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
"Málo místa na systémovém oddílu: {percent_used}% použito, {free_space} volné."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Málo místa na disku"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "Hrozí selhání disku"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6693,16 +6770,16 @@ msgstr ""
"na {box_name} je dostupné pouze pro uživatele patřící do skupiny \"admin\" "
"nebo \"syncthing-access\"."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Spravovat aplikaci Syncthing"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Synchronizace souborů"
@@ -6729,40 +6806,40 @@ msgstr ""
"Tor SOCKS port je k dispozici na vašem {box_name} pro interní síť na TCP "
"portu 9050."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Tor Onion Service"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Tor Socks proxy"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Předávájící Tor most"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Port Tor předávání k dispozici"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3 transport zaregistrován"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4 transport zaregistrován"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Přistoupit k URL adrese {url} na tcp{kind} prostřednictvím Tor"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Potvrďte použití Tor na adrese {url} na tcp{kind}"
@@ -6772,15 +6849,11 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr "Zadejte platný most v tomto formátu: [přenos] IP:ORPort [otisk]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Zapnout Tor"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Pro připojení k Tor síti použijte nadřazené mosty"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6791,11 +6864,11 @@ msgstr ""
"(ISP) blokuje nebo cenzuruje připojení k Tor síti. Toto vypne předávací "
"režimy."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Nadřazené mosty"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6805,11 +6878,11 @@ msgstr ""
"\">https://bridges.torproject.org/ a zkopírovat informace odtud. V "
"současnosti podporované transporty jsou none, obfs3, obfs4 a scamblesuit."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Zapnout Tor předávání"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6820,11 +6893,11 @@ msgstr ""
"přenosové pásmo pro Tor síť. Toto udělejte pokud má přípojka rychlost více "
"než 2 megabity/s v obou směrech."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Zapnout předávání Tor mostu"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6834,11 +6907,11 @@ msgstr ""
"namísto veřejné databázi Tor předávání, čímž je těžší tento uzel cenzurovat. "
"Toto ostatním pomůže obcházet cenzuru."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Zapnout Tor skrytou službu"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6849,11 +6922,11 @@ msgstr ""
"nebo chat), aniž by bylo odhaleno její umístění. Pro silnou anonymitu ji "
"zatím nepoužívejte."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Stahovat balíčky software prostřednictvím sítě Tor"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6863,7 +6936,7 @@ msgstr ""
"síť Tor. To zlepší soukromí a zabezpečení při stahování software (ale je "
"pomalejší)."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Pro používání nadřazených mostů je třeba určit alespoň jeden takový."
@@ -6875,21 +6948,25 @@ msgstr "Tor prohlížeč"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: proxy s Tor"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "Nastavení Tor jsou aktualizována"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Onion služba"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Porty"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Nastavení se nezměnila"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Při nastavování se vyskytla chyba."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error updating app: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Chyba při aktualizaci aplikace: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6945,7 +7022,7 @@ msgstr ""
"Po dokončení stahování můžete k souborům přistupovat také pomocí aplikace Sdílení."
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -6976,15 +7053,11 @@ msgstr ""
"Při použití mobilní nebo desktopové aplikace pro Tiny Tiny RSS použijte pro "
"připojení adresu URL /tt-rss-app."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Číst a přihlásit se k odběru novinek"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Čtečka novinek"
@@ -7011,22 +7084,22 @@ msgstr ""
"systému považován za nezbytný, provede se automaticky ve 02:00 a způsobí, že "
"všechny aplikace budou krátce nedostupné."
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Aktualizace software"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox aktualizován"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "Nelze spustit aktualizaci distribuce"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
@@ -7036,11 +7109,11 @@ msgstr ""
"distribuce. Zajistěte, aby bylo volných alespoň 5 GB. Aktualizace distribuce "
"se bude opakovat po 24 hodinách, pokud je povolena."
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "Zahájena aktualizace distribuce"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7133,6 +7206,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Odmítnout"
@@ -7196,39 +7270,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Zobrazit protokoly posledních aktualizací"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Upgrade distribuce povoleno"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "Upgrade distribuce povoleno"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "Chyba při nastavování bezobslužných aktualizací: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Automatické aktualizace zapnuty"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Automatické aktualizace vypnuty"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "Upgrade distribuce povoleno"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Upgrade distribuce zakázáno"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Proces přechodu na novější verze zahájen."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "Spouštění přechodu na novější verzi se nezdařilo."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Aktivovány časté aktualizace funkcí."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Upgrade distribuce povoleno"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7252,15 +7350,15 @@ msgstr ""
"nebo nastavení systému však mohou měnit pouze uživatelé skupiny admin"
"em>."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Uživatelé a skupiny"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Přístup ke všem službám a nastavení systému"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Zkontrolujte LDAP položku „{search_item}“"
@@ -7887,12 +7985,12 @@ msgstr ""
"rozhraní správce. Další zásuvné moduly nebo témata lze instalovat a "
"aktualizovat na vlastní riziko."
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "Webové stránky a blog"
@@ -7942,11 +8040,11 @@ msgstr ""
"další uživatele musí být vytvořeny účty jak v {box_name}, tak v Zoph se "
"stejným uživatelským jménem."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Organizér fotografií"
@@ -7984,37 +8082,122 @@ msgstr "PPPoE"
msgid "Generic"
msgstr "Obecné"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr "Chyba: {name}: {exception_message}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr "Čeká na spuštění: {name}"
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr "Dokončeno: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr "Balíček {expression} není k dispozici pro instalaci"
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Balíček {package_name} je nejnovější verze ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Chyba při instalaci"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Chyba při zálohování"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "Instalace"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "stahování"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "změna média"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "soubor s nastaveními: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr "Časový limit čekání na správce balíčků"
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr "Instalace aplikací"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr "Aktualizace aplikací"
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr "Chyba instalace aplikace: {string} {details}"
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr "Chyba aktualizace aplikace: {string} {details}"
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr "Chyba při instalaci aplikace: {error}"
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr "Chyba při aktualizaci aplikace: {error}"
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr "Aplikace nainstalována."
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr "Aplikace aktualizována"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Installing app"
+msgid "Uninstalling app"
+msgstr "Instalace aplikací"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Chyba instalace aplikace: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Chyba při instalaci aplikace: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "App installed."
+msgid "App uninstalled."
+msgstr "Aplikace nainstalována."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr "Aktualizace balíčků aplikací"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 odepřeno"
@@ -8064,7 +8247,7 @@ msgstr ""
msgid "Installation"
msgstr "Instalace"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Služba %(service_name)s není spuštěná."
@@ -8330,6 +8513,10 @@ msgstr "Z portů směrovače/sítě LAN"
msgid "To %(box_name)s Ports"
msgstr "Na %(box_name)s Porty"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Aplikace nainstalována."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Nainstalovat tuto aplikaci?"
@@ -8339,24 +8526,16 @@ msgid "This application needs an update. Update now?"
msgstr "Tato aplikace potřebuje aktualizovat. Provést nyní?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Už je spuštěná jiná instalace nebo přechod na novější verzi. Počkejte chvíli "
-"a zkuste to znovu."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
"Tato aplikace v současnosti není dostupná v repozitářích vámi používané "
"distribuce."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Znovu zkontrolovat"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8366,36 +8545,104 @@ msgstr ""
"jsou v konfliktu s instalací této aplikace. Následující balíčky budou v "
"případě pokračování odstraněny:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Instalace"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Aktualizovat"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Provádění úkonů před instalací"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Instalace"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Provádění úkonů po instalaci"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Upravit uživatele %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Instalace %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% dokončeno"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Nastavení se nezměnila"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "gudžarátština"
+#~ msgid "Network Connections"
+#~ msgstr "Síťová připojení"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Zapnout Tor"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Nastavení Tor jsou aktualizována"
+
+#~ msgid "Error during installation"
+#~ msgstr "Chyba při instalaci"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "S použitím DNSSEC na IPv{kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Už je spuštěná jiná instalace nebo přechod na novější verzi. Počkejte "
+#~ "chvíli a zkuste to znovu."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Provádění úkonů před instalací"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Provádění úkonů po instalaci"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Instalace %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% dokončeno"
+
+#~ 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 vyžaduje přístup prostřednictvím názvu domény. Při přístupu "
+#~ "pomocí IP adresy jako součásti adresy URL nebude fungovat."
+
+#~ msgid "Access"
+#~ msgstr "Přístup"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr ""
+#~ "Cockpit bude fungovat pouze při přístupu pomocí následujících adres URL."
+
+#~ msgid "WebRTC server"
+#~ msgstr "WebRTC server"
+
#~ msgid "Server URL"
#~ msgstr "Server URL"
@@ -8832,11 +9079,6 @@ msgstr "gudžarátština"
#~ msgid "Postfix domain name config"
#~ msgstr "Chyba při nastavování doménového názvu: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Při nastavování se vyskytla chyba."
-
#, fuzzy
#~| msgid "Disabled"
#~ msgid "Disable selected"
@@ -9392,9 +9634,6 @@ msgstr "gudžarátština"
#~ msgid "Service enabled: {name}"
#~ msgstr "Služba zapnuta: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Služba vypnuta: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "PageKite účet"
@@ -9818,9 +10057,6 @@ msgstr "gudžarátština"
#~ msgid "Automatic Upgrades"
#~ msgstr "Automatické aktualizace"
-#~ msgid "Upgrade Packages"
-#~ msgstr "Aktualizovat balíčky"
-
#~ msgid "No such device - {device_path}"
#~ msgstr "Žádné takové zařízení – {device_path}"
diff --git a/plinth/locale/da/LC_MESSAGES/django.po b/plinth/locale/da/LC_MESSAGES/django.po
index 6641906b2..22367a1b7 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2022-05-10 02:10+0000\n"
"Last-Translator: ikmaak \n"
"Language-Team: Danish calibre-gruppen har adgang til appen. Alle "
"brugere med adgang kan benytte alle samlingerne."
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "Brug calibre e-bogssamlinger"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "E-bogssamling"
@@ -1133,25 +1132,25 @@ msgstr "Tilgå samlingen %(library)s"
msgid "Delete library %(library)s"
msgstr "Slet samlingen %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "Samling oprettet."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "Der opstod en fejl under oprettelse af samlingen."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} slettet."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "Kunne ikke slette {name}: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1164,7 +1163,7 @@ msgstr ""
"for mange avancerede funktioner som typisk ikke påkræves. En web-baseret "
"terminal til kørsel af konsolkommandoer er ligeledes tilgængelig."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1176,7 +1175,7 @@ msgstr ""
"brugerdefinerede porte i systemets firewall, samt avanceret "
"netværkshåndtering såsom bonding, bridging og håndtering af VLAN."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1185,32 +1184,16 @@ msgstr ""
"Det kan tilgås af enhver bruger på {box_name} "
"som tilhører administratorgruppen."
-#: plinth/modules/cockpit/__init__.py:40
-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 skal tilgås via et domænenavn. Det fungerer ikke hvis det tilgås med "
-"en IP-adresse som en del af webadressen."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Serveradministration"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Adgang"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Cockpit vil kun fungere når det tilgås gennem de følgende webadresser."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1225,7 +1208,7 @@ msgstr "Generel Konfiguration"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Konfigurer"
@@ -1318,43 +1301,67 @@ msgstr "Vis avancerede applikationer og funktionalitet"
msgid "Show apps and features that require more technical knowledge."
msgstr "Vis applikationer og funktionalitet som kræver mere teknisk viden."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Configuration"
+msgid "System-wide logging"
+msgstr "Systemkonfiguration"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Kunne ikke sætte værtsnavn: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Værtsnavn gemt"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Kunne ikke sætte domænenavn: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Domænenavn gemt"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Fejl ved indstilling af webserverens hjemmeside: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Webserverens hjemmeside er blevet indstillet"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Fejl ved skift til avanceret tilstand: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Viser avancerede applikationer og funktionalitet"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Skjuler avancerede applikationer og funktionalitet"
@@ -1383,11 +1390,11 @@ msgstr ""
"Den er ikke beregnet til at blive anvendt direkte af brugerne. Servere såsom "
"matrix-synapse skal konfigureres med detaljerne som er angivet her."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "VoIP-hjælper"
@@ -1412,11 +1419,11 @@ msgstr ""
"Netværkstidsserver er et program der holder systemets tid synkroniseret med "
"servere på internettet."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Dato & Tid"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Tid synkroniseret med NTP-server"
@@ -1457,17 +1464,17 @@ msgstr ""
"Standardkodeordet er 'deluge', men du bør logge ind og ændre det så snart du "
"har aktiveret denne tjeneste."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Download filer ved hjælp af BitTorrent-applikationer"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "BitTorrent Webklient"
@@ -1488,48 +1495,48 @@ msgstr ""
"afgøre om applikationer og tjenester virker som forventet."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnosticering"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "lykkedes"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "mislykkedes"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "fejl"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr "Du bør deaktivere nogle applikationer for at frigøre hukommelse."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Du bør ikke installere flere applikationer på dette system."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1539,7 +1546,7 @@ msgstr ""
"{memory_available} {memory_available_unit} fri{percent_used}{percent_used}. "
"{advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Lav hukommelse"
@@ -1589,7 +1596,7 @@ msgstr "Test"
msgid "Result"
msgstr "Resultat"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Diagnostisk Test"
@@ -1640,11 +1647,11 @@ msgstr ""
"datasystems24.net eller du kan få en gratis URL-baseret tjeneste på freedns.afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Dynamisk DNS Klient"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Dynamisk domænenavn"
@@ -1776,13 +1783,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1875,12 +1883,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Chatserver"
@@ -1988,7 +1996,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2036,23 +2044,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Chat Server"
msgid "Email Server"
msgstr "Chatserver"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Manage Libraries"
msgid "My Email Aliases"
msgstr "Håndter samlinger"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage Aliases for Mailbox"
@@ -2092,7 +2100,7 @@ msgstr ""
msgid "Aliases"
msgstr "Håndter samlinger"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
#, fuzzy
#| msgid "Enable Roundcube"
@@ -2186,7 +2194,7 @@ msgstr ""
"på din{box_name}. At holde en firewall aktiveret og velkonfigureret "
"reducerer risikoen for sikkerhedstrusler fra internettet."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
@@ -2346,15 +2354,15 @@ msgstr ""
"For at lære med om hvordan du bruger Git kan du besøge Git-vejledningen."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Læse- og skriveadgang til Git-repositorier"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Simpel Git-hosting"
@@ -2473,35 +2481,35 @@ msgstr "Slet Wiki eller Blog %(name)s"
msgid "Delete this repository permanently?"
msgstr "Slet bruger permanent?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
#, fuzzy
#| msgid "packages not found"
msgid "Repository created."
msgstr "pakker ikke fundet"
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "An error occurred while creating the repository."
msgstr "Der opstod en fejl under konfigurationen."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
#, fuzzy
#| msgid "packages not found"
msgid "Repository edited."
msgstr "pakker ikke fundet"
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
#, fuzzy
#| msgid "Create User"
msgid "Edit repository"
msgstr "Opret Bruger"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Dokumentation"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
#, fuzzy
#| msgid "Manual"
@@ -2509,28 +2517,28 @@ msgctxt "User guide"
msgid "Manual"
msgstr "Brugermanual"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Om"
@@ -2656,6 +2664,43 @@ msgstr ""
msgid "Learn more..."
msgstr "Lær mere »"
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+#, fuzzy
+#| msgid "Show Details"
+msgid "Show issues"
+msgstr "Vis Detaljer"
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2785,16 +2830,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Dokumentation og OSS"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "Om {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "{box_name} Brugervejledning"
@@ -2825,23 +2870,23 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
#, fuzzy
#| msgid "Enable application"
msgid "Manage I2P application"
msgstr "Aktiver applikation"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
#, fuzzy
#| msgid "Tor Anonymity Network"
msgid "Anonymity Network"
msgstr "Tor Anonymiseringstjeneste"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
#, fuzzy
#| msgid "Privoxy Web Proxy"
msgid "I2P Proxy"
@@ -2906,19 +2951,19 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
#, fuzzy
#| msgid "wiki"
msgid "ikiwiki"
msgstr "wiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
#, fuzzy
#| msgid "Wiki & Blog"
msgid "Wiki and Blog"
msgstr "Wiki & Blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
#, fuzzy
#| msgid "Services and Applications"
msgid "View and edit wiki applications"
@@ -2958,8 +3003,8 @@ msgstr "Slet sitet %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Opdater indstillinger"
@@ -2976,33 +3021,33 @@ msgstr ""
"Denne handling fjerner alle artikler, sider og kommentater inklusiv al "
"historik. Slet denne wiki eller blog permanent?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Wiki {name} oprettet."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Kunne ikke oprette wiki: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Blog {name} oprettet."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Kunne ikke oprette blog: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, fuzzy, python-brace-format
#| msgid "{name} deleted."
msgid "{title} deleted."
msgstr "{name} slettet."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, fuzzy, python-brace-format
#| msgid "Could not delete {name}: {error}"
msgid "Could not delete {title}: {error}"
@@ -3020,11 +3065,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
#, fuzzy
#| msgid "Web Server"
msgid "Gobby Server"
@@ -3045,28 +3090,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Webserver"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3078,17 +3121,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
#, fuzzy
#| msgid "IRC Client (Quassel)"
msgid "Chat Client"
@@ -3273,7 +3316,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
#, fuzzy
#| msgid "Chat Server (XMPP)"
msgid "Matrix Synapse"
@@ -3309,8 +3352,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Konfiguration"
@@ -3388,12 +3431,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3464,53 +3507,53 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
#, fuzzy
#| msgid "Password"
msgid "Password updated"
msgstr "Kodeord"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
#, fuzzy
#| msgid "Application enabled"
msgid "Public registrations enabled"
msgstr "Applikation aktiveret"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
#, fuzzy
#| msgid "Application disabled"
msgid "Public registrations disabled"
msgstr "Applikation deaktiveret"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
#, fuzzy
#| msgid "PageKite enabled"
msgid "Private mode enabled"
msgstr "PageKite aktiveret"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
#, fuzzy
#| msgid "PageKite disabled"
msgid "Private mode disabled"
msgstr "PageKite deaktiveret"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
#, fuzzy
#| msgid "Setting unchanged"
msgid "Default skin changed"
msgstr "Indstilling uændret"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "Domænenavn gemt"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3529,11 +3572,11 @@ msgstr ""
"For at forbinde til serveren skal der bruges en Minetest klient."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
#, fuzzy
#| msgid "Block Sandbox (Minetest)"
msgid "Block Sandbox"
@@ -3586,7 +3629,7 @@ msgstr ""
msgid "Address"
msgstr "Adresse"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3597,15 +3640,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
#, fuzzy
#| msgid "Mumble Voice Chat Server"
msgid "Simple Media Server"
@@ -3670,11 +3713,11 @@ msgstr ""
"Klienter til computere og Android-enheder "
"er tilgængelige."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
#, fuzzy
#| msgid "Voice Chat (Mumble)"
msgid "Voice Chat"
@@ -3726,19 +3769,19 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
#, fuzzy
#| msgid "Password changed successfully."
msgid "SuperUser password successfully updated."
msgstr "Kodeord blev ændret."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Password"
msgid "Join password changed"
msgstr "Kodeord"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3773,27 +3816,22 @@ msgstr "Secure Shell"
msgid "Services"
msgstr "Tjeneste"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Netværk"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "Bruger DNSSEC på IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Forbindelsestype"
@@ -4359,7 +4397,7 @@ msgid "Create Connection"
msgstr "Opret Forbindelse"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Slet Forbindelse"
@@ -4379,13 +4417,13 @@ msgstr "Afstand"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4406,7 +4444,7 @@ msgid "Computer"
msgstr "Computer"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Rediger Forbindelse"
@@ -4418,13 +4456,13 @@ msgstr "Forbindelse"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Wi-Fi-netværk i Nærheden"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Tilføj forbindelse"
@@ -4613,292 +4651,288 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
#, fuzzy
#| msgid "Disabled"
msgid "disabled"
msgstr "Deaktiveret"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
#, fuzzy
#| msgid "Automatic Upgrades"
msgid "automatic"
msgstr "Automatisk Opdatering"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
#, fuzzy
#| msgid "Manual"
msgid "manual"
msgstr "Brugermanual"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
#, fuzzy
#| msgid "Add Service"
msgid "shared"
msgstr "Tilføj Service"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
#, fuzzy
#| msgid "Manage"
msgid "unmanaged"
msgstr "Administrer"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
#, fuzzy
#| msgid "Available Domains"
msgid "unavailable"
msgstr "Tilgængelige Domæner"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
#, fuzzy
#| msgid "cable is connected"
msgid "disconnected"
msgstr "kabel forbundet"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
#, fuzzy
#| msgid "Enable Shaarli"
msgid "preparing"
msgstr "Aktiver Shaarli"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
#, fuzzy
#| msgid "Connection"
msgid "connecting"
msgstr "Forbindelse"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
#, fuzzy
#| msgid "Use HTTP basic authentication"
msgid "needs authentication"
msgstr "Brug basal (\"basic\") HTTP-autentifikation"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
#, fuzzy
#| msgid "Deactivate"
msgid "activated"
msgstr "Deaktiver"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
#, fuzzy
#| msgid "Deactivate"
msgid "deactivating"
msgstr "Deaktiver"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
#, fuzzy
#| msgid "State reason"
msgid "no reason"
msgstr "Tilstandsbegrundelse"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
#, fuzzy
#| msgid "repro service is not running"
msgid "device is now managed"
msgstr "repro-tjenesten er ikke aktiv"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
#, fuzzy
#| msgid "repro service is not running"
msgid "device is now unmanaged"
msgstr "repro-tjenesten er ikke aktiv"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
#, fuzzy
#| msgid "configuration file: {file}"
msgid "configuration failed"
msgstr "konfigurationsfil: {file}"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
#, fuzzy
#| msgid "{name} deleted."
msgid "DHCP client failed"
msgstr "{name} slettet."
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
#, fuzzy
#| msgid "Tor configuration is being updated"
msgid "shared connection service failed"
msgstr "Tor-konfiguration opdateres"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
#, fuzzy
#| msgid "This service already exists"
msgid "device was removed"
msgstr "Denne tjeneste eksisterer allerede"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
#, fuzzy
#| msgid "cable is connected"
msgid "device disconnected by user"
msgstr "kabel forbundet"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
#, fuzzy
#| msgid "packages not found"
msgid "Wi-Fi network not found"
msgstr "pakker ikke fundet"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "generisk"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "TUN eller TAP interface"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
#, fuzzy
#| msgid "Access"
msgid "access point"
msgstr "Adgang"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Netværksforbindelser"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Kan ikke vise forbindelse: Forbindelse ikke fundet."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Forbindelsesinformation"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Kan ikke redigere forbindelse: Forbindelse ikke fundet."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Denne type forbindelse kan ikke konfigureres herfra endnu."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "Aktiverede forbindelse {name}."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Kunne ikke aktivere forbindelse: Forbindelse ikke fundet."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"Kunne ikke aktivere forbindelse {name}: Ingen passende enhed er tilgængelig."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Deaktiverede forbindelse {name}."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Kan ikke deaktivere forbindelse: Forbindelse ikke fundet."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
#, fuzzy
#| msgid "Adding New Ethernet Connection"
msgid "Adding New Generic Connection"
msgstr "Tilføjer Ny Ethernet Forbindelse"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Tilføjer Ny Ethernet Forbindelse"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Tilføjer Ny PPPoE Forbindelse"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Tilføjer Ny Wi-Fi Forbindelse"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Slettede forbindelse {name}."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Kunne ikke slette forbindelse: Forbindelse ikke fundet."
@@ -4919,26 +4953,26 @@ msgstr ""
"af {box_name}. Du kan også tilgå resten af internettet igennem {box_name} "
"for øget sikkerhed og anonymitet."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
#, fuzzy
#| msgid "Connection Type"
msgid "Connect to VPN services"
msgstr "Forbindelsestype"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
#, fuzzy
#| msgid "OpenVPN"
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
#, fuzzy
#| msgid "Virtual Private Network (OpenVPN)"
msgid "Virtual Private Network"
msgstr "Virtuelt Privat Netværk (OpenVPN)"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5088,19 +5122,19 @@ msgstr ""
"net. I fremtiden vil det måske blive muligt at bruge din vens {box_name} "
"til dette."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
#, fuzzy
#| msgid "Pagekite"
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
#, fuzzy
#| msgid "Public Visibility (PageKite)"
msgid "Public Visibility"
msgstr "Offentlig Tilgængelighed (PageKite)"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
#, fuzzy
#| msgid "PageKite Account"
msgid "PageKite Domain"
@@ -5226,29 +5260,29 @@ msgstr ""
"her. For eksempel er HTTPS på andre porte end 443 kendt for at give "
"problemer."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Webserver (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "Siden vil være tilgængelig på http://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Webserver (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "Siden vil være tilgængelig på https://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Secure Shell (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5257,7 +5291,7 @@ msgstr ""
"\">instruktioner for opsætning af SSH-klient"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -5274,7 +5308,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
#, fuzzy
#| msgid "System Configuration"
msgid "System Monitoring"
@@ -5357,12 +5391,19 @@ msgstr ""
"internetskrald. "
#: plinth/modules/privoxy/__init__.py:28
-#, python-brace-format
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "You can use Privoxy by modifying your browser proxy settings to your "
+#| "{box_name} hostname (or IP address) with port 8118. While using Privoxy, "
+#| "you can see its configuration details and documentation at http://config.privoxy.org/ or http://p.p."
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Du anvender Privoxy ved at konfigurere din browser til at bruge en proxy-"
@@ -5371,19 +5412,19 @@ msgstr ""
"på http://config.privoxy.org/ "
"eller http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
#, fuzzy
#| msgid "Enable Privoxy"
msgid "Privoxy"
msgstr "Aktiver Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
#, fuzzy
#| msgid "Privoxy Web Proxy"
msgid "Web Proxy"
msgstr "Privoxy Webproxy"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Tilgå {url} med proxy {proxy} ved brug af tcp{kind}"
@@ -5417,11 +5458,11 @@ msgstr ""
"\">computer og mobile"
"a> enhed er tilgængelige."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
#, fuzzy
#| msgid "Quassel IRC Client"
msgid "IRC Client"
@@ -5459,12 +5500,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
#, fuzzy
#| msgid "Calendar and Addressbook (Radicale)"
msgid "Calendar and Addressbook"
@@ -5533,7 +5574,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Konfiguration opdateret"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5545,7 +5586,7 @@ msgstr ""
"du forventer af en emailklient, inklusiv MIME-understøttelse, lagring af "
"kontaktpersoner, mappe-administration, beskedsøgning og stavekontrol."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
#, fuzzy
#| msgid ""
#| "You can access Roundcube from /roundcube. "
@@ -5566,7 +5607,7 @@ msgstr ""
"example.com. Vil du bruge IMAP over SSL (hvilket anbefales) skal du "
"også angive protokollen således imaps://imap.example.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5583,7 +5624,7 @@ msgstr ""
"lesssecureapps\">https://www.google.com/settings/security/lesssecureapps"
"a>)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
#, fuzzy
#| msgid "Email Client (Roundcube)"
msgid "Email Client"
@@ -5600,6 +5641,47 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Tiny Tiny RSS will be available from /"
+#| "tt-rss path on the web server."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Når aktiveret, vil Tiny Tiny RSS være tilgængelige på stien /tt-rss på webserveren."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+#, fuzzy
+#| msgid "Bridge"
+msgid "RSS-Bridge"
+msgstr "Bro"
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5631,15 +5713,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
#, fuzzy
#| msgid "Network Time Server"
msgid "Network File Storage"
@@ -5783,15 +5865,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
#, fuzzy
#| msgid "Web Server"
msgid "Web Search"
@@ -5880,7 +5962,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
#, fuzzy
#| msgid "Security"
msgid "Security Report"
@@ -5957,13 +6039,13 @@ msgstr ""
msgid "Not running"
msgstr "er ikke aktiv"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, fuzzy, python-brace-format
#| msgid "Error setting time zone: {exception}"
msgid "Error setting restricted access: {exception}"
msgstr "Kunne ikke sætte tidszone: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
#, fuzzy
#| msgid "General Configuration"
msgid "Updated security configuration"
@@ -5987,11 +6069,11 @@ msgstr ""
"shaarli på webserveren. Bemærk at Shaarli kun understøtter en enkelt "
"brugerkonto, som skal sættes op ved det første besøg."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
#, fuzzy
#| msgid "Bookmarks (Shaarli)"
msgid "Bookmarks"
@@ -6025,11 +6107,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -6062,14 +6144,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
#, fuzzy
#| msgid "Enable Shaarli"
msgid "Sharing"
@@ -6123,32 +6205,32 @@ msgstr "Denne tjeneste eksisterer allerede"
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
#, fuzzy
#| msgid "Add Service"
msgid "Add share"
msgstr "Tilføj Service"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
#, fuzzy
#| msgid "Groups"
msgid "With Groups"
msgstr "Grupper"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -6308,7 +6390,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
#, fuzzy
#| msgid "Delete %(name)s"
msgid "Delete Snapshots"
@@ -6360,61 +6442,61 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
#, fuzzy
#| msgid "Library created."
msgid "manually created"
msgstr "Samling oprettet."
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
#, fuzzy
#| msgid "Create User"
msgid "Manage Snapshots"
msgstr "Opret Bruger"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
#, fuzzy
#| msgid "Configuration updated"
msgid "Storage snapshots configuration updated"
msgstr "Konfiguration opdateret"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Fejl under handling: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
#, fuzzy
#| msgid "Delete %(name)s"
msgid "Deleted selected snapshots"
msgstr "Slet %(name)s"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -6426,7 +6508,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Secure Shell (SSH) Server"
@@ -6473,7 +6555,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -6495,117 +6577,117 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
#, fuzzy
#| msgid "reStore"
msgid "Storage"
msgstr "reStore"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, fuzzy, python-brace-format
#| msgid "{disk_size} bytes"
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size} bytes"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, fuzzy, python-brace-format
#| msgid "{disk_size} KiB"
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, fuzzy, python-brace-format
#| msgid "{disk_size} MiB"
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, fuzzy, python-brace-format
#| msgid "{disk_size} GiB"
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, fuzzy, python-brace-format
#| msgid "{disk_size} TiB"
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
#, fuzzy
#| msgid "repro service is running"
msgid "The device is already unmounting."
msgstr "repro-tjenesten er aktiv"
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
#, fuzzy
#| msgid "This service already exists"
msgid "The device is already mounted."
msgstr "Denne tjeneste eksisterer allerede"
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
#, fuzzy
#| msgid "repro service is not running"
msgid "The device is not mounted."
msgstr "repro-tjenesten er ikke aktiv"
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6755,18 +6837,18 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
#, fuzzy
#| msgid "Install this application?"
msgid "Administer Syncthing application"
msgstr "Installer denne applikation?"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6792,43 +6874,43 @@ msgid ""
"TCP port 9050."
msgstr "En Tor SOCKS-port er tilgængelig på din %(box_name)s TCP-port 9050."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
#, fuzzy
#| msgid "Tor Hidden Service"
msgid "Tor Onion Service"
msgstr "Tor Skjult Tjeneste"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
#, fuzzy
msgid "Tor Bridge Relay"
msgstr "Tor Bridge Relay"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Tor videresendelsesport tilgængelig"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3 transport registreret"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4 transport registreret"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Tilgå URL {url} ved brug af tcp{kind} via Tor"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bekræft brug af Tor på {url} ved brug af tcp{kind}"
@@ -6838,39 +6920,35 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Aktiver Tor"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
#, fuzzy
#| msgid "Enable Tor"
msgid "Enable Tor relay"
msgstr "Aktiver Tor"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6878,25 +6956,25 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
#, fuzzy
msgid "Enable Tor bridge relay"
msgstr "Tor Bridge Relay"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Hidden Service"
msgstr "Aktiver Tor Skjult Tjeneste"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@@ -6909,11 +6987,11 @@ msgstr ""
"En skjult tjeneste tillader {box_name} at levere udvalgte tjenester (såsom "
"ownCloud og chat) uden at afsløre sin lokation."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Hent softwarepakker over Tor"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6923,7 +7001,7 @@ msgstr ""
"Tor-netværket. Dette giver en vis grad af privatlivsbeskyttelse og sikkerhed "
"under hentningen."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6935,23 +7013,27 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "Tor-konfiguration opdateres"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
#, fuzzy
#| msgid "Hidden Service"
msgid "Onion Service"
msgstr "Skjult Tjeneste"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Porte"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Indstilling uændret"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Der opstod en fejl under konfigurationen."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Kunne ikke installere applikation: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -7003,7 +7085,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
#, fuzzy
#| msgid "Transmission BitTorrent"
@@ -7038,15 +7120,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
#, fuzzy
#| msgid "News Feed Reader (Tiny Tiny RSS)"
msgid "News Feed Reader"
@@ -7069,8 +7147,8 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
#, fuzzy
@@ -7078,30 +7156,30 @@ msgstr ""
msgid "Software Update"
msgstr "Softwareopdateringer"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
#| msgid "FreedomBox Manual"
msgid "FreedomBox Updated"
msgstr "FreedomBox Brugervejledning"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
#, fuzzy
#| msgid "Automatic upgrades disabled"
msgid "Distribution update started"
msgstr "Automatisk opdatering deaktiveret"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7196,6 +7274,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -7268,44 +7347,68 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Automatisk opdatering aktiveret"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Test distribution upgrade now"
+msgstr "Automatisk opdatering aktiveret"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
"Kunne ikke konfigurere automatisk opdatering (unattended-upgrades): {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Automatisk opdatering aktiveret"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Automatisk opdatering deaktiveret"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
#, fuzzy
#| msgid "Automatic upgrades enabled"
msgid "Distribution upgrade enabled"
msgstr "Automatisk opdatering aktiveret"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
#, fuzzy
#| msgid "Automatic upgrades disabled"
msgid "Distribution upgrade disabled"
msgstr "Automatisk opdatering deaktiveret"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Opdateringsprocessen er startet."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "Kunne ikke starte opdatering."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Automatisk opdatering aktiveret"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7321,15 +7424,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Brugere og Grupper"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Kontrol af LDAP-konfiguration \"{search_item}\""
@@ -7984,14 +8087,14 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
#, fuzzy
#| msgid "Address"
msgid "WordPress"
msgstr "Adresse"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
#, fuzzy
#| msgid "Wiki & Blog"
msgid "Website and Blog"
@@ -8030,11 +8133,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -8070,37 +8173,136 @@ msgstr "PPPoE"
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Kunne ikke sætte værtsnavn: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, fuzzy, python-brace-format
+#| msgid "Service disabled: {name}"
+msgid "Finished: {name}"
+msgstr "Tjeneste ikke aktiv: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Fejl under installation"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Existing Backups"
+msgid "Error running apt-get"
+msgstr "Eksisterende sikkerhedskopier"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "Installerer"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "downloader"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "medie-ændring"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "konfigurationsfil: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Installer applikationer"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Kunne ikke installere applikation: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Kunne ikke installere applikation: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Kunne ikke installere applikation: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Kunne ikke installere applikation: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Applikation installeret."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Seneste opdatering"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Installer applikationer"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Kunne ikke installere applikation: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Kunne ikke installere applikation: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Applikation installeret."
+
+#: plinth/setup.py:451
+#, fuzzy
+#| msgid "Upgrade Packages"
+msgid "Updating app packages"
+msgstr "Opdater Pakker"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -8158,7 +8360,7 @@ msgstr ""
msgid "Installation"
msgstr "Installation"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, fuzzy, python-format
#| msgid "Service discovery server is not running"
msgid "Service %(service_name)s is not running."
@@ -8427,6 +8629,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr "%(box_name)s Konfiguration"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Applikation installeret."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Installer denne applikation?"
@@ -8436,56 +8642,113 @@ msgid "This application needs an update. Update now?"
msgstr "Denne applikation har brug for en opdatering. Opdater nu?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Installer"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Opdater"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Udfører før-installationshandlinger"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Installer"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Udfører efter-installationshandlinger"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Rediger Bruger %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Installerer %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% færdig"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Indstilling uændret"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr ""
+#~ msgid "Network Connections"
+#~ msgstr "Netværksforbindelser"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Aktiver Tor"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Tor-konfiguration opdateres"
+
+#~ msgid "Error during installation"
+#~ msgstr "Fejl under installation"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "Bruger DNSSEC på IPv{kind}"
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Udfører før-installationshandlinger"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Udfører efter-installationshandlinger"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Installerer %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% færdig"
+
+#~ 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 skal tilgås via et domænenavn. Det fungerer ikke hvis det tilgås "
+#~ "med en IP-adresse som en del af webadressen."
+
+#~ msgid "Access"
+#~ msgstr "Adgang"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr ""
+#~ "Cockpit vil kun fungere når det tilgås gennem de følgende webadresser."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Webserver"
+
#, fuzzy
#~| msgid "Service"
#~ msgid "Server URL"
@@ -8851,11 +9114,6 @@ msgstr ""
#~ msgid "Postfix domain name config"
#~ msgstr "Kunne ikke sætte domænenavn: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Der opstod en fejl under konfigurationen."
-
#, fuzzy
#~| msgid "Disabled"
#~ msgid "Disable selected"
@@ -9327,9 +9585,6 @@ msgstr ""
#~ msgid "Service enabled: {name}"
#~ msgstr "Tjeneste aktiv: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Tjeneste ikke aktiv: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "PageKite-konto"
@@ -9573,9 +9828,6 @@ msgstr ""
#~ msgid "Automatic Upgrades"
#~ msgstr "Automatisk Opdatering"
-#~ msgid "Upgrade Packages"
-#~ msgstr "Opdater Pakker"
-
#, fuzzy
#~| msgid "Create User"
#~ msgid "Create archive"
@@ -9827,9 +10079,6 @@ msgstr ""
#~ msgid "IP Check URL"
#~ msgstr "URL for IP-kontrol"
-#~ msgid "Bridge"
-#~ msgstr "Bro"
-
#~ msgid "Enable network time"
#~ msgstr "Aktiver netværkstid"
@@ -10054,9 +10303,6 @@ msgstr ""
#~ msgid "The operating system is up to date now. "
#~ msgstr "Operativsystemet er nu opdateret. "
-#~ msgid "Show Details"
-#~ msgstr "Vis Detaljer"
-
#~ msgid ""
#~ "This will run unattended-upgrades, which will attempt to upgrade your "
#~ "system with the latest Debian packages. It may take a few minutes to "
diff --git a/plinth/locale/de/LC_MESSAGES/django.po b/plinth/locale/de/LC_MESSAGES/django.po
index 8ec12407b..8d5bdacc8 100644
--- a/plinth/locale/de/LC_MESSAGES/django.po
+++ b/plinth/locale/de/LC_MESSAGES/django.po
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
-"PO-Revision-Date: 2022-06-22 17:14+0000\n"
-"Last-Translator: ikmaak \n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
+"PO-Revision-Date: 2022-08-18 17:21+0000\n"
+"Last-Translator: nautilusx \n"
"Language-Team: German \n"
"Language: de\n"
@@ -19,13 +19,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.13.1-dev\n"
+"X-Generator: Weblate 4.14-dev\n"
#: doc/dev/_templates/layout.html:11
msgid "Page source"
msgstr "Seitenquelle"
-#: plinth/context_processors.py:23 plinth/views.py:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr "FreedomBox"
@@ -55,10 +55,24 @@ msgid "Cannot connect to {host}:{port}"
msgstr "Verbindung mit {host}:{port} fehlgeschlagen"
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+#, fuzzy
+#| msgid "Repository not found"
+msgid "Repository to backup to"
+msgstr "Archiv nicht gefunden"
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr "Einen Domainnamen für die Nutzung dieser Anwendung wählen"
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
@@ -66,12 +80,12 @@ msgstr ""
"Warnung! Die Anwendung könnte fehlerhaft laufen, falls der Domainname "
"nachträglich geändert wird."
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr "TLS Domain"
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
@@ -80,41 +94,27 @@ msgstr ""
"Wähle Sie eine Domain zur Nutzung mit TLS aus. Wenn diese Liste leer ist, "
"konfigurieren Sie bitte mindestens eine Domain mit Zertifikaten."
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr "Sprache"
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr "Sprache für die Darstellung dieser Weboberfläche"
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr "Die im Browser festgelegte Sprache verwenden"
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr "Anwendung installiert."
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr "Fehler beim Installieren der Anwendung: {string} {details}"
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr "Fehler beim Installieren der Anwendung: {error}"
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr "Apache HTTP Server"
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr "Webserver"
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr "{box_name} Weboberfläche (Plinth)"
@@ -146,11 +146,11 @@ msgstr ""
"deaktiviert werden, um die Sicherheit zu erhöhen, vor allem in einem "
"unsicheren lokalen Netz."
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr "Dienste-Erkennung"
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr "Lokale Netzwerkdomäne"
@@ -158,12 +158,12 @@ msgstr "Lokale Netzwerkdomäne"
msgid "Backups allows creating and managing backup archives."
msgstr "Erstellen und Verwalten von Sicherungs-Archiven."
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr "Sicherungen"
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
@@ -172,18 +172,18 @@ msgstr ""
"Bevorzugen Sie einen verschlüsselten Remote-Backup-Speicherort oder einen "
"zusätzlich angeschlossenen Datenträger."
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr "Aktivieren eines Sicherungszeitplans"
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr "Gehe zu {app_name}"
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
@@ -193,7 +193,7 @@ msgstr ""
"Versuche zur Sicherung waren nicht erfolgreich. Der letzte Fehler ist: "
"{error_message}"
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr "Fehler beim Sichern"
@@ -279,7 +279,7 @@ msgstr "Paketquelle"
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr "Name"
@@ -446,7 +446,7 @@ msgid "{box_name} storage"
msgstr "{box_name}-Speichermedien"
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr "Neue Sicherung erstellen"
@@ -499,7 +499,7 @@ msgid "Create Location"
msgstr "Standort anlegen"
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr "Archiv anlegen"
@@ -557,7 +557,7 @@ msgstr "Herunterladen"
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr "Wiederherstellen"
@@ -662,102 +662,102 @@ msgstr ""
msgid "Verify Host"
msgstr "Host verifizieren"
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr "Sicherungsplan aktualisiert."
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr "Zeitplan für Sicherungen"
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr "Archiv angelegt."
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr "Archiv löschen"
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr "Archiv gelöscht."
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr "Hochladen und Wiederherstellen einer Sicherung"
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr "Dateien aus Sicherung wiederhergestellt."
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr "Keine Sicherungsdatei gefunden."
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr "Wiederherstellen aus hochgeladener Datei"
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr ""
"Es sind keine zusätzlichen Festplatten verfügbar, um ein Repository "
"hinzuzufügen."
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr "Sicherungs-Repository erstellen"
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr "Remote-Sicherungs-Archiv anlegen"
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr "Neue Remote-SSH-Archiv hinzugefügt."
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr "Verifiziere SSH-Schlüssel des Hosts"
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr "SSH-Host bereits verifiziert."
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr "SSH-Host verifiziert."
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr ""
"Der öffentliche SSH-Schlüssel des Hosts konnte nicht verifiziert werden."
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr "Authentifizierung am Server fehlgeschlagen."
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr "Fehler beim Verbinden mit Server: {}"
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr "Archiv gelöscht."
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr "Archiv entfernen"
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr "Repository entfernt. Sicherungen wurden nicht gelöscht."
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr "Aushängen fehlgeschlagen!"
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr "Einhängen fehlgeschlagen"
@@ -799,39 +799,39 @@ msgstr ""
"können Sie später den Zugang für eine einzelne Person oder Gruppe sperren, "
"indem Sie deren Passwort aus der Liste entfernen."
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr "Lesen einer Datei, wenn ein Weblink zur Datei verfügbar ist"
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr "Dateien erstellen oder hochladen"
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr "Auflisten aller Dateien und deren Weblinks"
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr "Dateien löschen"
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr "Dateien verwalten: Dateien sperren/entsperren"
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr "Keiner, Passwort ist immer erforderlich"
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr "Alle Dateien auflisten und lesen"
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr "bepasty"
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr "Datei- und Snippet-Freigabe"
@@ -927,16 +927,15 @@ msgstr "Löschen"
msgid "Admin"
msgstr "Admin"
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr "Konfiguration aktualisiert."
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr "Ein Fehler ist bei der Konfiguration aufgetreten."
@@ -972,11 +971,11 @@ msgstr ""
"Geräte im lokalen Netzwerk zu beantworten. Dies ist außerdem inkompatibel "
"mit dem Teilen der Internetverbindung durch die {box_name}."
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr "BIND"
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr "DNS-Server"
@@ -1030,12 +1029,12 @@ msgstr "IP-Adressen"
msgid "Refresh IP address and domains"
msgstr "IP-Adresse und Domänen aktualisieren"
-#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
-#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -1077,15 +1076,15 @@ msgstr ""
"Nur Benutzer der calibre Gruppe können auf die App zugreifen. Alle "
"Benutzer mit Zugangsberechtigung können alle Bibliotheken nutzen."
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "Verwenden von Calibre-E-Book-Bibliotheken"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "E-Book-Bibliothek"
@@ -1149,25 +1148,25 @@ msgstr "Gehe zur Bibliothek %(library)s"
msgid "Delete library %(library)s"
msgstr "Bibliothek löschen %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "Bibliothek erstellt."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "Beim Erstellen der Bibliothek ist ein Fehler aufgetreten."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} gelöscht."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "{name} konnte nicht gelöscht werden: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1181,7 +1180,7 @@ msgstr ""
"Zusätzlich ist eine Kommandozeile im Webbrowser enthalten, um direkt Befehle "
"einzugeben."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1194,7 +1193,7 @@ msgstr ""
"Anschlüsse und erweiterte Netzwerkfunktionen wie bonding, bridging und VLAN-"
"Management."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1203,35 +1202,16 @@ msgstr ""
"Auf sie kann von jedem Benutzer auf der "
"{box_name} zugegriffen werden, der zur Administratorgruppe gehören."
-#: plinth/modules/cockpit/__init__.py:40
-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 erfordert, dass Sie über einen Domainnamen darauf zugreifen. Es "
-"funktioniert nicht, wenn auf eine IP-Adresse als Teil der URL zugegriffen "
-"wird."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Serververwaltung"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Zugriff"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-"Das Cockpit funktioniert nur, wenn es über die folgenden URLs aufgerufen "
-"wird."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1246,7 +1226,7 @@ msgstr "Allgemeine Konfiguration"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Konfigurieren"
@@ -1340,43 +1320,69 @@ msgid "Show apps and features that require more technical knowledge."
msgstr ""
"Anwendungen und Funktionen, die mehr technisches Wissen erfordern, anzeigen."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr "Systemweite Protokollierung"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr "Deaktivieren der Protokollierung zum Schutz der Privatsphäre"
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+"Behalten Sie einige bis zu einem Neustart im Speicher, um die Leistung zu "
+"verbessern"
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr "Auf Festplatte schreiben, nützlich zum Debuggen"
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+"Die Protokolle enthalten Informationen darüber, wer auf das System "
+"zugegriffen hat, sowie Debug-Informationen von verschiedenen Diensten"
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Fehler beim Setzen des Hostnamens: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Hostname gesetzt"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Fehler beim Setzen des Domainnamens: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Domainname gesetzt"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Fehler beim Setzen des Host-Namen: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Webserver-Startseite wurde definiert"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Fehler beim Ändern des erweiterten Modus: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Zeige erweiterte Anwendungen und Funktionen an"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Ausblenden von erweiterten Apps und Funktionen"
@@ -1405,11 +1411,11 @@ msgstr ""
"\"{e_url}\">ejabberd müssen mit den hier angegebenen Details "
"konfiguriert werden."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "VoIP-Helfer"
@@ -1435,11 +1441,11 @@ msgstr ""
"Der Netzwerk-Zeitserver hält Ihre Systemzeit synchron mit Servern im "
"Internet."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Datum und Uhrzeit"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Zeit synchronisiert mit NTP-Server"
@@ -1480,17 +1486,17 @@ msgstr ""
"Das Standardkennwort ist 'deluge'; Sie sollten sich aber anmelden und es "
"sofort ändern, nachdem Sie diesen Dienst aktiviert haben."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Dateien mit BitTorrent herunterladen"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "BitTorrent-Webclient"
@@ -1511,50 +1517,50 @@ msgstr ""
"um zu überprüfen, ob alle Anwendungen und Dienste funktionieren."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnose"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "bestanden"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "gescheitert"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "Fehler"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "Warnung"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
"Sie sollten einige Anwendungen deaktivieren, um den Speicherverbrauch zu "
"reduzieren."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Sie sollten auf diesem System keine neuen Anwendungen installieren."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1563,7 +1569,7 @@ msgstr ""
"Das System hat wenig Speicherplatz: {percent_used}% verwendet, "
"{memory_available}·{memory_available_unit}frei. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Wenig Speicher"
@@ -1613,7 +1619,7 @@ msgstr "Testen"
msgid "Result"
msgstr "Ergebnis"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Diagnose"
@@ -1660,11 +1666,11 @@ msgstr ""
"freedns.afraid.org/\" target=\"_blank\">freedns.afraid.org können "
"mittels Update-URL genutzt werden."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Dynamischer DNS-Client"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Dynamischer Domain-Name"
@@ -1793,13 +1799,14 @@ msgid "This field is required."
msgstr "Dieses Feld ist erforderlich."
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1881,12 +1888,12 @@ msgstr ""
"die Coturn-App oder konfiguriere einen externen "
"Server."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Chatserver"
@@ -2000,7 +2007,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2067,19 +2074,19 @@ msgstr ""
"Während der Installation werden alle anderen E-Mail-Server im System "
"deinstalliert."
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr "Postfix/Dovecot"
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "E-Mail Server"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr "Meine E-Mail-Aliase"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr "Aliase des Postfachs verwalten"
@@ -2115,7 +2122,7 @@ msgstr "Kann keine Zahl sein"
msgid "Aliases"
msgstr "Aliase"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2201,7 +2208,7 @@ msgstr ""
"Verkehr Ihrer {box_name} kontrolliert. Die Firewall aktiv und korrekt "
"konfiguriert halten reduziert Sicherheitsrisiken aus dem Internet."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
@@ -2365,15 +2372,15 @@ msgstr ""
"Um weiter über Git Betrieb zu lernen, schauen Sie sich die Gitanleitung an."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Lese- und Schreibberechtigung auf Git respositories"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Einfaches Git Hosting"
@@ -2473,54 +2480,54 @@ msgstr "Git Repository %(name)s löschen"
msgid "Delete this repository permanently?"
msgstr "Dieses respository permanent löschen?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Archiv erstellt."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Beim Erstellen des Repository ist ein Fehler aufgetreten."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Archiv bearbeitet."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Archiv bearbeiten"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Dokumentation"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Handbuch"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Unterstützung erhalten"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Feedback geben"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Mitwirken"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Info"
@@ -2659,6 +2666,44 @@ msgstr ""
msgid "Learn more..."
msgstr "Mehr erfahren …"
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr "Wie kann ich helfen?"
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+"Im Folgenden finden Sie eine Liste von Möglichkeiten, zu Debian beizutragen. "
+"Sie wurde gefiltert, um nur Pakete anzuzeigen, die auf diesem System "
+"installiert sind."
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr "Probleme anzeigen"
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr "Pakete, die aus dem Debian-Test entfernt werden"
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr "Quellpaket:"
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr "Pakete, die nicht im Debian-Test enthalten sind"
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr "Gute erste Ausgaben für Anfänger"
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr "Probleme, für die der Paketbetreuer um Hilfe gebeten hat"
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2801,16 +2846,16 @@ msgstr ""
"Bitte vor dem Abschicken des Fehlerberichts, alle Passwörter und andere "
"persönliche Informationen aus der Statusausgabe entfernen."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Dokumentation und FAQ"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "Über Ihre FreedomBox {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "{box_name}-Handbuch"
@@ -2843,19 +2888,19 @@ msgstr ""
"Der erste Besuch der bereitgestellten Weboberfläche leitet den "
"Konfigurationsprozess ein."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "I2P-Anwendung verwalten"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Anonymisierungsnetzwerk"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "I2P Proxy"
@@ -2925,15 +2970,15 @@ msgstr ""
"\"{users_url}\">Benutzerkonfiguration können diese Rechte geändert oder "
"neue Benutzer angelegt werden."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki und Blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Wiki-Anwendungen ansehen und bearbeiten"
@@ -2971,8 +3016,8 @@ msgstr "Seite %(site)s löschen"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Übernehmen der Änderungen"
@@ -2989,32 +3034,32 @@ msgstr ""
"Diese Aktion wird alle Posts, Seiten und Kommentare einschließlich der "
"Historie löschen. Dieses Wiki oder den Blog dauerhaft löschen?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Wiki {name} angelegt."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Wiki konnte nicht angelegt werden: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Blog {name} angelegt."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Blog konnte nicht angelegt werden: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} gelöscht."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "{title} konnte nicht gelöscht werden: {error}"
@@ -3034,11 +3079,11 @@ msgstr ""
"Client herunterladen und installieren. Dann Gobby starten und „Mit "
"Server verbinden“ auswählen und den Domainnamen Ihrer {box_name} eingeben."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Gobby-Server"
@@ -3059,28 +3104,28 @@ msgstr ""
"Gobby starten, „Mit Server verbinden“ auswählen und den Domainnamen Ihrer "
"FreedomBox {box_name} eingeben."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr "Janus ist ein leichter WebRTC-Server."
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr "Ein einfacher Videokonferenzraum ist enthalten."
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
"Zur Verwendung von Janus ist Coturn "
"erforderlich."
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr "Janus"
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
-msgstr "WebRTC-Server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr "Videoraum"
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3092,7 +3137,7 @@ msgstr "Janus-Videoraum"
msgid "JavaScript license information"
msgstr "JavaScript-Lizenzinformation"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3100,11 +3145,11 @@ msgstr ""
"JSXC ist ein XMPP-Webclient. Er wird meist mit einem lokalen XMPP-Server "
"genutzt."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Chatclient"
@@ -3275,7 +3320,7 @@ msgstr ""
"Installiere die Coturn-App oder konfiguriere "
"einen externen Server."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3314,8 +3359,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Konfiguration"
@@ -3419,12 +3464,12 @@ msgstr ""
"Alle mit einem Link zu diesem Wiki können es lesen. Ausschließlich "
"angemeldete Nutzer können den Inhalt verändern."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3499,41 +3544,41 @@ msgstr ""
"Wählen Sie eine Standard-Thema für Ihre MediaWiki-Installation. Benutzer "
"haben die Möglichkeit, ihr bevorzugtes Thema auszuwählen."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Passwort geändert"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
"Kennwortaktualisierung fehlgeschlagen. Bitte wählen Sie ein stärkeres "
"Passwort"
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Öffentliche Registrierung aktiviert"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Öffentliche Registrierung deaktiviert"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Privater Modus aktiviert"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Privater Modus ausgeschaltet"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Standard-Thema geändert"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr "Domainname aktualisiert"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr "Website-Name aktualisiert"
@@ -3550,11 +3595,11 @@ msgstr ""
"Standardport (30000). Um auf dem Server zu spielen, wird ein Minetest-Client benötigt."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Block-Sandkasten"
@@ -3607,7 +3652,7 @@ msgstr ""
msgid "Address"
msgstr "Adresse"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3625,15 +3670,15 @@ msgstr ""
"Smartphones, Fernseher und Gaming-Systeme (wie PS3 und Xbox 360) oder "
"Anwendungen wie Totem und Kodi."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Medien-Streaming-Server"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Einfacher Medienserver"
@@ -3697,11 +3742,11 @@ msgstr ""
"verbinden. Auf Mumble finden Sie "
"Anwendungen, um sich vom Desktop oder Mobil-Gerät mit Mumble zu verbinden."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Sprachkonferenz"
@@ -3750,15 +3795,15 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "SuperUser-Kennwort wurde erfolgreich aktualisiert."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr "Beitrittspasswort geändert"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr "Name des Hauptkanals geändert."
@@ -3795,7 +3840,7 @@ msgstr "Secure Shell"
msgid "Services"
msgstr "Dienste"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3804,7 +3849,7 @@ msgstr ""
"eine Verbindung zum Internet her. Teilen Sie diese Verbindung mit anderen "
"Geräten im Netzwerk."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3812,15 +3857,10 @@ msgstr ""
"Geräte die mit anderen Methoden verwaltet werden, können hier möglicherweise "
"nicht konfiguriert werden."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Netzwerke"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "DNSSEC wird auf IPv{kind} verwendet"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Verbindungstyp"
@@ -4445,7 +4485,7 @@ msgid "Create Connection"
msgstr "Verbindung anlegen"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Verbindung löschen"
@@ -4465,13 +4505,13 @@ msgstr "Abstand"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "WLAN"
@@ -4492,7 +4532,7 @@ msgid "Computer"
msgstr "Computer"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Verbindung bearbeiten"
@@ -4502,13 +4542,13 @@ msgstr "Verbindungen"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "WLANs in der Nähe"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Verbindung hinzufügen"
@@ -4737,247 +4777,243 @@ msgstr ""
"Routers. Hier finden Sie eine vollständige Anleitung, wie diese Aufgabe zu "
"erfüllen ist."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "deaktiviert"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "automatisch"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "Handbuch"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "geteilt"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr "link-lokal"
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "unbekannt"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "nicht verwaltet"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "nicht verfügbar"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "nicht verbunden"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "Vorbereitung"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "verbinde"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "benötigt Authentifizierung"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "Adresse anfordern"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "prüfe"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr "Warten auf Sekundär"
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "aktiviert"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "deaktiviere"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "ohne Grund"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "unbekannter Fehler"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "Gerät wird jetzt verwaltet"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "Gerät ist jetzt unverwaltet"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "Konfiguration gescheitert"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr "Secrets erforderlich"
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "DHCP-Client konnte nicht gestartet werden"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "DHCP Client-Fehler"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "DHCP-Client fehlgeschlagen"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr "Shared Connection Service konnte nicht gestartet werden"
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "Shared Connection Service fehlgeschlagen"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "Gerät wurde entfernt"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "Gerät durch Benutzer getrennt"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr "eine Abhängigkeit der Verbindung ist fehlgeschlagen"
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "Wi-Fi-Netzwerk nicht gefunden"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "eine sekundäre Verbindung ist fehlgeschlagen"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr "neue Verbindungsaktivierung wurde in die Warteschlange eingereiht"
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "eine doppelte IP-Adresse wurde festgestellt"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "ausgewählte IP-Methode wird nicht unterstützt"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "generisch"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "TUN- bzw. TAP-Schnittstelle"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad-hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "Infrastruktur"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "Accesspoint"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "Mesh-Point"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Netzwerkverbindungen"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Kann Verbindung nicht anzeigen: Verbindung nicht gefunden."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Verbindungsinformationen"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Kann Verbindung nicht bearbeiten: Verbindung nicht gefunden."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Dieser Verbindungstyp ist noch nicht bekannt."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "Verbindung {name} aktiviert."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Fehler beim Einschalten der Verbindung: Verbindung nicht gefunden."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"Fehler beim Einschalten der Verbindung {name}: Kein geeignetes Gerät "
"verfügbar."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Verbindung {name} ausgeschaltet."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Konnte Verbindung nicht ausschalten: Verbindung nicht gefunden."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Neue generische Verbindung wird hinzugefügt"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Neue Ethernet-Verbindung wird hinzugefügt"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Neue PPPoE-Verbindung wird hinzugefügt"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "WLAN-Verbindung wird hinzugefügt"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Verbindung {name} gelöscht."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Konnte Verbindung nicht löschen: Verbindung nicht gefunden."
@@ -4998,20 +5034,20 @@ msgstr ""
"{box_name} erlangen. Sie können auch auf das Internet via {box_name} für "
"zusätzliche Sicherheit und Anonymität zugreifen."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "Mit VPN-Diensten verbinden"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Virtuelles Privates Netzwerk"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5154,15 +5190,15 @@ msgstr ""
"\"https://pagekite.net\">pagekite.net. In der Zukunft könnte es möglich "
"sein, hierfür die {box_name} eines Freundes zu nutzen."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Öffentliche Sichtbarkeit"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "PageKite Domäne"
@@ -5276,31 +5312,31 @@ msgstr ""
"Beispielsweise HTTPS auf anderen Ports als 443, ist bekannt dafür, Probleme "
"zu verursachen."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Webserver (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
"Webseite wird unter http://{0} verfügbar sein"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Webserver (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
"Webseite wird unter https://{0} verfügbar sein"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Secure Shell (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5309,7 +5345,7 @@ msgstr ""
"\">Konfigurationsanweisungen"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Leistung"
@@ -5332,7 +5368,7 @@ msgstr ""
"Leistungskennzahlen werden von Performance Co-Pilot erfasst und können in "
"der Cockpit-App angezeigt werden."
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Systemüberwachung"
@@ -5419,26 +5455,28 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Sie können Privoxy verwenden, indem Sie Ihre Browser-Proxy-Einstellungen auf "
-"den Hostnamen (oder IP-Adresse) der {box_name} mit Port 8118 ändern. Bei der "
+"den Hostnamen (oder IP-Adresse) der {box_name} mit Port 8118 ändern. Es sind "
+"nur Verbindungen von IP-Adressen des lokalen Netzes erlaubt. Bei der "
"Verwendung von Privoxy, können Sie die Konfigurationsdaten und Dokumentation "
"unter http://config.privoxy.org/ "
"oder http://p.p einsehen."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Web Proxy"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Zugang auf {url} über Proxy {proxy} auf TCP{kind}"
@@ -5473,11 +5511,11 @@ msgstr ""
"quassel-irc.org/downloads\">Desktop und mobile Telefone zur Verfügung."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "IRC-Client"
@@ -5511,12 +5549,12 @@ msgstr ""
"Kontaktdaten wird nicht unterstützt; dies muss über einen separaten Client "
"erfolgen."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Kalender und Adressbuch"
@@ -5594,7 +5632,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Konfiguration der Zugangsrechte aktualisiert"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5607,7 +5645,7 @@ msgstr ""
"wie zum Beispiel MIME-Unterstützung, Adressbuch, Ordnerverwaltung, Suche in "
"den Nachrichten und Rechtschreibprüfung."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5621,7 +5659,7 @@ msgstr ""
"code>. Bei IMAP über SSL (empfohlen) füllen Sie das Server-Feld aus, z. B. "
"imaps://imap.beispiel.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5638,7 +5676,7 @@ msgstr ""
"lesssecureapps\">https://www.google.com/settings/security/lesssecureapps"
"a>)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "E-Mail-Client"
@@ -5656,6 +5694,48 @@ msgstr ""
"der Anmeldeseite entfernt und Benutzer können nur E-Mails von diesem "
"{box_name} lesen und senden."
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+"RSS-Bridge generiert RSS- und Atom-Feeds für Websites, die keine haben. Die "
+"erzeugten Feeds können von jedem Feed-Reader gelesen werden."
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Wenn aktiviert, kann RSS-Bridge von jedem Benutzer"
+"a> der zur Feed-Reader-Gruppe gehört, aufgerufen werden."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+"Sie können RSS-Bridge mit Tiny Tiny RSS "
+"verwenden, um verschiedenen Websites zu folgen. Aktivieren Sie beim "
+"Hinzufügen eines Feeds die Authentifizierung und verwenden Sie Ihre "
+"{box_name}-Anmeldeinformationen."
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Lesen und Abonnieren von Neuigkeiten-Feeds"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr "RSS-Bridge"
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr "RSS Feed Generator"
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5698,15 +5778,15 @@ msgstr ""
"Home Share - jeder Benutzer in der freedombox-share-Gruppe kann seinen "
"eigenen privaten Raum haben."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Zugriff auf die privaten Freigaben"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Netzwerkdateispeicherung"
@@ -5840,15 +5920,15 @@ msgstr ""
"Searx kann verwendet werden, um Nachverfolgung und Profiling durch "
"Suchmaschinen zu vermeiden. Standardmäßig werden keine Cookies gespeichert."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Suche im Web"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Websuche"
@@ -5946,7 +6026,7 @@ msgstr ""
"Mitwirkenden an Debian und der %(box_name)s Gemeinschaft gepflegt."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Sicherheits-Mitteilungsbericht"
@@ -6023,12 +6103,12 @@ msgstr "Nein"
msgid "Not running"
msgstr "Läuft nicht"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Fehler beim Setzen des eingeschränkten Zugriffs: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Sicherheitskonfiguration aktualisiert"
@@ -6044,11 +6124,11 @@ msgstr ""
"Beachten Sie, dass Shaarli nur ein einziges Benutzerkonto unterstützt, das "
"Sie bei Ihrem ersten Besuch einrichten müssen."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Lesezeichen"
@@ -6088,11 +6168,11 @@ msgstr ""
"SOCKS5-Proxy in ihrem Gerät, Browser, oder Anwendung auf http://"
"Freedombox_Adresse:1080/"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Socks5-Proxy"
@@ -6125,7 +6205,7 @@ msgstr ""
"Verschlüsselungsverfahren. Muss mit der Einstellung des Servers "
"übereinstimmen."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6134,7 +6214,7 @@ msgstr ""
"Sharing ermöglicht es Ihnen, Dateien und Ordner auf Ihrer {box_name} über "
"das Internet mit ausgewählten Benutzergruppen zu teilen."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Sharing"
@@ -6189,28 +6269,28 @@ msgstr "Eine Freigabe mit diesem Namen existiert bereits."
msgid "Shares should be either public or shared with at least one group"
msgstr "Freigaben sollten öffentlich sein oder mindestens einer Gruppe haben"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Freigabe hinzufügen"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Derzeit sind keine Freigaben konfiguriert."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Pfad der Festplatte"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Freigegeben über"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Mit Gruppen"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "öffentlicher Zugang"
@@ -6372,7 +6452,7 @@ msgstr "Datum"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Speicherauszüge löschen"
@@ -6426,56 +6506,56 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "Zurücksetzen auf Speicherauszug #%(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "Manuell erstellt"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "Zeitleiste"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Schnappschüsse verwalten"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Schnappschuss erstellt."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Konfiguration der Speicherauszüge aktualisiert"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Aktionsfehler: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Ausgewählte Schnappschüsse gelöscht"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
"Schnappschüsse ist derzeit im Gebrauch. Bitte versuchen Sie es später noch "
"einmal."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "Zurückgesetzt auf Speicherauszug #{number}."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
"Das System muss neu gestartet werden, um das Zurücksetzen abzuschließen."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Zurücksetzen auf Speicherauszug"
@@ -6491,7 +6571,7 @@ msgstr ""
"verifizierter, entfernter Computer Verwaltungsaufgaben ausführen, Dateien "
"kopieren oder andere Anwendungen starten."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Secure Shell (SSH) Server"
@@ -6538,7 +6618,7 @@ msgstr "SSH-Authentifizierung mit Passwort deaktiviert."
msgid "SSH authentication with password enabled."
msgstr "SSH-Authentifizierung mit Passwort aktiviert."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Einmal-Anmeldung"
@@ -6562,109 +6642,109 @@ msgstr ""
"Speichermedien einsehen, Wechselmedien einbinden und aushängen, die Root-"
"Partition erweitern usw."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Speicher"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} Bytes"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "Der Vorgang schlug fehl."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "Der Vorgang wurde abgebrochen."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Das Gerät wird bereits ausgehängt."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
"Der Vorgang ist wegen fehlender Treiber-/Werkzeugunterstützung nicht möglich."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "Der Vorgang beendet wegen Zeitüberschreitung."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
"Dieser Vorgang würde ein Gerät aufwecken, welches sich in einem Tiefschlaf-"
"Zustand befindet."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Es wird versucht, ein Gerät auszuhängen, das beschäftigt ist."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "Dieser Vorgang wurde bereits abgebrochen."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "Nicht autorisiert, um den gewünschten Vorgang auszuführen."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Dieses Gerät ist bereits eingebunden."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Das Gerät ist nicht eingebunden."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "Die gewünschte Option ist nicht gestattet."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Das Gerät ist von einem anderen Benutzer eingebunden."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
"Geringer Speicherplatz auf der Systempartition: {percent_used}% belegt, "
"{free_space} verfügbar."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Wenig Plattenspeicherplatz"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "Festplattenfehler unmittelbar bevorstehend"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6823,16 +6903,16 @@ msgstr ""
"{box_name} ist nur für Benutzer der \"Admin\" oder \"Syncthing-access\"-"
"Gruppe zugänglich."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Syncthing-Anwendung einstellen"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Dateisynchronisation"
@@ -6859,40 +6939,40 @@ msgstr ""
"Tor SOCKS-Port ist auf Ihrer {box_name} für interne Netzwerke auf TCP port "
"9050 verfügbar."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Tor-Onion-Dienste"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Tor-Socks-Proxy"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Tor-Bridge-Relay"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Tor-Relay-Port ist verfügbar"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3-Transport registriert"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4-Transport registriert"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Zugangs-URL {url} auf TCP{kind} über Tor"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Tor-Nutzung auf {url} über TCP{kind} bestätigen"
@@ -6904,15 +6984,11 @@ msgstr ""
"Geben Sie eine gültige Tor-Bridge ein, in diesem Format: [transport] IP:"
"ORPort [fingerprint]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Tor einschalten"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Upstream-Bridges zur Verbindung mit dem Tor-Netzwerk nutzen"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6923,11 +6999,11 @@ msgstr ""
"Internetdienstanbieter ihre Verbindung mit dem Tor-Netzwerk zensiert oder "
"blockiert. Dies wird Relay-Modi deaktivieren."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Upstream-Bridges"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6938,11 +7014,11 @@ msgstr ""
"Informationen von dort kopieren und hier einfügen. Derzeitig unterstützte "
"Transports sind „none“, „obfs3“, „obfs4“ und „scamblesuit“."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Tor-Relay einschalten"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6954,11 +7030,11 @@ msgstr ""
"Upload-Bandbreite zur Verfügung haben, sollten Sie diese Funktion "
"aktivieren. (Es verbessert die Anonymisierung)."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Tor-Bridge-Relay aktivieren"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6968,11 +7044,11 @@ msgstr ""
"Datenbank veröffentlicht, anstatt in einer öffentlichen Tor-Relay-Datenbank, "
"was die Zensur des Knotens erschwert. Dies hilft anderen, Zensur zu umgehen."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Tor Hidden Service aktivieren"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6983,11 +7059,11 @@ msgstr ""
"B. Wiki oder Chat) bereitzustellen, ohne seinen Standort preiszugeben. "
"Verwenden Sie dies noch nicht für starke Anonymität."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Softwarepakete über das Tor-Netzwerk herunterladen"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6997,7 +7073,7 @@ msgstr ""
"den Aktualisierungen über das Tor-Netzwerk heruntergeladen. Dies erhöht die "
"Privatsphäre und Sicherheit während die Software heruntergeladen wird."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Tragen Sie mindestens eine Upstream-Bridge ein, um Upstream-Bridges zu "
@@ -7011,21 +7087,25 @@ msgstr "Tor Browser"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Proxy mit Tor"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "Tor-Konfiguration wird aktualisiert"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Onion-Dienste"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Ports"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Einstellung unverändert"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "Error updating configuration"
+msgid "Updating configuration"
+msgstr "Fehler beim Aktualisieren der Konfiguration"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error updating app: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Fehler beim Aktualisieren der App: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -7079,7 +7159,7 @@ msgstr ""
"Nachdem ein Download abgeschlossen ist, können Sie auch über die App Sharing auf Ihre Dateien zugreifen."
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -7111,15 +7191,11 @@ msgstr ""
"verwenden Sie die URL /tt-rss-app für die "
"Verbindung."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Lesen und Abonnieren von Neuigkeiten-Feeds"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Feedreader"
@@ -7148,22 +7224,22 @@ msgstr ""
"erachtet wird, erfolgt dieser automatisch um 02:00 Uhr, so dass alle Apps "
"kurzzeitig nicht verfügbar sind."
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Software-Aktualisierung"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox aktualisiert"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "Distributions-Update konnte nicht gestartet werden"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
@@ -7174,11 +7250,11 @@ msgstr ""
"mindestens 5 GB frei sind. Das Distributions-Update wird nach 24 Stunden "
"erneut versucht, falls aktiviert."
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "Distributions-Upgrade gestartet"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7275,6 +7351,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Verwerfen"
@@ -7341,39 +7418,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Letzte Update-Protokolle anzeigen"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Distributions-Upgrade aktiviert"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "Distributions-Upgrade aktiviert"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "Fehler beim Konfigurieren von automatischen Aktualisierungen: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Automatische Systemaktualisierung aktivieren"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Automatische Aktualisierungen ausgeschaltet"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "Distributions-Upgrade aktiviert"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Distributions-Upgrade deaktiviert"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Aktualisierung gestartet."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "Starten der Aktualisierung fehlgeschlagen."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Häufige Funktions-Updates aktiviert."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Distributions-Upgrade aktiviert"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7397,15 +7498,15 @@ msgstr ""
"dürfen nur Mitglieder der Gruppe admin Apps oder "
"Systemeinstellungen ändern."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Benutzer und Gruppen"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Zugriff auf alle Anwendungen und Systemeinstellungen"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "LDAP-Eintrag „{search_item}“ prüfen"
@@ -8053,12 +8154,12 @@ msgstr ""
"Plugins oder Themes können auf Ihr eigenes Risiko installiert und "
"aktualisiert werden."
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "Internetseite und Blog"
@@ -8111,11 +8212,11 @@ msgstr ""
"Administrator in Zoph. Für zusätzliche Benutzer müssen Konten sowohl in "
"{box_name} als auch in Zoph mit demselben Benutzernamen erstellt werden."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Foto-Manager"
@@ -8154,37 +8255,122 @@ msgstr "PPPoE"
msgid "Generic"
msgstr "Allgemein"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr "Fehler: {name}: {exception_message}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr "Warten auf den Start: {name}"
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr "Fertig: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr "Paket {expression} ist nicht verfügbar"
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Paket {package_name} ist die aktuellste Version ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Fehler bei der Installation"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Fehler beim Sichern"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "Installation läuft"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "herunterladen"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "Medienwechsel"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "Konfigurationsdatei: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr "Zeitüberschreitung beim Warten auf den Paket-Manager"
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr "Installation der App"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr "Aktualisieren der App"
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr "Fehler bei der Installation der App: {string} {details}"
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr "Fehler beim Aktualisieren der App: {string} {details}"
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr "Fehler bei der Installation der App: {error}"
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr "Fehler beim Aktualisieren der App: {error}"
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr "App installiert."
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr "App aktualisiert"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Installing app"
+msgid "Uninstalling app"
+msgstr "Installation der App"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Fehler bei der Installation der App: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Fehler bei der Installation der App: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "App installed."
+msgid "App uninstalled."
+msgstr "App installiert."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr "Aktualisieren von App-Paketen"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Unzulässig"
@@ -8238,7 +8424,7 @@ msgstr ""
msgid "Installation"
msgstr "Installation"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Dienst %(service_name)s läuft nicht."
@@ -8506,6 +8692,10 @@ msgstr "Von Router-/WAN-Ports"
msgid "To %(box_name)s Ports"
msgstr "Zu %(box_name)s Ports"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Anwendung installiert."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Diese Anwendung installieren?"
@@ -8515,22 +8705,14 @@ msgid "This application needs an update. Update now?"
msgstr "Die Anwendung muss aktualisiert werden! Jetzt aktualisieren?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Es läuft bereits eine andere Installation oder Update. Bitte warten Sie "
-"einen Moment, bevor Sie es erneut versuchen."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Diese Anwendung ist in Ihrer Distribution derzeit nicht erhältlich."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Erneut prüfen"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8540,36 +8722,106 @@ msgstr ""
"Pakete stehen in Konflikt mit der Installation dieser App. Die folgenden "
"Pakete werden entfernt, wenn Sie fortfahren:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Installieren"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Aktualisieren"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Installationsvorbereitungen werden ausgeführt"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Installieren"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Installationsnachbereitungen werden ausgeführt"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Benutzer %(username)s bearbeiten"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "%(package_names)s wird installiert: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s %% abgeschlossen"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Einstellung unverändert"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#~ msgid "Network Connections"
+#~ msgstr "Netzwerkverbindungen"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Tor einschalten"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Tor-Konfiguration wird aktualisiert"
+
+#~ msgid "Error during installation"
+#~ msgstr "Fehler bei der Installation"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "DNSSEC wird auf IPv{kind} verwendet"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Es läuft bereits eine andere Installation oder Update. Bitte warten Sie "
+#~ "einen Moment, bevor Sie es erneut versuchen."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Installationsvorbereitungen werden ausgeführt"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Installationsnachbereitungen werden ausgeführt"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "%(package_names)s wird installiert: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s %% abgeschlossen"
+
+#~ 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 erfordert, dass Sie über einen Domainnamen darauf zugreifen. Es "
+#~ "funktioniert nicht, wenn auf eine IP-Adresse als Teil der URL zugegriffen "
+#~ "wird."
+
+#~ msgid "Access"
+#~ msgstr "Zugriff"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr ""
+#~ "Das Cockpit funktioniert nur, wenn es über die folgenden URLs aufgerufen "
+#~ "wird."
+
+#~ msgid "WebRTC server"
+#~ msgstr "WebRTC-Server"
+
#~ msgid "Server URL"
#~ msgstr "Server URL"
@@ -9011,9 +9263,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Postfix-Domänenname konfigurieren"
-#~ msgid "Error updating configuration"
-#~ msgstr "Fehler beim Aktualisieren der Konfiguration"
-
#~ msgid "The alias was taken"
#~ msgstr "Der Alias wurde übernommen"
@@ -9579,9 +9828,6 @@ msgstr "Gujarati"
#~ msgid "Service enabled: {name}"
#~ msgstr "Dienst eingeschaltet: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Dienst ausgeschaltet: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "PageKite-Konto"
@@ -10004,9 +10250,6 @@ msgstr "Gujarati"
#~ msgid "Automatic Upgrades"
#~ msgstr "Automatische Aktualisierungen"
-#~ msgid "Upgrade Packages"
-#~ msgstr "Pakete aktualisieren"
-
#~ msgid "No such device - {device_path}"
#~ msgstr "Kein solches Gerät - {device_path}"
@@ -10342,9 +10585,6 @@ msgstr "Gujarati"
#~ msgid "IP Check URL"
#~ msgstr "URL zur Erkennung der IP-Adresse"
-#~ msgid "Bridge"
-#~ msgstr "Brücke"
-
#~ msgid "Enable network time"
#~ msgstr "Netzwerk Zeit aktivieren"
@@ -10575,9 +10815,6 @@ msgstr "Gujarati"
#~ msgid "The operating system is up to date now. "
#~ msgstr "Das Betriebssystem ist nun auf dem neuesten Stand. "
-#~ msgid "Show Details"
-#~ msgstr "Zeige Details"
-
#~ msgid ""
#~ "This will run unattended-upgrades, which will attempt to upgrade your "
#~ "system with the latest Debian packages. It may take a few minutes to "
diff --git a/plinth/locale/django.pot b/plinth/locale/django.pot
index 7ebf41392..35f75d82c 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-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:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr ""
@@ -51,62 +51,60 @@ msgid "Cannot connect to {host}:{port}"
msgstr ""
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+msgid "Repository to backup to"
+msgstr ""
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr ""
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
msgstr ""
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr ""
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
"least one domain with certificates."
msgstr ""
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr ""
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr ""
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr ""
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr ""
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr ""
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr ""
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr ""
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr ""
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr ""
@@ -132,11 +130,11 @@ msgid ""
"network."
msgstr ""
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr ""
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr ""
@@ -144,36 +142,36 @@ msgstr ""
msgid "Backups allows creating and managing backup archives."
msgstr ""
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr ""
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
msgstr ""
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr ""
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr ""
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
"succeed. The latest error is: {error_message}"
msgstr ""
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr ""
@@ -248,7 +246,7 @@ msgstr ""
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr ""
@@ -405,7 +403,7 @@ msgid "{box_name} storage"
msgstr ""
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr ""
@@ -454,7 +452,7 @@ msgid "Create Location"
msgstr ""
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr ""
@@ -510,7 +508,7 @@ msgstr ""
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr ""
@@ -594,99 +592,99 @@ msgstr ""
msgid "Verify Host"
msgstr ""
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr ""
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr ""
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr ""
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr ""
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr ""
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr ""
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr ""
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr ""
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr ""
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr ""
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr ""
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr ""
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr ""
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr ""
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr ""
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr ""
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr ""
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr ""
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr ""
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr ""
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr ""
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr ""
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr ""
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr ""
@@ -714,39 +712,39 @@ msgid ""
"the list."
msgstr ""
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr ""
@@ -837,16 +835,15 @@ msgstr ""
msgid "Admin"
msgstr ""
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr ""
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr ""
@@ -876,11 +873,11 @@ msgid ""
"connection from {box_name}."
msgstr ""
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr ""
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr ""
@@ -932,12 +929,12 @@ msgstr ""
msgid "Refresh IP address and domains"
msgstr ""
-#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
-#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -967,15 +964,15 @@ msgid ""
"app. All users with access can use all the libraries."
msgstr ""
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr ""
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr ""
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr ""
@@ -1035,25 +1032,25 @@ msgstr ""
msgid "Delete library %(library)s"
msgstr ""
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr ""
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr ""
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr ""
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1062,7 +1059,7 @@ msgid ""
"console operations is also available."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1070,37 +1067,23 @@ msgid ""
"management."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1113,7 +1096,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr ""
@@ -1191,43 +1174,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1247,11 +1252,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1273,11 +1278,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1314,17 +1319,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1343,55 +1348,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1438,7 +1443,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1469,11 +1474,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1583,13 +1588,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1661,12 +1667,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1759,7 +1765,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1804,19 +1810,19 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr ""
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1850,7 +1856,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -1931,7 +1937,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2068,15 +2074,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2172,54 +2178,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr ""
@@ -2322,6 +2328,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2428,16 +2469,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2462,19 +2503,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2527,15 +2568,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2573,8 +2614,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2589,32 +2630,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2631,11 +2672,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2654,25 +2695,25 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
msgstr ""
#: plinth/modules/janus/manifest.py:7
@@ -2685,17 +2726,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2839,7 +2880,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2871,8 +2912,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -2943,12 +2984,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3009,39 +3050,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr ""
@@ -3054,11 +3095,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3103,7 +3144,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3114,15 +3155,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3175,11 +3216,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3221,15 +3262,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3262,27 +3303,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3802,7 +3838,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3822,13 +3858,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3849,7 +3885,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3859,13 +3895,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4048,245 +4084,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4301,20 +4333,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4422,15 +4454,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4536,36 +4568,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4582,7 +4614,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4654,21 +4686,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4692,11 +4725,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4721,12 +4754,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4789,7 +4822,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4797,7 +4830,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4806,7 +4839,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4816,7 +4849,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4831,6 +4864,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4862,15 +4929,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -4990,15 +5057,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5079,7 +5146,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5144,12 +5211,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5163,11 +5230,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5197,11 +5264,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5230,14 +5297,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5285,28 +5352,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5446,7 +5513,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5494,53 +5561,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5552,7 +5619,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5593,7 +5660,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5613,104 +5680,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5844,16 +5911,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5873,40 +5940,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -5916,37 +5983,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -5954,22 +6017,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -5977,18 +6040,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6000,20 +6063,21 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
+#: plinth/modules/tor/views.py:55
+msgid "Updating configuration"
+msgstr ""
+
+#: plinth/modules/tor/views.py:72
+#, python-brace-format
+msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/transmission/__init__.py:23
@@ -6058,7 +6122,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6083,15 +6147,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6112,33 +6172,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6216,6 +6276,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6271,39 +6332,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6319,15 +6398,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -6892,12 +6971,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -6932,11 +7011,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -6970,37 +7049,114 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr ""
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr ""
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr ""
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr ""
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+msgid "Uninstalling app"
+msgstr ""
+
+#: plinth/setup.py:122
+#, python-brace-format
+msgid "Error uninstalling app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:128
+#, python-brace-format
+msgid "Error uninstalling app: {error}"
+msgstr ""
+
+#: plinth/setup.py:131
+msgid "App uninstalled."
+msgstr ""
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7043,7 +7199,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7286,6 +7442,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr ""
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7295,50 +7455,55 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+msgid "Uninstall"
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
diff --git a/plinth/locale/el/LC_MESSAGES/django.po b/plinth/locale/el/LC_MESSAGES/django.po
index f72cf38df..311ac774e 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2022-04-21 09:08+0000\n"
"Last-Translator: Giannis \n"
"Language-Team: Greek any user on {box_name} "
@@ -1224,35 +1223,16 @@ msgstr ""
"To πρόγραμμα είναι προσβάσιμο στο URL από "
"οποιοσδήποτε χρήστης στο {box_name} που ανήκει στην ομάδα διαχειριστών."
-#: plinth/modules/cockpit/__init__.py:40
-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:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Διαχείριση διακομιστή"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Πρόσβαση"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-"To Cockpit θα λειτουργήσει μόνο όταν έχετε πρόσβαση σε αυτό χρησιμοποιώντας "
-"τις ακόλουθες διευθύνσεις URL."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1268,7 +1248,7 @@ msgstr "Γενικές ρυθμίσεις"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Ρυθμίσετε"
@@ -1365,45 +1345,67 @@ msgstr ""
"Εμφάνιση εφαρμογών και δυνατοτήτων που απαιτούν περισσότερες τεχνικές "
"γνώσεις."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Σφάλμα κατά τη ρύθμιση του ονόματος του υπολογιστή: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "To όνομα του υπολογιστη ρυθμίστηκε επιτυχώς"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Σφάλμα κατά τη ρύθμιση ονόματος διδαδικτύου: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "To όνομα διαδικτύου ρυθμίστηκε επιτυχώς"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
"Σφάλμα κατά τη ρύθμιση της αρχικής σελίδας διακομιστή διαδικτύου: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Aρχική σελίδα διακομιστή διαδικτύου ρυθμίστηκε"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
"Παρουσιάστηκε σφάλμα κατά την αλλαγή σε προηγμένη λειτουργία: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Εμφανίζονται προηγμένες εφαρμογές και λειτουργίες"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Απόκρυψη προηγμένων εφαρμογών και χαρακτηριστικών"
@@ -1423,11 +1425,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1453,11 +1455,11 @@ msgstr ""
"Ο διακομιστής ώρας δικτύου είναι ένα πρόγραμμα που διατηρεί την ώρα του "
"συστήματος σε συγχρονισμό με τους διακομιστές στο διαδίκτυο."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Ημερομηνία και ώρα"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Η ώρα συγχρονίστηκε με τον διακομιστή NTP"
@@ -1501,17 +1503,17 @@ msgstr ""
"συνδεθείτε και να τον αλλάξετε αμέσως μετά την ενεργοποίηση αυτής της "
"υπηρεσίας."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Κατεβάστε αρχεία χρησιμοποιώντας εφαρμογές BitTorrent"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "Πρόγραμμα-πελάτης δικτύου BitTorrent"
@@ -1533,61 +1535,61 @@ msgstr ""
"λειτουργούν όπως αναμένεται."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Διαγνωστικά"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
#, fuzzy
#| msgid "Quassel"
msgid "passed"
msgstr "Quassel"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
#, fuzzy
#| msgid "Setup failed."
msgid "failed"
msgstr "Η εγκατάσταση απέτυχε."
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
#, fuzzy
#| msgid "Git"
msgid "GiB"
msgstr "Git"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1637,7 +1639,7 @@ msgstr "Τεστ"
msgid "Result"
msgstr "Αποτέλεσμα"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Διαγνωστικός έλεγχος"
@@ -1691,11 +1693,11 @@ msgstr ""
"ανανέωσης στο freedns."
"afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Πελάτης δυναμικού DNS"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Δυναμικό όνομα διαδικτύου"
@@ -1834,13 +1836,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1934,12 +1937,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Διακομιστής συνομιλίας"
@@ -2048,7 +2051,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2097,23 +2100,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Chat Server"
msgid "Email Server"
msgstr "Διακομιστής συνομιλίας"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Manage Repositories"
msgid "My Email Aliases"
msgstr "Διαχείριση αποθετηρίων"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Manage Repositories"
msgid "Manage Aliases for Mailbox"
@@ -2153,7 +2156,7 @@ msgstr ""
msgid "Aliases"
msgstr "Διαχείριση αποθετηρίων"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2246,7 +2249,7 @@ msgstr ""
"προστασίας ενεργοποιημένο και η σωστή ρύθμιση παραμέτρων μειώνει τον κίνδυνο "
"απειλών προερχόμενων από το Internet."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall (τείχος προστασίας)"
@@ -2407,15 +2410,15 @@ msgstr ""
"Για να μάθετε περισσότερα για το git μάθημα git."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Πρόσβαση ανάγνωσης και εγγραφής σε αποθετήρια Git"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Απλό Hosting Git"
@@ -2521,27 +2524,27 @@ msgstr "Διαγραφή αποθετηρίου Git %(name)s"
msgid "Delete this repository permanently?"
msgstr "Να διαγραφεί μόνιμα αυτό το αποθετήριο;"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Το αποθετήριο δημιουργήθηκε."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Παρουσιάστηκε σφάλμα κατά τη δημιουργία του αποθετηρίου."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "To αποθετήριο τροποποιήθηκε."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Τροποποίηση αποθετηρίου"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Boηθητικά έγγραφα"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
#, fuzzy
#| msgid "Manual"
@@ -2549,28 +2552,28 @@ msgctxt "User guide"
msgid "Manual"
msgstr "Εγχειρίδιο"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Λάβετε Υποστήριξη"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Υποβάλετε σχόλια"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Συνεισφέρετε"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Σχετικά με"
@@ -2711,6 +2714,41 @@ msgstr ""
msgid "Learn more..."
msgstr "Μάθε περισσότερα..."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2867,16 +2905,16 @@ msgstr ""
"Παρακαλώ αφαιρέστε κωδικούς πρόσβασης ή άλλα προσωπικά στοιχεία από το "
"αρχείο καταγραφής πριν από την υποβολή της αναφοράς σφάλματος."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Βοηθητικά έγγραφα και συχνές ερωτήσεις"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "Σχετικά με το {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "Εγχειρίδιο για το {box_name}"
@@ -2909,19 +2947,19 @@ msgstr ""
"Η πρώτη επίσκεψη στο παρεχόμενο δικτυακό περιβάλλον θα ξεκινήσει τη "
"διαδικασία ρύθμισης."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "Διαχείριση εφαρμογής I2P"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Δίκτυο ανωνυμίας"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "Διακομιστής μεσολάβησης I2P"
@@ -2997,15 +3035,15 @@ msgstr ""
"\"{users_url}\">ρυθμίσεις μπορεί να γίνει ρύθμιση παραμέτρων χρήστη και "
"να αλλάξετε τα δικαιώματα ή να προσθέσετε νέους χρήστες."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki και Blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Προβολή και επεξεργασία εφαρμογών wiki"
@@ -3043,8 +3081,8 @@ msgstr "Διαγραφή ιστότοπου %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Ενημέρωση ρυθμίσεων"
@@ -3062,32 +3100,32 @@ msgstr ""
"σχόλια, συμπεριλαμβανομένου του ιστορικού αναθεωρήσεων. Να διαγραφεί "
"οριστικά αυτό το wiki ή το blog;"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Δημιουργήθηκε το wiki {name}."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Δεν ήταν δυνατή η δημιουργία wiki: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Δημιουργήθηκε το blog {name}."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Δεν ήταν δυνατή η δημιουργία ιστολογίου: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} διαγράφηκε."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "Δεν ήταν δυνατή η διαγραφή του {title}: {error}"
@@ -3110,11 +3148,11 @@ msgstr ""
"επιλέξτε \"σύνδεση στο διακομιστή\" και πληκτρολογήστε το όνομα διαδικτύου "
"σας για το {box_name}."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Gobby Server"
@@ -3135,28 +3173,26 @@ msgstr ""
"Ξεκινήστε το gobby και επιλέξτε \"σύνδεση στο διακομιστή\" και "
"πληκτρολογήστε το όνομα domain σας {box_name}."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Διακομιστής Διαδικτύου (Web Server)"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3168,7 +3204,7 @@ msgstr ""
msgid "JavaScript license information"
msgstr "Πληροφορίες άδειας χρήσης JavaScript"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3176,11 +3212,11 @@ msgstr ""
"Το JSXC είναι ένα πρόγραμμα-πελάτης Web για το XMPP Συνήθως χρησιμοποιείται "
"με ένα διακομιστή ΧΜPP που εκτελείται στο ίδιο δίκτυο."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Πρόγραμμα-πελάτης συνομιλίας"
@@ -3348,7 +3384,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3384,8 +3420,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Ρύθμισης παραμέτρων"
@@ -3492,12 +3528,12 @@ msgstr ""
"Όποιος έχει μια διεύθυνση URL για αυτό το wiki μπορεί να το διαβάσει. Μόνο "
"οι χρήστες που είναι συνδεδεμένοι μπορούν να κάνουν αλλαγές στο περιεχόμενο."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "Mediawiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3574,11 +3610,11 @@ msgstr ""
"Επιλέξτε μια προκαθορισμένη εμφάνιση για την εγκατάσταση του wiki σας. Οι "
"χρήστες έχουν την επιλογή να επιλέξουν την εμφάνιση που προτιμούν."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Ενημερώθηκε ο κωδικός πρόσβασης"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
#, fuzzy
#| msgid "Password used to encrypt data. Must match server password."
msgid "Password update failed. Please choose a stronger password"
@@ -3586,33 +3622,33 @@ msgstr ""
"Κωδικός πρόσβασης που χρησιμοποιείται για την κρυπτογράφηση δεδομένων. "
"Πρέπει να ταιριάζει με τον κωδικό πρόσβασης του διακομιστή."
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Η δημόσια εγγραφή ενεργοποιήθηκε"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Οι δημόσιες εγγραφές είναι απενεργοποιημένες"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Η ιδιωτική λειτουργία είναι ενεργοποιημένη"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Η ιδιωτική λειτουργία απενεργοποιήθηκε"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Η προεπιλεγμένη εμφάνιση άλλαξε"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "To όνομα διαδικτύου ρυθμίστηκε επιτυχώς"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3632,11 +3668,11 @@ msgstr ""
"συνδεθείτε με το διακομιστή, ένας Minetest πελάτη είναι απαραίτητος."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Μπλοκ Sandbox"
@@ -3690,7 +3726,7 @@ msgstr ""
msgid "Address"
msgstr "Διεύθυνση"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3709,15 +3745,15 @@ msgstr ""
"βίντεο παιχνιδιών (όπως το PS3 και το Xbox 360) ή εφαρμογές όπως το Totem "
"και Kodi."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Διακομιστής ροής πολυμέσων"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Απλός διακομιστής πολυμέσων"
@@ -3785,11 +3821,11 @@ msgstr ""
"href=\"http://mumble.info\"> Πελάτες για να συνδεθείτε με το Mumble από "
"τον υπολογιστή και τις συσκευές Android είναι διαθέσιμες."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Φωνητική συνομιλία"
@@ -3840,17 +3876,17 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "Ο κωδικός πρόσβασης SuperUser Ενημερώθηκε με επιτυχία."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Upload password updated"
msgid "Join password changed"
msgstr "Ο κωδικός πρόσβασης ρυθμίστηκε"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3890,7 +3926,7 @@ msgstr "Secure Shell"
msgid "Services"
msgstr "Υπηρεσία"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3899,7 +3935,7 @@ msgstr ""
"Ethernet, Wi-Fi ή PPPoE. Μοιραστείτε αυτήν τη σύνδεση με άλλες συσκευές στο "
"δίκτυο."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3907,15 +3943,10 @@ msgstr ""
"Οι συσκευές που διαχειρίζονται μέσω άλλων μεθόδων ενδέχεται να μην είναι "
"διαθέσιμες για ρύθμιση παραμέτρων εδώ."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Δίκτυα"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "Χρήση του DNSSEC σε IPv {kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Τύπος σύνδεσης"
@@ -4470,7 +4501,7 @@ msgid "Create Connection"
msgstr "Δημιουργία σύνδεσης"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Διαγραφή σύνδεσης"
@@ -4490,13 +4521,13 @@ msgstr "Διαχωρισμός"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4517,7 +4548,7 @@ msgid "Computer"
msgstr "Υπολογιστής"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Επεξεργασία σύνδεσης"
@@ -4527,13 +4558,13 @@ msgstr "Συνδέσεις"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Κοντινά δίκτυα Wi-Fi"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Προσθήκη σύνδεσης"
@@ -4722,301 +4753,297 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
#, fuzzy
#| msgid "Disabled"
msgid "disabled"
msgstr "Απενεργοποιήθηκε"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
#, fuzzy
#| msgid "Automatic"
msgid "automatic"
msgstr "Αυτόματο"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
#, fuzzy
#| msgid "Manual"
msgid "manual"
msgstr "Εγχειρίδιο"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
#, fuzzy
#| msgid "Shared"
msgid "shared"
msgstr "Κοινόχρηστο"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
#, fuzzy
#| msgid "Unavailable Shares"
msgid "unavailable"
msgstr "Με διαθέσιμα μερίσματα"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
#, fuzzy
#| msgid "cable is connected"
msgid "disconnected"
msgstr "το καλώδιο είναι συνδεδεμένο"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
#, fuzzy
#| msgid "Sharing"
msgid "preparing"
msgstr "Sharing"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
#, fuzzy
#| msgid "Connection"
msgid "connecting"
msgstr "Σύνδεση"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
#, fuzzy
#| msgid "Use HTTP basic authentication"
msgid "needs authentication"
msgstr "Χρήση βασικού ελέγχου ταυτότητας HTTP"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
#, fuzzy
#| msgid "Deactivate"
msgid "activated"
msgstr "Απενεργοποίηση"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
#, fuzzy
#| msgid "Deactivate"
msgid "deactivating"
msgstr "Απενεργοποίηση"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
#, fuzzy
#| msgid "State reason"
msgid "no reason"
msgstr "Kατάσταση"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
#, fuzzy
#| msgid "The device is not mounted."
msgid "device is now managed"
msgstr "Η συσκευή δεν είναι τοποθετημένη."
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
#, fuzzy
#| msgid "The device is not mounted."
msgid "device is now unmanaged"
msgstr "Η συσκευή δεν είναι τοποθετημένη."
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
#, fuzzy
#| msgid "configuration file: {file}"
msgid "configuration failed"
msgstr "αρχείο ρυθμίσεων: {file}"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
#, fuzzy
#| msgid "Archive deleted."
msgid "DHCP client failed"
msgstr "Το αρχείο διαγράφηκε."
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
#, fuzzy
#| msgid "The operation failed."
msgid "shared connection service failed"
msgstr "Η ενέργεια απέτυχε."
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
#, fuzzy
#| msgid "The device is already mounted."
msgid "device was removed"
msgstr "Η συσκευή έχει ήδη προστεθεί."
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
#, fuzzy
#| msgid "The device is mounted by another user."
msgid "device disconnected by user"
msgstr "Η συσκευή έχει ήδη προστεθεί από άλλο χρήστη."
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
#, fuzzy
#| msgid "Repository not found"
msgid "Wi-Fi network not found"
msgstr "Το αποθετήριο δεν βρέθηκε"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
#, fuzzy
#| msgid "The operation failed."
msgid "a secondary connection failed"
msgstr "Η ενέργεια απέτυχε."
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
#, fuzzy
#| msgid "Generic"
msgid "generic"
msgstr "Γενικός"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
#, fuzzy
#| msgid "Interface"
msgid "TUN or TAP interface"
msgstr "Ιnterface"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
#, fuzzy
#| msgid "Ad-hoc"
msgid "ad-hoc"
msgstr "ad-hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
#, fuzzy
#| msgid "Infrastructure"
msgid "infrastructure"
msgstr "Υποδομή"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
#, fuzzy
#| msgid "Access Point"
msgid "access point"
msgstr "Σημείο πρόσβασης"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
#, fuzzy
#| msgid "Access Point"
msgid "mesh point"
msgstr "Σημείο πρόσβασης"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Συνδέσεις δικτύου"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Δεν είναι δυνατή η εμφάνιση της σύνδεσης: δεν βρέθηκε σύνδεση."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Πληροφορίες σύνδεσης"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Δεν είναι δυνατή η επεξεργασία της σύνδεσης: δεν βρέθηκε σύνδεση."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Αυτός ο τύπος σύνδεσης δεν έχει κατανοηθεί ακόμα."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "H σύνδεση {name} ενεργοποιήθηκε."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Απέτυχε η ενεργοποίηση της σύνδεσης: η σύνδεση δεν βρέθηκε."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"Απέτυχε η ενεργοποίηση της σύνδεσης {name}: δεν υπάρχει διαθέσιμη κατάλληλη "
"συσκευή."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Aπενεργοποιήθηκε η σύνδεση {name}."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Απέτυχε η απενεργοποίηση της σύνδεσης: η σύνδεση δεν βρέθηκε."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Προσθήκη νέας γενικής σύνδεσης"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Προσθήκη νέας σύνδεσης Ethernet"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Προσθήκη νέας σύνδεσης PPPoE"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Προσθήκη νέας σύνδεσης Wi-Fi"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Η σύνδεση {name} διαγράφηκε."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Απέτυχε η διαγραφή της σύνδεσης: η σύνδεση δεν βρέθηκε."
@@ -5038,22 +5065,22 @@ msgstr ""
"επίσης να αποκτήσετε πρόσβαση στο υπόλοιπο Internet μέσω του {box_name} για "
"πρόσθετη ασφάλεια και ανωνυμία."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
#, fuzzy
#| msgid "Connection Type"
msgid "Connect to VPN services"
msgstr "Τύπος σύνδεσης"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Εικονικό ιδιωτικό δίκτυο"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5188,15 +5215,15 @@ msgstr ""
"παράδειγμα pagekite.net . Στο μέλλον "
"μπορεί να είναι δυνατή η χρήση του {box_name} ενός φίλου σας για αυτό."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Δημόσια ορατότητα"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "Όνομα διαδικτύου Pagekite"
@@ -5316,30 +5343,30 @@ msgstr ""
"παράδειγμα, HTTPS, στις θύρες εκτός από 443 είναι γνωστό ότι προκαλούν "
"προβλήματα."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Διακομιστής Διαδικτύου (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
"Η τοποθεσία θα είναι διαθέσιμη στο http://{0} "
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Διακομιστής Διαδικτύου (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "Το Site θα είναι διαθέσιμο στο https://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Secure Shell (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5348,7 +5375,7 @@ msgstr ""
"\"https://pagekite.net/wiki/Howto/SshOverPageKite/\">Οδηγίες"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -5365,7 +5392,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -5453,12 +5480,19 @@ msgstr ""
"ανεπιθύμητων μηνυμάτων στο Internet. "
#: plinth/modules/privoxy/__init__.py:28
-#, python-brace-format
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "You can use Privoxy by modifying your browser proxy settings to your "
+#| "{box_name} hostname (or IP address) with port 8118. While using Privoxy, "
+#| "you can see its configuration details and documentation at http://config.privoxy.org/ or http://p.p."
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Μπορείτε να χρησιμοποιήσετε το Privoxy, τροποποιώντας το πρόγραμμα "
@@ -5468,15 +5502,15 @@ msgstr ""
"\"http://config.privoxy.org\">http://config.privoxy.org/ ή http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Διακομιστής μεσολάβησης διαδικτύου"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -5513,11 +5547,11 @@ msgstr ""
"\">υπολογιστή και κινητό είναι διαθέσιμοι."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "Πελάτης IRC"
@@ -5556,12 +5590,12 @@ msgstr ""
"γεγονότων ή επαφών, το οποίο πρέπει να γίνει χρησιμοποιώντας ένα ξεχωριστό "
"πελάτη."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Ημερολόγιο και βιβλίο διευθύνσεων"
@@ -5644,7 +5678,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Η διαμόρφωση των δικαιωμάτων πρόσβασης ενημερώθηκε"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5658,7 +5692,7 @@ msgstr ""
"βιβλίο διευθύνσεων, χειρισμός φακέλων, Αναζήτηση μηνυμάτων και ορθογραφικό "
"έλεγχο."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
#, fuzzy
#| msgid ""
#| "You can access Roundcube from imaps://imap."
"παράδειγμα.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5700,7 +5734,7 @@ msgstr ""
"settings/security/lesssecureapps\">https://www.google.com/settings/security/"
"lesssecureapps )."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "Πρόγραμμα-πελάτης ηλεκτρονικού ταχυδρομείου"
@@ -5715,6 +5749,45 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Όταν είναι ενεργοποιημένο, το Tiny Tiny RSS είναι προσβάσιμο από κάθε χρήστη με {box_name} πιστοποιητικά."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Διαβάστε και εγγραφείτε τροφοδοσίες ειδήσεων"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5758,15 +5831,15 @@ msgstr ""
"Οικιακό μέρισμα - κάθε χρήστης στην ομάδα freedombox-share μπορεί να έχει το "
"δικό του προσωπικό διαμέρισμα στο δίσκο."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Πρόσβαση στα ιδιωτικά μερίσματα"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
#, fuzzy
#| msgid "Distributed File Storage"
msgid "Network File Storage"
@@ -5921,15 +5994,15 @@ msgstr ""
"δημιουργία προφίλ χρήστη από τις μηχανές αναζήτησης. Δεν αποθηκεύει cookies "
"από προεπιλογή."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Αναζήτηση στο διαδίκτυο"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Διαδικτυακή αναζήτηση"
@@ -6021,7 +6094,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Αναφορά ασφαλείας"
@@ -6098,12 +6171,12 @@ msgstr "Όχι"
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Σφάλμα κατά τη ρύθμιση περιορισμένης πρόσβασης: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Ενημερώθηκαν οι ρυθμίσεις παραμέτρων ασφαλείας"
@@ -6128,11 +6201,11 @@ msgstr ""
"Σημειώστε ότι το Shaarli υποστηρίζει μόνο ένα λογαριασμό χρήστη, το οποίο θα "
"πρέπει να ρυθμίσετε την αρχική επίσκεψη."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Σελιδοδείκτες"
@@ -6176,11 +6249,11 @@ msgstr ""
"την εφαρμογή που επιθυμείτε στη διεύθυνση του freedomox http: // "
"freedombox_address: 1080 /"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Διακομιστής μεσολάβησης τύπου socks5"
@@ -6212,7 +6285,7 @@ msgid "Encryption method. Must match setting on server."
msgstr ""
"Μέθοδος κρυπτογράφησης. Πρέπει να ταιριάζει με τη ρύθμιση στο διακομιστή."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6221,7 +6294,7 @@ msgstr ""
"To Sharing σάς επιτρέπει να μοιράζεστε αρχεία και φακέλους στο {box_name} "
"μέσω του διαδικτύου με επιλεγμένες ομάδες χρηστών."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Κοινή χρήση"
@@ -6279,28 +6352,28 @@ msgstr ""
"Τα μερίσματα θα πρέπει να είναι είτε δημόσια είτε να μοιράζονται με "
"τουλάχιστον μία ομάδα"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Προσθήκη μερίσματος"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Δεν έχουν ρυθμιστεί μερίσματα."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Moνοπάτι Δίσκου"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Μοιράζεται με"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Με ομάδες"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "δημόσια πρόσβαση"
@@ -6466,7 +6539,7 @@ msgstr "Ημερομηνία"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Διαγραφή στιγμιότυπων"
@@ -6524,58 +6597,58 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "Επαναφορά στο στιγμιότυπο #%(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
#, fuzzy
#| msgid "Repository created."
msgid "manually created"
msgstr "Το αποθετήριο δημιουργήθηκε."
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Διαχείριση στιγμιότυπων"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Το στιγμιότυπο δημιουργήθηκε."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Η ρύθμιση παραμέτρων των στιγμιότυπων αποθήκευσης Ενημερώθηκε"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Σφάλμα ενέργειας: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Διαγράφηκαν επιλεγμένα στιγμιότυπα"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
"Το στιγμιότυπο χρησιμοποιείται αυτήν τη στιγμή. Παρακαλώ προσπαθήστε ξανά "
"αργότερα."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "Πραγματοποιήθηκε επαναφορά στο στιγμιότυπο #{number}."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
"Πρέπει να γίνει επανεκκίνηση του συστήματος για να ολοκληρωθεί η επαναφορά."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Επαναφορά σε στιγμιότυπο"
@@ -6592,7 +6665,7 @@ msgstr ""
"αντιγράψει αρχεία ή να εκτελέσει άλλες υπηρεσίες χρησιμοποιώντας αυτές τις "
"συνδέσεις."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Διακομιστής SSH"
@@ -6639,7 +6712,7 @@ msgstr "Έλεγχος ταυτότητας SSH με κωδικό πρόσβασ
msgid "SSH authentication with password enabled."
msgstr "Έλεγχος ταυτότητας SSH με κωδικό πρόσβασης ενεργοποιήθηκε."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Ενιαία είσοδος"
@@ -6665,92 +6738,92 @@ msgstr ""
"χρησιμοποιούνται προς το παρόν, να προσθέσετε και να αφαιρέσετε αφαιρούμενα "
"μέσα, επεκτείνετε το root διαμέρισμα κλπ."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Χώρος Αποθήκευσης"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} bytes"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "Η ενέργεια απέτυχε."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "Η ενέργεια ακυρώθηκε."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Η συσκευή είναι ήδη προς αφαίρεση."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr "Η ενέργεια δεν υποστηρίζεται λόγω μη υποστήριξης προγραμματος οδηγού."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "Η ενέργεια απέτυχε επειδή διήρκησε πολύ χρόνο."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
"Η ενέργεια θα ξυπνήσει ένα δίσκο που είναι σε μια βαθιά κατάσταση ύπνου."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Γίνεται προσπάθεια αφαίρεσης μιας συσκευής που είναι απασχολημένη."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "Η ενέργια έχει ήδη ακυρωθεί."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "Δεν έχετε εξουσιοδότηση για την εκτέλεση της συγκεκριμένης ενέργειας."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Η συσκευή έχει ήδη προστεθεί."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Η συσκευή δεν είναι τοποθετημένη."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "Δεν έχετε εξουσιοδότηση για την εκτέλεση της συγκεκριμένης ενέργειας."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Η συσκευή έχει ήδη προστεθεί από άλλο χρήστη."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, fuzzy, no-python-format, python-brace-format
#| msgid ""
#| "Warning: Low space on system partition ({percent_used}% used, "
@@ -6760,15 +6833,15 @@ msgstr ""
"Προειδοποίηση: χαμηλός χώρος στο διαμέρισμα του συστήματος ({percent_used}% "
"χρησιμοποιείται, {free_space} είναι ελεύθερος)."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6927,16 +7000,16 @@ msgstr ""
"{box_name} είναι διαθέσιμη μόνο για χρήστες που ανήκουν στην ομάδα \"admin"
"\" (διαχειριστών)."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Διαχειριστείτε την εφαρμογή Syncthing"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Συγχρονισμός αρχείων"
@@ -6962,40 +7035,40 @@ msgid ""
"TCP port 9050."
msgstr "Μια θύρα Tor SOCKS είναι διαθέσιμη στη θύρα 9050 του %(box_name)s σας."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Υπηρεσία κρεμυδιού Tor"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Tor διακομιστής μεσολάβησης τύπου socks5"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Γέφυρα/μεσολαβητής Tor"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Θύρα μεσολαβητή Tor διαθέσιμη"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3 μεταφορά καταχωρήθηκε"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4 μεταφορά καταχωρήθηκε"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Πρόσβαση στη διεύθυνση URL {url} με tcp {kind} μέσω του Tor"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Επιβεβαίωση χρήσης του Tor στο {url} στο προτόκολλο TCP {kind}"
@@ -7007,15 +7080,11 @@ msgstr ""
"Εισαγάγετε μια έγκυρη γέφυρα με αυτήν τη μορφή: [μεταφορά] IP: ORPort "
"[αποτύπωμα]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Ενεργοποίηση Tor"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Χρησιμοποιήστε εξωτερικές γέφυρες για να συνδεθείτε στο δίκτυο Tor"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -7026,11 +7095,11 @@ msgstr ""
"επιλογή εάν η υπηρεσία παροχής Internet (ISP) αποκλείει ή χρησιμοποιεί "
"συνδέσεις στο δίκτυο Tor. Αυτό θα απενεργοποιήσει τh λειτουργία μεσολαβητή."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Εξωτερικές γέφυρες"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -7041,11 +7110,11 @@ msgstr ""
"τις πληροφορίες της γέφυρας εδώ. Οι τρέχουσες υποστηριζόμενες μεταφορές "
"είναι 'καμία', obfs3, obfs4 και scamblesuit."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Ενεργοποίηση μεσολαβητή Tor"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -7056,11 +7125,11 @@ msgstr ""
"δωρίσει ένα μερος της ταχήτυτας της σύνδεσής σας στο δίκτυο Tor. Κάντε αυτό "
"αν έχετε περισσότερα από 2 Mbps ταχύτητα μεταφόρτωσης και λήψης."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Ενεργοποίηση γέφυρας μεσολαβητή Tor"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -7071,11 +7140,11 @@ msgstr ""
"Tor που καθιστά δυσκολότερη τη λογοκρισία αυτού του κόμβου. Αυτό βοηθά τους "
"άλλους να παρακάμψουν τη λογοκρισία."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Ενεργοποίηση της κρυφής υπηρεσίας Tor"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -7086,11 +7155,11 @@ msgstr ""
"υπηρεσίες (όπως wiki ή chat) χωρίς να αποκαλύψει τη θέση της. Να μην "
"χρησιμοποιείται για πληρη ανωνυμία παρόλαυτα."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Κατεβάστε πακέτα λογισμικού μέσω του Tor"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -7100,7 +7169,7 @@ msgstr ""
"εγκαταστάσεις και αναβαθμίσεις. Αυτό προσθέτει ένα βαθμό ιδιωτικότητας και "
"ασφάλειας κατά τη λήψη λογισμικού."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Καθορίστε τουλάχιστον μία εξωτερική γέφυρα για να χρησιμοποιήσετε εξωτερικές "
@@ -7114,21 +7183,25 @@ msgstr "Tor πρόγραμμα περιήγησης"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: διακομιστής μεσολάβησης με Tor"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "Οι ρυθμίσεις Tor ενημερώνονται"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Υπηρεσία κρεμμυδιού"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Θύρες"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Οι ρυθμίσεις δεν άλλαξαν"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Παρουσιάστηκε σφάλμα κατά τη ρύθμιση παραμέτρων."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Σφάλμα κατά την εγκατάσταση της εφαρμογής: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -7181,7 +7254,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -7222,15 +7295,11 @@ msgstr ""
"Tiny Tiny RSS, χρησιμοποιήστε τη διεύθυνση URL /tt-rss-app για τη σύνδεση."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Διαβάστε και εγγραφείτε τροφοδοσίες ειδήσεων"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Αναγνώστης ειδήσεων"
@@ -7252,8 +7321,8 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
#, fuzzy
@@ -7261,30 +7330,30 @@ msgstr ""
msgid "Software Update"
msgstr "Το μέρισμα διαγράφηκε."
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
#| msgid "FreedomBox Foundation"
msgid "FreedomBox Updated"
msgstr "Ίδρυμα FreedomBox"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
#, fuzzy
#| msgid "Automatic upgrades disabled"
msgid "Distribution update started"
msgstr "Oι αυτόματες ενημερώσεις απενεργοποιήθηκαν"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7382,6 +7451,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Κλείσιμο"
@@ -7453,43 +7523,67 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Ενεργοποίηση αρχείων καταγραφής πρόσφατων ενημερώσεων"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Oι αυτόματες ενημερώσεις ενεργοποιήθηκαν"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Test distribution upgrade now"
+msgstr "Oι αυτόματες ενημερώσεις ενεργοποιήθηκαν"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "Σφάλμα κατά τη ρύθμιση των αυτόματων ενημερώσεων: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Oι αυτόματες ενημερώσεις ενεργοποιήθηκαν"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Oι αυτόματες ενημερώσεις απενεργοποιήθηκαν"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
#, fuzzy
#| msgid "Automatic upgrades enabled"
msgid "Distribution upgrade enabled"
msgstr "Oι αυτόματες ενημερώσεις ενεργοποιήθηκαν"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
#, fuzzy
#| msgid "Automatic upgrades disabled"
msgid "Distribution upgrade disabled"
msgstr "Oι αυτόματες ενημερώσεις απενεργοποιήθηκαν"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Ξεκίνησε η διαδικασία αναβάθμισης."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "Η εκκίνηση της αναβάθμισης απέτυχε."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Oι αυτόματες ενημερώσεις ενεργοποιήθηκαν"
+
#: plinth/modules/users/__init__.py:29
#, fuzzy
#| msgid ""
@@ -7519,15 +7613,15 @@ msgstr ""
"σελίδα. Ωστόσο, μόνο οι χρήστες της ομάδας admin μπορούν να "
"τροποποιήσουν τις εφαρμογές ή τις ρυθμίσεις του συστήματος."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Χρήστες και ομάδες"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Πρόσβαση σε όλες τις υπηρεσίες και τις ρυθμίσεις συστήματος"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Ελέγξτε την καταχώρηση LDAP \"{search_item}\""
@@ -8194,14 +8288,14 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
#, fuzzy
#| msgid "Address"
msgid "WordPress"
msgstr "Διεύθυνση"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
#, fuzzy
#| msgid "Wiki and Blog"
msgid "Website and Blog"
@@ -8240,11 +8334,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -8280,37 +8374,135 @@ msgstr "PPPoE"
msgid "Generic"
msgstr "Γενικός"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Σφάλμα κατά τη ρύθμιση του ονόματος του υπολογιστή: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Σφάλμα κατά την εγκατάσταση"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Existing Backups"
+msgid "Error running apt-get"
+msgstr "Υπάρχοντα αντίγραφα ασφαλείας"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "Εγκαθίσταται"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "Λήψη"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "Αλλαγή μέσου"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "αρχείο ρυθμίσεων: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Εγκαταστήσετε Εφαρμογές"
+
+#: plinth/setup.py:42
+#, fuzzy
+#| msgid "Updating..."
+msgid "Updating app"
+msgstr "Eνημερώνεται..."
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Σφάλμα κατά την εγκατάσταση της εφαρμογής: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Σφάλμα κατά την εγκατάσταση της εφαρμογής: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Σφάλμα κατά την εγκατάσταση της εφαρμογής: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Σφάλμα κατά την εγκατάσταση της εφαρμογής: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Η εφαρμογή εγκαταστάθηκε."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Τελευταία ενημέρωση"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Εγκαταστήσετε Εφαρμογές"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Σφάλμα κατά την εγκατάσταση της εφαρμογής: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Σφάλμα κατά την εγκατάσταση της εφαρμογής: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Η εφαρμογή εγκαταστάθηκε."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Απαγορεύεται"
@@ -8375,7 +8567,7 @@ msgstr ""
msgid "Installation"
msgstr "Εγκατάσταση"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Η υπηρεσία %(service_name)s δεν εκτελείται."
@@ -8655,6 +8847,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr "Ρύθμιση του %(box_name)s"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Η εφαρμογή εγκαταστάθηκε."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Να εγκατασταθεί αυτή η εφαρμογή;"
@@ -8664,59 +8860,123 @@ msgid "This application needs an update. Update now?"
msgstr "Αυτή η εφαρμογή χρειάζεται μια ενημέρωση. Ενημέρωση τώρα?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Εκτελείται ήδη μια άλλη εγκατάσταση ή αναβάθμιση. Παρακαλώ περιμένετε λίγα "
-"λεπτά πριν προσπαθήσετε ξανά."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
"Αυτή η εφαρμογή δεν είναι αυτή τη στιγμή διαθέσιμη στο λειτουργικό σας."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Εγκατάσταση"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Ενημερωμένη έκδοση"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Εκτελείται διαδικασία πριν από την εγκατάσταση"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Εγκατάσταση"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Εκτέλεση διαδικασία μετά την εγκατάσταση"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit user %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Επεξεργασία χρήστη %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Εγκατάσταση του %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "ολοκληρώθηκε το %(percentage)s%%"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Οι ρυθμίσεις δεν άλλαξαν"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#~ msgid "Network Connections"
+#~ msgstr "Συνδέσεις δικτύου"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Ενεργοποίηση Tor"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Οι ρυθμίσεις Tor ενημερώνονται"
+
+#~ msgid "Error during installation"
+#~ msgstr "Σφάλμα κατά την εγκατάσταση"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "Χρήση του DNSSEC σε IPv {kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Εκτελείται ήδη μια άλλη εγκατάσταση ή αναβάθμιση. Παρακαλώ περιμένετε "
+#~ "λίγα λεπτά πριν προσπαθήσετε ξανά."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Εκτελείται διαδικασία πριν από την εγκατάσταση"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Εκτέλεση διαδικασία μετά την εγκατάσταση"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Εγκατάσταση του %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "ολοκληρώθηκε το %(percentage)s%%"
+
+#~ 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."
+
+#~ msgid "Access"
+#~ msgstr "Πρόσβαση"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr ""
+#~ "To Cockpit θα λειτουργήσει μόνο όταν έχετε πρόσβαση σε αυτό "
+#~ "χρησιμοποιώντας τις ακόλουθες διευθύνσεις URL."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Διακομιστής Διαδικτύου (Web Server)"
+
#, fuzzy
#~| msgid "Server"
#~ msgid "Server URL"
@@ -9152,11 +9412,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Σφάλμα κατά τη ρύθμιση ονόματος διδαδικτύου: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Παρουσιάστηκε σφάλμα κατά τη ρύθμιση παραμέτρων."
-
#, fuzzy
#~| msgid "Directory does not exist."
#~ msgid "User does not exist"
diff --git a/plinth/locale/es/LC_MESSAGES/django.po b/plinth/locale/es/LC_MESSAGES/django.po
index 7e2c6a021..ddb9b6291 100644
--- a/plinth/locale/es/LC_MESSAGES/django.po
+++ b/plinth/locale/es/LC_MESSAGES/django.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
-"PO-Revision-Date: 2022-03-10 22:59+0000\n"
-"Last-Translator: Nathaniel Ramos Alexander \n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
+"PO-Revision-Date: 2022-08-19 12:58+0000\n"
+"Last-Translator: Fioddor Superconcentrado \n"
"Language-Team: Spanish \n"
"Language: es\n"
@@ -17,13 +17,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.12-dev\n"
+"X-Generator: Weblate 4.14-dev\n"
#: doc/dev/_templates/layout.html:11
msgid "Page source"
msgstr "Página origen"
-#: plinth/context_processors.py:23 plinth/views.py:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr "FreedomBox"
@@ -53,10 +53,24 @@ msgid "Cannot connect to {host}:{port}"
msgstr "No se pudo conectar a {host}:{port}"
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+#, fuzzy
+#| msgid "Repository not found"
+msgid "Repository to backup to"
+msgstr "Repositorio no encontrado"
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr "Seleccione el nombre de dominio que usará esta aplicación"
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
@@ -64,12 +78,12 @@ msgstr ""
"¡Atención! Puede que la aplicación no funcione correctamente si cambia el "
"nombre de dominio más adelante."
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr "Dominio TLS"
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
@@ -78,41 +92,27 @@ msgstr ""
"Selecciona un dominio con el que usar TLS. Si la lista está vacía, por "
"favor, configura al menos un dominio con certificados."
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr "Idioma"
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr "Idioma para mostrar esta interfaz web"
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr "Configure la preferencia de idioma en el navegador"
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr "Aplicación instalada."
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr "Error al instalar la aplicación: {string} {details}"
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr "Error al instalar la aplicación: {error}"
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr "Servidor HTTP Apache"
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr "Servidor Web"
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr "Interfaz web (Plinth) de {box_name}"
@@ -144,11 +144,11 @@ msgstr ""
"desactivado para incrementar la seguridad, especialmente cuando se conecta a "
"redes locales inseguras o de poca confianza."
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr "Detección de servicios"
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr "Dominio de Red Local"
@@ -158,12 +158,12 @@ msgstr ""
"Copias de seguridad le permite crear y gestionar archivos de copia de "
"seguridad."
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr "Copias de seguridad"
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
@@ -171,18 +171,18 @@ msgstr ""
"Por la seguridad de sus datos habilite un respaldo agendado. Preferíblemente "
"uno remoto o en un disco externo."
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr "Habilitar un respaldo agendado"
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr "Ir a {app_name}"
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
@@ -191,7 +191,7 @@ msgstr ""
"Falló un respaldo agendado. Los últimos {error_count} intentos no lo "
"lograron. El último fallo es: {error_message}"
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr "Error al respaldar"
@@ -277,7 +277,7 @@ msgstr "Repositorio"
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr "Nombre"
@@ -395,8 +395,8 @@ msgid ""
"Password of the SSH Server. SSH key-based authentication is not yet "
"possible."
msgstr ""
-"Contraseña del servidor SSH. La autenticación basada en clave SSH aún "
-"no es posible."
+"Contraseña del servidor SSH. La autenticación basada en clave SSH aún no "
+"es posible."
#: plinth/modules/backups/forms.py:267
msgid "Remote backup repository already exists."
@@ -446,7 +446,7 @@ msgid "{box_name} storage"
msgstr "Almacenamiento en {box_name}"
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr "Crear una copia de seguridad nueva"
@@ -483,26 +483,22 @@ msgid "Existing Backups"
msgstr "Copias de seguridad existentes"
#: plinth/modules/backups/templates/backups_add_remote_repository.html:19
-#, fuzzy, python-format
-#| msgid ""
-#| "The credentials for this repository are stored on your %(box_name)s. To restore a backup on a new %(box_name)s you need the ssh credentials "
-#| "and, if chosen, the encryption passphrase."
+#, python-format
msgid ""
"The credentials for this repository are stored on your %(box_name)s. "
"To restore a backup on a new %(box_name)s you need the SSH credentials and, "
"if chosen, the encryption passphrase."
msgstr ""
"Las credenciales para este repositorio están almacenadas en su %(box_name)s. "
-" Para restaurar una copia de seguridad en una nueva %(box_name)s "
-"necesita las credenciales ssh y, si se elige, la contraseña de cifrado."
+" Para restaurar una copia de respaldo en una nueva %(box_name)s "
+"necesitas las credenciales SSH, y opcionalmente la contraseña de cifrado."
#: plinth/modules/backups/templates/backups_add_remote_repository.html:28
msgid "Create Location"
msgstr "Crear sitio"
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr "Crear repositorio"
@@ -558,7 +554,7 @@ msgstr "Descargar"
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr "Restaurar"
@@ -649,117 +645,113 @@ msgid "How to verify?"
msgstr "Cómo verificar?"
#: plinth/modules/backups/templates/verify_ssh_hostkey.html:45
-#, fuzzy
-#| msgid ""
-#| "Run the following command on the SSH host machine. The output should "
-#| "match one of the provided options. You can also use dsa, ecdsa, ed25519 "
-#| "etc. instead of rsa, by choosing the corresponding file."
msgid ""
"Run the following command on the SSH host machine. The output should match "
"one of the provided options. You can also use DSA, ECDSA, Ed25519 etc. "
"instead of RSA, by choosing the corresponding file."
msgstr ""
-"Ejecute el siguiente comando en el anfitrión SSH. La salida debería "
-"coincidir con alguna de las opciones ofrecidas. También puede usar dsa, "
-"ecdsa, ed25519, etc. en vez de rsa eligiendo el archivo correspondiente."
+"Ejecute el siguiente comando en el ordenador anfitrión SSH. La salida "
+"debería coincidir con alguna de las opciones ofrecidas. También puede usar "
+"DSA, ECDSA, Ed25519 , etc. en vez de RSA eligiendo el archivo "
+"correspondiente."
#: plinth/modules/backups/templates/verify_ssh_hostkey.html:60
msgid "Verify Host"
msgstr "Verificar anfitrión"
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr "Calendario de respaldos actualizado."
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr "Agendar respaldos"
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr "Archivo creado."
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr "Borrar archivo"
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr "Archivo borrado."
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr "Subir y restaurar una copia de seguridad"
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr "Archivos restaurados desde la copia de seguridad."
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr "No se encontraron copias de seguridad."
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr "Restaurar desde la copia de seguridad subida"
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr "No hay más discos disponibles para añadir un repositorio."
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr "Crear repositorio de copias de seguridad"
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr "Crear repositorio de copias de seguridad remotas"
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr "Añadido nuevo repositorio SSH remoto."
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr "Verificar la clave de anfitrión SSH"
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr "Clave SSH de anfitrión verificada."
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr "Anfitrión SSH verificado."
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr "No se pudo verificar la clave pública SSH del anfitrión."
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr "Ha fallado la autenticación en el servidor remoto."
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr "Error al conectar con el servidor: {}"
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr "Repositorio eliminado."
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr "Eliminar repositorio"
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr "Repositorio dado de baja. Las copias de seguridad no se han borrado."
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr "¡No se pudo desmontar!"
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr "Montaje fallido"
@@ -799,39 +791,39 @@ msgstr ""
"distribuirlas a gente o grupos. Así podrás revocar más tarde el acceso a una "
"persona o grupo determinados eliminando su contraseña de la lista."
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr "Leer un fichero, si se dispone de un enlace web al mismo"
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr "Crear o subir archivos"
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr "Listar todos los archivos y sus enlaces web"
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr "Eliminar archivos"
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr "Administrar archivos: (des)bloquear archivos"
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr "Ninguno, se requiere contraseña siempre"
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr "Listar y leer todos los archivos"
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr "bepasty"
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr "Compartir archivos y recortes"
@@ -925,16 +917,15 @@ msgstr "Eliminar"
msgid "Admin"
msgstr "Admin"
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr "Configuración actualizada."
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr "Ha habido un error en la configuración."
@@ -970,11 +961,11 @@ msgstr ""
"solicitadas por otros dispositivos conectados a su red local. Todavía no es "
"compatible con el servicio para compartir la conexión a Internet."
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr "BIND"
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr "Servidor de Nombres de Dominio"
@@ -1028,12 +1019,12 @@ msgstr "Direcciones IP"
msgid "Refresh IP address and domains"
msgstr "Actualizar direcciones IP y dominios"
-#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
-#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -1074,15 +1065,15 @@ msgstr ""
"Solo los usuarios del grupo calibre podrán acceder a la app. Todos "
"los usuarios con acceso pueden usar todas las bibliotecas."
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "Usar bibliotecas Calibre"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "Calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "Biblioteca de libros electrónicos"
@@ -1095,6 +1086,8 @@ msgid ""
"Only letters of the English alphabet, numbers and the characters _ . and - "
"without spaces or special characters. Example: My_Library_2000"
msgstr ""
+"Solo letras sin tilde, números, punto y guiones (- ó _), sin espacios, ni Ñ, "
+"ni Ç. Ejemplo: Mi_biblioteca_2000"
#: plinth/modules/calibre/forms.py:30
msgid "A library with this name already exists."
@@ -1144,25 +1137,25 @@ msgstr "Ir a biblioteca %(library)s"
msgid "Delete library %(library)s"
msgstr "Eliminar biblioteca %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "Biblioteca creada."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "Ha habido un error al crear la biblioteca."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} eliminado."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "No se pudo eliminar {name}: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1175,7 +1168,7 @@ msgstr ""
"muchas funciones avanzadas que normalmente no requieren atención. También "
"ofrece una terminal de consola basada en web."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1187,7 +1180,7 @@ msgstr ""
"puertos específicos del firewall y opciones avanzadas de red como bonding, "
"bridging y manejo de VLAN."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1196,32 +1189,16 @@ msgstr ""
"Puede acceder cualquier usuario/a en {box_name} "
"que pertenezca al grupo «admin»."
-#: plinth/modules/cockpit/__init__.py:40
-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 requiere acceso a través de un nombre de dominio. Si se usa una "
-"dirección IP como parte de la URL no funcionará."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Administración del servidor"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Acceso"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Cockpit solo funciona cuando se usan las siguientes URL."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1236,7 +1213,7 @@ msgstr "Configuración general"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Configurar"
@@ -1332,43 +1309,69 @@ msgid "Show apps and features that require more technical knowledge."
msgstr ""
"Muestra aplicaciones y funciones que requieren mayor conocimiento técnico."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr "Registro global de actividad del sistema"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr "Deshabilitar registros de ejecución por privacidad"
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+"Para mejorar el rendimiento, mantén algunos en memoria hasta el próximo "
+"reinicio"
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr "Escribir en disco. Útil para depuración"
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+"Los registros de ejecución contienen información de quién accedió al sistema "
+"y detalles para depuración de varios servicios"
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Error al definir el nombre de anfitrión: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Asignar nombre de anfitrión"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Error al establecer nombre de dominio: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Asignar nombre de dominio"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Error al configurar la página de inicio del servidor web: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Página de inicio del servidor web configurada"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Error al cambiar al modo avanzado: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Mostrando aplicaciones y funciones avanzadas"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Ocultando aplicaciones y funciones avanzadas"
@@ -1396,19 +1399,17 @@ msgstr ""
"\"{e_url}\">ejabberd tienen que configurarse con los detalles que se "
"proporcionan aquí."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "Asistente VoIP"
#: plinth/modules/coturn/forms.py:22
-#, fuzzy
-#| msgid "STUN/TURN Server URIs"
msgid "Invalid list of STUN/TURN Server URIs"
-msgstr "URIs de servidor STUN/TURN"
+msgstr "Lista de URIs de servidores STUN/TURN inválidas"
#: plinth/modules/coturn/templates/coturn.html:15
msgid "Use the following URLs to configure your communication server:"
@@ -1426,11 +1427,11 @@ msgstr ""
"El servidor de tiempo de red (servicio NTP) mantiene sincronizada la hora "
"del sistema con servidores de Internet."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Fecha y hora"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Hora sincronizada con el servidor NTP"
@@ -1471,17 +1472,17 @@ msgstr ""
"La clave de acceso por defecto es 'deluge' pero es muy recomendable que nada "
"más activar el servicio acceda al mismo y la cambie."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Descargar archivos usando aplicaciones BitTorrent"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "Cliente web de BitTorrent"
@@ -1502,49 +1503,49 @@ msgstr ""
"confirmar que las aplicaciones y servicios están funcionando como se espera."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnósticos"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "ok."
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "Falló"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "error"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "aviso"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
"Habría que deshabilitar algunas apps para reducir el consumo de memoria."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Hay que evitar instalar más apps en este sistema."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1553,7 +1554,7 @@ msgstr ""
"El sistema va justo de memoria: {percent_used}% usada, {memory_available} "
"{memory_available_unit} libres. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Poca memoria libre"
@@ -1603,7 +1604,7 @@ msgstr "Test"
msgid "Result"
msgstr "Resultado"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Test de diagnóstico"
@@ -1630,36 +1631,29 @@ msgid ""
msgstr ""
"La solución es asignar un nombre DNS a su dirección IP y actualizarlo cada "
"vez que su proveedor de Internet cambie esa dirección. Un DNS dinámico "
-"permite enviar su dirección IP a un servidor GnuDIP. A continuación el servidor "
+"permite enviar su dirección IP a un servidor GnuDIP. A continuación el servidor "
"asigna su nombre DNS a esta nueva IP de forma que cualquiera que pida su "
"nombre DNS obtendrá la dirección IP actualizada."
#: plinth/modules/dynamicdns/__init__.py:41
-#, fuzzy
-#| msgid ""
-#| "If you are looking for a free dynamic DNS account, you may find a free "
-#| "GnuDIP service at gnudip.datasystems24.net or you may find free update "
-#| "URL based services at freedns.afraid.org."
msgid ""
"If you are looking for a free dynamic DNS account, you may find a free "
"GnuDIP service at ddns."
"freedombox.org or you may find free update URL based services at freedns.afraid.org."
msgstr ""
-"Si necesita una cuenta libre de DNS dinámico, puede encontrar un servicio "
-"GnuDIP gratuito en gnudip.datasystems24.net o un servicio basado en URL de "
-"actualización en freedns.afraid.org."
+"Si necesitas una cuenta libre de DNS dinámico, puede encontrar un servicio "
+"GnuDIP gratuito en gnudip.datasystems24.net o un servicio gratis basado en URL "
+"de actualización en freedns.afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Cliente de DNS dinámico"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Nombre de dominio dinámico"
@@ -1714,12 +1708,7 @@ msgid "Leave this field empty if you want to keep your current password."
msgstr "Deje vacío este campo si quiere conservar su clave actual."
#: plinth/modules/dynamicdns/forms.py:43
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "Optional Value. If your {box_name} is not connected directly to the "
-#| "Internet (i.e. connected to a NAT router) this URL is used to determine "
-#| "the real IP address. The URL should simply return the IP where the client "
-#| "comes from (example: http://myip.datasystems24.de)."
+#, python-brace-format
msgid ""
"Optional Value. If your {box_name} is not connected directly to the Internet "
"(i.e. connected to a NAT router) this URL is used to determine the real IP "
@@ -1729,7 +1718,7 @@ msgstr ""
"Valor opcional. Si su {box_name} no está conectado directamente a Internet "
"(p.e. está conectado a un router NAT), esta URL se usará para obtener su "
"número IP real. La URL debería devolver simplemente el número IP del cliente "
-"(p.e. http://myip.datasystems24.de)."
+"(p.ej. https://ddns.freedombox.org/ip/)."
#: plinth/modules/dynamicdns/forms.py:51
msgid "The username that was used when the account was created."
@@ -1740,8 +1729,6 @@ msgid "GnuDIP"
msgstr "GnuDIP"
#: plinth/modules/dynamicdns/forms.py:57
-#, fuzzy
-#| msgid "other update URL"
msgid "Other update URL"
msgstr "Otra URL de actualización"
@@ -1787,19 +1774,18 @@ msgid "Use IPv6 instead of IPv4"
msgstr "Use IPv6 en vez de IPv4"
#: plinth/modules/dynamicdns/forms.py:123
-#, fuzzy
-#| msgid "secrets required"
msgid "This field is required."
-msgstr "se requieren secretos"
+msgstr "Este campo es obligatorio."
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1818,26 +1804,20 @@ msgid "Last update"
msgstr "Última actualización"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:21
-#, fuzzy
-#| msgid "IP address"
msgid "IP Address"
msgstr "Dirección IP"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:32
-#, fuzzy
-#| msgid "Access"
msgid "Success"
-msgstr "Acceso"
+msgstr "Éxito"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:36
-#, fuzzy
-#| msgid "failed"
msgid "Failed"
msgstr "Falló"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:52
msgid "No status available."
-msgstr "Estado de actualización No disponible"
+msgstr "Estado de actualización No disponible."
#: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26
msgid "Connection timed out"
@@ -1872,35 +1852,30 @@ msgid ""
"any user with a {box_name} login."
msgstr ""
"Para comunicarse puede usar el cliente web o "
-"cualquier otro cliente XMPP. Cuando se activa, ejabberd está disponible "
-"para cualquier usuario con acceso a {box_name}."
+"cualquier otro cliente XMPP. Cuando se activa, ejabberd está disponible para "
+"cualquier usuario con acceso a {box_name}."
#: plinth/modules/ejabberd/__init__.py:42
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install "
-#| "the Coturn app or configure an external server."
+#, python-brace-format
msgid ""
"ejabberd needs a STUN/TURN server for audio/video calls. Install the Coturn app or configure an external server."
msgstr ""
-"Matrix Synapse necesita un servidor STUN/TURN para llamadas de audio/video. "
+"ejabberd necesita un servidor STUN/TURN para llamadas de audio/video. "
"Instalar la app Coturn o configurar un servidor "
"externo."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Servidor de Chat"
#: plinth/modules/ejabberd/forms.py:19
-#, fuzzy
-#| msgid "Domain Names"
msgid "Domain names"
msgstr "Nombres de dominio"
@@ -1909,6 +1884,9 @@ msgid ""
"Domains to be used by ejabberd. Note that user accounts are unique for each "
"domain, and migrating users to a new domain name is not yet implemented."
msgstr ""
+"Dominios para que use ejabberd. Nota que las cuentas de usuario son únicas "
+"por dominio y la migración de usuarios a otro dominio no está implementada "
+"aún."
#: plinth/modules/ejabberd/forms.py:26
msgid "Enable Message Archive Management"
@@ -2003,7 +1981,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2032,6 +2010,10 @@ msgid ""
"restrict outgoing email. Some lift the restriction after an explicit "
"request. See manual page for more information."
msgstr ""
+"Actualmente el servidor de correo no funciona con servicios gratuitos de "
+"dominio, incluyendo los que proporciona la FreedomBox Foundation. Muchos "
+"proveedores de internet también restringen el correo saliente. Algunos "
+"levantan la restricción a demanda. Más información en la página del manual."
#: plinth/modules/email/__init__.py:35
#, python-brace-format
@@ -2064,19 +2046,19 @@ msgstr ""
"Durante la instalación se desinstalará cualquier otro servidor de correo "
"electrónico que haya en el sistema."
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr "Postfix/Dovecot"
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "Servidor de correo electrónico"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr "Mis alias de correo electrónico"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr "Administrar Alias para el buzón de correo electronico"
@@ -2112,7 +2094,7 @@ msgstr "No puede ser un número"
msgid "Aliases"
msgstr "Alias"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2198,7 +2180,7 @@ msgstr ""
"de su {box_name}. Mantenerlo activado y correctamente configurado reduce el "
"riesgo de amenazas de seguridad desde Internet."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Cortafuegos"
@@ -2360,15 +2342,15 @@ msgstr ""
"Para aprender más acerca de cómo usar Git visita el tutorial de Git."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Acceso de lectura y escritura para repositorios Git"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Alojamiento simple para Git"
@@ -2465,54 +2447,54 @@ msgstr "Borrar Repositorio Git %(name)s"
msgid "Delete this repository permanently?"
msgstr "¿Eliminar este repositorio definitivamente?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Repositorio creado."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Ha habido un error al crear el repositorio."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Repositorio editado."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Editar repositorio"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Documentación"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Manual"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Obtener ayuda"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Enviar Comentarios"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Contribuír"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Acerca de"
@@ -2647,6 +2629,43 @@ msgstr ""
msgid "Learn more..."
msgstr "Aprenda más..."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr "¿Cómo puedo ayudar?"
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+"Abajo hay una lista de opciones para contribuir a Debian. Se ha filtrado "
+"para mostrar solo los paquetes instalados en el sistema."
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr "Mostrar problemas"
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr "Paquetes que se eliminarán de Debian en pruebas"
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr "paquete de código fuente:"
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr "Paquetes ausentes en Debian en pruebas"
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr "Buenos primeros tickets para principiantes"
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr "Problemas para los que el mantenedor del paquete ha pedido ayuda"
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2725,10 +2744,9 @@ msgid ""
"channel using the IRC web interface."
msgstr ""
"Muchos de los participantes del proyecto %(box_name)s están disponibles en "
-"la red IRC irc.oftc.net. Únase y solicite ayuda en el canal #freedombox usando la "
-"interfaz web IRC."
+"la red IRC irc.oftc.net. Únase y solicite ayuda en el canal #freedombox usando la interfaz web IRC."
#: plinth/modules/help/templates/help_manual.html:18
msgid "Download as PDF"
@@ -2789,16 +2807,16 @@ msgstr ""
"Por favor elimine las contraseñas y cualquier información personal del "
"registro antes de enviar el informe de fallos."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Documentación y Preguntas frecuentes"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "Acerca de {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "Manual de {box_name}"
@@ -2831,19 +2849,19 @@ msgstr ""
"La primer visita a la interfaz web provista iniciará el proceso de "
"configuración."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "Administrar la aplicación I2P"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Red anónima"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "Proxy I2P"
@@ -2861,19 +2879,14 @@ msgid "Anonymous Torrents"
msgstr "Torrents Anónimos"
#: plinth/modules/i2p/views.py:16
-#, fuzzy
-#| msgid ""
-#| "I2P lets you browse the Internet and hidden services (eepsites) "
-#| "anonymously. For this, your browser, preferably a Tor Browser, needs to "
-#| "be configured for a proxy."
msgid ""
"I2P lets you browse the Internet and hidden services (eepsites) anonymously. "
"For this, your browser, preferably the Tor Browser, needs to be configured "
"with a proxy."
msgstr ""
"I2P te permite navegar por Internet y por los servicios ocultos (eepsites) "
-"de manera anónima. Para esto, tu navegador, preferiblemente un Navegador "
-"Tor, necesita estar configurado para un proxy."
+"de manera anónima. Para esto, tu navegador, preferiblemente el Navegador "
+"Tor, necesita estar configurado con un proxy."
#: plinth/modules/i2p/views.py:19
msgid ""
@@ -2918,15 +2931,15 @@ msgstr ""
"\"{users_url}\">configuración de usuarios puede modificar estos permisos "
"o añadir nuevos usuarios."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki y Blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Aplicaciones wiki para ver y editar"
@@ -2964,8 +2977,8 @@ msgstr "Eliminar sitio %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Actualizar configuración"
@@ -2982,32 +2995,32 @@ msgstr ""
"Esta acción borrará todas las entradas, páginas y comentarios incluido el "
"historial. ¿Eliminar este wiki o blog definitivamente?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Wiki {name} creado."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "No se pudo crear el wiki: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Blog {name} creado."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "No se pudo crear el blog: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} eliminado."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "No se pudo eliminar {title}: {error}"
@@ -3028,11 +3041,11 @@ msgstr ""
"seleccione \"Conectar al servidor\" e introduzca el nombre de dominio de su "
"{box_name}."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Servidor Gobby"
@@ -3053,32 +3066,30 @@ msgstr ""
"Inicie Gobby, seleccione \"Conectar al servidor\" e introduzca el nombre de "
"dominio de su {box_name}."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
-msgstr ""
+msgstr "Janus es un servidor WebRTC ligero."
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
-msgstr ""
+msgstr "Se incluye una sala de videoconferencia simple."
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
-msgstr ""
+msgstr "Para usar Janus se necesita Coturn ."
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
-msgstr ""
+msgstr "Janus"
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Servidor Web"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr "Sala de vídeo"
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
-msgstr ""
+msgstr "Sala de vídeo Janus"
#: plinth/modules/janus/templates/janus_video_room.html:205
#: plinth/modules/jsxc/templates/jsxc_launch.html:117
@@ -3086,7 +3097,7 @@ msgstr ""
msgid "JavaScript license information"
msgstr "Información de licencia de JavaScript"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3094,11 +3105,11 @@ msgstr ""
"JSXC es un cliente web para XMPP. Se usa habitualmente con un servidor XMPP "
"local."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Cliente de Chat"
@@ -3266,7 +3277,7 @@ msgstr ""
"Instalar la app Coturn o configurar un servidor "
"externo."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3304,8 +3315,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Configuración"
@@ -3407,12 +3418,12 @@ msgstr ""
"Cualquiera con acceso a este wiki puede leerlo, pero solo quien se "
"autentique en el sistema podrá modificar el contenido."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3421,41 +3432,34 @@ msgid "Administrator Password"
msgstr "Clave de Administración"
#: plinth/modules/mediawiki/forms.py:27
-#, fuzzy
-#| msgid ""
-#| "Set a new password for MediaWiki's administrator account (admin). Leave "
-#| "this field blank to keep the current password."
msgid ""
"Set a new password for MediaWiki's administrator account (admin). The "
"password cannot be a common one and the minimum required length is "
"10 characters. Leave this field blank to keep the current "
"password."
msgstr ""
-"Definir una clave nueva para la cuenta de administración de MediaWiki "
-"(admin). Déjelo en blanco para conservar la clave actual."
+"Definir una contraseña nueva para la cuenta de administración de MediaWiki "
+"(admin). La contraseña no debe ser trivial y tiene que tener una longitud "
+"mínima de 10 caracteres. Déjala en blanco para conservar la "
+"contraseña actual."
#: plinth/modules/mediawiki/forms.py:35
-#, fuzzy
-#| msgid ""
-#| "Used by MediaWiki to generate URLs that point to the wiki such as in "
-#| "footer, feeds and emails."
msgid ""
"Used by MediaWiki to generate URLs that point to the wiki such as in footer, "
"feeds and emails. Examples: \"myfreedombox.example.org\" or \"example.onion"
"\"."
msgstr ""
"Lo usa MediaWiki para generar URLs que apunten al wiki como piés de página, "
-"feeds y enlaces a e-mail."
+"feeds y enlaces desde e-mail. Ejemplos: \"myfreedombox.ejemplo.org\" o "
+"\"ejemplo.onion\"."
#: plinth/modules/mediawiki/forms.py:41
-#, fuzzy
-#| msgid "Kite name"
msgid "Site Name"
-msgstr "Nombre Kite"
+msgstr "Nombre del sitio"
#: plinth/modules/mediawiki/forms.py:42
msgid "Name of the site as displayed throughout the wiki."
-msgstr ""
+msgstr "Nombre del sitio tal como se muestra en el wiki."
#: plinth/modules/mediawiki/forms.py:46
msgid "Enable public registrations"
@@ -3494,47 +3498,42 @@ msgstr ""
"Elija un tema por defecto para su instalación de MediaWiki. Los usuarios "
"podrán elegir su propio tema."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Clave actualizada"
-#: plinth/modules/mediawiki/views.py:57
-#, fuzzy
-#| msgid "Password used to encrypt data. Must match server password."
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
-msgstr "Clave para cifrar los datos. Debe coincidir con la clave del servidor."
+msgstr ""
+"Falló la actualización de la contraseña. Use otra contraseña más fuerte"
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Habilitado el registro público"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Inhabilitado el registro público"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Activado el modo privado"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Desactivado el modo privado"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Tema por defecto cambiado"
-#: plinth/modules/mediawiki/views.py:99
-#, fuzzy
-#| msgid "Domain name set"
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
-msgstr "Asignar nombre de dominio"
+msgstr "Nombre de dominio actualizado"
-#: plinth/modules/mediawiki/views.py:103
-#, fuzzy
-#| msgid "Domain name set"
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
-msgstr "Asignar nombre de dominio"
+msgstr "Nombre de sitio actulizado"
#: plinth/modules/minetest/__init__.py:35
#, python-brace-format
@@ -3549,11 +3548,11 @@ msgstr ""
"defecto (30000). Para acceder al servidor necesitará un Cliente Minetest."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Sandbox de bloques"
@@ -3606,7 +3605,7 @@ msgstr ""
msgid "Address"
msgstr "Dirección"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3623,15 +3622,15 @@ msgstr ""
"reproductores portátiles, teléfonos móviles, televisores, consolas como PS3 "
"y Xbox o aplicaciones como Totem y Kodi."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Servidor de emisión multimedia"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Servidor multimedia básico"
@@ -3684,11 +3683,6 @@ msgstr ""
"latencia y con cifrado."
#: plinth/modules/mumble/__init__.py:27
-#, fuzzy
-#| msgid ""
-#| "You can connect to your Mumble server on the regular Mumble port 64738. "
-#| "Clients to connect to Mumble from your "
-#| "desktop and Android devices are available."
msgid ""
"You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your "
@@ -3696,13 +3690,13 @@ msgid ""
msgstr ""
"Puede conectar a su servidor Mumble en el puerto habitual 64738. También hay "
"disponibles Clientes para conectar desde "
-"sus dispositivos de escritorio o Android."
+"sus dispositivos de escritorio o móviles."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Chat de voz"
@@ -3720,29 +3714,27 @@ msgstr ""
#: plinth/modules/mumble/forms.py:40
msgid "Set a password to join the server"
-msgstr ""
+msgstr "Establece una contraseña para unirte al servidor"
#: plinth/modules/mumble/forms.py:42
-#, fuzzy
-#| msgid ""
-#| "Set a new upload password for Coquelicot. Leave this field blank to keep "
-#| "the current password."
msgid ""
"Set a password that is required to join the server. Leave empty to use the "
"current password."
msgstr ""
-"Definir una clave nueva para Coquelicot. Deje este campo en blanco para "
-"conservar la clave actual."
+"Establece la contraseña requerida para unirse al servidor. Deja este campo "
+"en blanco para conservar la contraseña actual."
#: plinth/modules/mumble/forms.py:48
msgid "Set the name for the root channel"
-msgstr ""
+msgstr "Establece el nombre del canal principal"
#: plinth/modules/mumble/forms.py:52
msgid ""
"Set the name of the main channel of your mumble server. If the name was "
"never changed, the channel is named Root."
msgstr ""
+"Nombra el canal principal de tu servidor Mumble. Si no se cambia, se llama "
+"Root."
#: plinth/modules/mumble/manifest.py:34
msgid "Mumblefly"
@@ -3752,19 +3744,17 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "Clave de administración cambiada con éxito."
-#: plinth/modules/mumble/views.py:46
-#, fuzzy
-#| msgid "Upload password updated"
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
-msgstr "Clave para compartir actualizada"
+msgstr "Contraseña de acceso actualizada"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
-msgstr ""
+msgstr "Canal principal renombrado."
#: plinth/modules/names/__init__.py:22
#, python-brace-format
@@ -3799,7 +3789,7 @@ msgstr "Intérprete de órdenes seguro"
msgid "Services"
msgstr "Servicios"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3807,7 +3797,7 @@ msgstr ""
"Configurar dispositivos de red. Conectar con Internet mediante Ethernet, Wi-"
"Fi o PPPoE. Compartir esa conexión con otros dispositivos de la red."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3815,15 +3805,10 @@ msgstr ""
"Los dispositivos administrados mediante otros métodos quizá no estén "
"disponibles para configurarse aquí."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Redes"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "DNSSEC en uso sobre IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Tipo de conexión"
@@ -4435,7 +4420,7 @@ msgid "Create Connection"
msgstr "Crear conexión"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Eliminar conexión"
@@ -4455,13 +4440,13 @@ msgstr "Espaciado"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4482,7 +4467,7 @@ msgid "Computer"
msgstr "Ordenador"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Editar conexión"
@@ -4492,13 +4477,13 @@ msgstr "Conexiones"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Redes Wi-Fi cercanas"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Añadir conexión"
@@ -4679,11 +4664,6 @@ msgstr ""
"provee los servicios."
#: plinth/modules/networks/templates/router_configuration_content.html:32
-#, fuzzy
-#| msgid ""
-#| "If you don't have control over your router, choose not to configure it. "
-#| "To see options to overcome this limitation, choose 'no public address' "
-#| "option in Internet connection type selection."
msgid ""
"If you don't have control over your router, choose not to configure it. To "
"see options to overcome this limitation, choose 'I dont have a public IP "
@@ -4691,8 +4671,9 @@ msgid ""
"\">Internet connection type selection."
msgstr ""
"Si no tiene acceso a su router, elija la opción de no configurarlo. Para ver "
-"opciones para solucionar esta limitación, elija la opción \"sin dirección "
-"pública\" en los tipos de conexión a Internet."
+"opciones para solucionar esta limitación, elija la opción \"No tengo "
+"dirección IP pública\" en Ia sección de tipos de conexión a Internet."
#: plinth/modules/networks/templates/router_configuration_content.html:39
msgid "Choose How You Wish to Configure Your Router"
@@ -4722,247 +4703,243 @@ msgstr ""
"Internet el manual de su modelo de router, que le proporcionará las "
"instrucciones necesarias sobre cómo hacerlo."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "desactivada"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "automática"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "manual"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "compartida"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr "enlace-local"
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "desconocido"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "no gestionada"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "indisponible"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "conectado"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "preparando"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "conectando"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "necesita autenticación"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "solicitando dirección"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "comprobando"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr "esperando al secundario"
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "activada"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "desactivando"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "sin motivo"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "fallo desconocido"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "el dispositivo está hora gestionado"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "el dispositivo ahora no está gestionado"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "falló la configuración"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr "se requieren secretos"
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "Fallo iniciando el cliente DHCP"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "Error en cliente DHCP"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "falló el cliente DHCP"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr "fallo al iniciar el servicio de conexión compartida"
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "falló el servicio de conexión compartida"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "Se eliminó el dispositivo"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "dispositivo desconectado por el usuario"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr "falló una dependencia de la conexión"
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "Red Wi-Fi no encontrada"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "falló una conexión secundaria"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr "encolada la activación de la nueva conexión"
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "se detectó una dirección IP duplicada"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "el método IP seleccionado no está soportado"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "genérica"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "interfaz TUN o TAP"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad-hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "infraestructura"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "punto de acceso"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "punto de acceso a la red mesh"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Conexiones de red"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "No se puede mostrar la conexión: no se encontró."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Información de la conexión"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "No se puede editar la conexión: no se encontró."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Este tipo de conexión no está aún soportada."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "Activar conexión {name}."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Ha fallado la activación de la conexión: no se encontró."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"Ha fallado la activación de la conexión {name}: no hay ningún dispositivo "
"disponible."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Conexión {name} desactivada."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Ha fallado la desactivación de la conexión: no se encontró."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Añadir nueva conexión genérica"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Añadir nueva conexión Ethernet"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Añadir nueva conexión PPPoE"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Añadir nueva conexión Wi-Fi"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Conexión {name} eliminada."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Ha fallado la eliminación de la conexión: no se encontró."
@@ -4983,20 +4960,20 @@ msgstr ""
"forma privada. También puede acceder a Internet a través de su {box_name} "
"para añadir protección y anonimato."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "Conectar a servicios VPN"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Red privada virtual"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5135,15 +5112,15 @@ msgstr ""
"de servicios pagekite, por ejemplo pagekite."
"net. En el futuro será posible usar su amigable {box_name} para esto."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Visibilidad pública"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "Dominio PageKite"
@@ -5257,29 +5234,29 @@ msgstr ""
"Por ejemplo, se sabe que HTTPS en un puerto distinto de 443 causará "
"problemas."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Servidor Web (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "El sitio estará disponible en http://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Servidor web seguro (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "El sitio estará disponible en https://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Intérprete de órdenes seguro (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5288,7 +5265,7 @@ msgstr ""
"\">instrucciones para la configuración del cliente SSH"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Rendimiento"
@@ -5310,7 +5287,7 @@ msgstr ""
"Las métricas de rendimiento las recolecta Performance Co-Pilot y se pueden "
"ver empleando la app Cockpit."
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Monitorización del sistema"
@@ -5396,26 +5373,28 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Puede usar Privoxy indicando como proxy en su navegador el nombre de "
-"anfitrión de su {box_name} (o la dirección IP) en el puerto 8118. Mientras "
-"use Privoxy puede acceder a los detalles de su configuración y a la "
-"documentación en http://config.privoxy."
-"org/ o http://p.p."
+"anfitrión de su {box_name} (o la dirección IP) en el puerto 811P. Solo se "
+"admiten conexiones desde la red local. Mientras use Privoxy puede acceder a "
+"los detalles de su configuración y a la documentación en http://config.privoxy.org/ o http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Proxy Web"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Acceso a {url} con proxy {proxy} en tcp {kind}"
@@ -5449,11 +5428,11 @@ msgstr ""
"quassel-irc.org/downloads\">escritorio y móvil."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "Cliente IRC"
@@ -5486,12 +5465,12 @@ msgstr ""
"de nuevos calendarios y agendas. No soporta añadir eventos o contactos, que "
"debe hacerse usando un cliente separado."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Calendario y Contactos"
@@ -5532,9 +5511,10 @@ msgid ""
"address>) and your user name. DAVx5 will show all existing calendars and "
"address books and you can create new."
msgstr ""
-"Introduzca la URL de su servidor Radicale (p.ej. https://) y su nombre de usuario. DAVx5 mostrará todos los calendarios y "
-"agendas disponibles y podrá crear otros nuevos."
+"Introduzca la URL de su servidor Radicale (p.ej. https://<tu.direccion."
+"freedombox>) y su nombre de usuario. DAVx5 mostrará todos los calendarios "
+"y agendas disponibles y podrá crear otros nuevos.</tu.direccion."
+"freedombox>."
#: plinth/modules/radicale/manifest.py:28
msgid "GNOME Calendar"
@@ -5560,15 +5540,15 @@ msgid ""
"existing calendars and address books."
msgstr ""
"Añada a Evolution un nuevo calendario y agenda de direcciones con WebDAV. "
-"Introduzca la URL del servidor Radicale (p.e. https://) y su nombre de usuario. Pulsando en el botón de búsqueda le "
+"Introduzca la URL del servidor Radicale (p.ej. https://<tu.direccion."
+"freedombox>) y su nombre de usuario. Pulsando en el botón de búsqueda le "
"mostrará un listado de los calendarios y agendas existentes."
#: plinth/modules/radicale/views.py:35
msgid "Access rights configuration updated"
msgstr "Configuración de derechos de acceso actualizada"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5580,7 +5560,7 @@ msgstr ""
"un cliente de correo, incluyendo soporte MIME, agenda de contactos, "
"organización de carpetas, búsqueda de mensajes y corrección ortográfica."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5594,7 +5574,7 @@ msgstr ""
"sobre SSL (recomendado) rellene el campo del servidor como imaps://"
"imap.ejemplo.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5610,7 +5590,7 @@ msgstr ""
"google.com/settings/security/lesssecureapps\">https://www.google.com/"
"settings/security/lesssecureapps)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "Cliente de correo"
@@ -5628,6 +5608,47 @@ msgstr ""
"elimina de la página de inicio de sesión y los usuarios solo pueden leer y "
"enviar correos desde este {box_name}."
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+"RSS-Bridge genera feeds RSS y Atom para sitios web que no tienen. Cualquier "
+"lector puede usarlos."
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Cuando está activado, RSS-Bridge estará disponible para cualquier persona perteneciente a un grupo de lector de feeds."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+"Puedes usar RSS-Bridge con Tiny Tiny RSS para "
+"seguir varios sitios web. Habilita la autenticación y usa tus credenciales "
+"de {box_name} al añadir un feed."
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Leer y suscribirse a nuevos agregadores"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr "RSS-Bridge"
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr "Generador de feeds RSS"
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5669,15 +5690,15 @@ msgstr ""
"Compartir en mi cuenta - todos los miembros del grupo freedombox-share "
"disponen de un espacio privado propio."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Acceso a los elementos compartidos privados"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Sistema de archivos en red"
@@ -5812,15 +5833,15 @@ msgstr ""
"Searx se puede usar para evitar el rastreo y la creación de perfiles que "
"realizan los buscadores. Por defecto no almacena cookies."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Buscar en la web"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Buscador web"
@@ -5916,7 +5937,7 @@ msgstr ""
"contribuyentes a Debian y de la comunidad de %(box_name)s."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Informe de Seguridad"
@@ -5931,18 +5952,16 @@ msgstr ""
"servidor 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."
msgid ""
"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 ""
-"Esta lista muestra las cantidades actuales e históricamente acumuladas de "
-"vulnerabilidades de seguridad para cada aplicación instalada."
+"Esta lista muestra las cantidades actuales de vulnerabilidades de seguridad "
+"para cada aplicación instalada. Más información en el Gestor de incidencias de Seguridad de "
+"Debian."
#: plinth/modules/security/templates/security_report.html:28
msgid ""
@@ -5996,12 +6015,12 @@ msgstr "No"
msgid "Not running"
msgstr "No se está ejecutando"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Error al definir el acceso restringido: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Configuración de seguridad actualizada"
@@ -6017,19 +6036,17 @@ msgstr ""
"Note que Shaarli solo soporta una cuenta de usuaria/o, que debe configurar "
"en el primer acceso."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Marcadores"
#: plinth/modules/shaarli/manifest.py:12
-#, fuzzy
-#| msgid "Shaarli"
msgid "Shaarlier"
-msgstr "Shaarli"
+msgstr "Shaarlier"
#: plinth/modules/shadowsocks/__init__.py:21
msgid ""
@@ -6062,11 +6079,11 @@ msgstr ""
"Para usar Shadowsocks una vez configurado debe indicar la URL del proxy en "
"su dispositivo, navegador o aplicación como http://freedombox_address:1080/"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Proxy Socks5"
@@ -6095,7 +6112,7 @@ msgstr "Clave para cifrar los datos. Debe coincidir con la clave del servidor."
msgid "Encryption method. Must match setting on server."
msgstr "Método de cifrado. Debe coincidir con la configuración del servidor."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6104,7 +6121,7 @@ msgstr ""
"Permite compartir a través de la web archivos y carpetas en su {box_name} "
"con otras personas."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Compartir"
@@ -6160,28 +6177,28 @@ msgstr ""
"Las carpetas compartidas deben ser públicas o estar compartidas con al menos "
"un grupo"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Añadir compartición"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Actualmente no hay comparticiones configuradas."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Ruta de acceso en disco"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Compartido por"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Con los grupos"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "Acceso público"
@@ -6273,14 +6290,12 @@ msgid "Software Installation Snapshots"
msgstr "Instantáneas de instalación de software"
#: plinth/modules/snapshot/forms.py:27
-#, fuzzy
-#| msgid "Enable or disable snapshots before and after software installation"
msgid ""
"Enable or disable snapshots before and after each software installation and "
"update."
msgstr ""
-"Active o desactive las instantáneas antes y después de la instalación del "
-"software"
+"Active o desactive las instantáneas antes y después de cada instalación y "
+"actualización del software."
#: plinth/modules/snapshot/forms.py:32
msgid "Hourly Snapshots Limit"
@@ -6344,7 +6359,7 @@ msgstr "Fecha"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Eliminar instantáneas"
@@ -6397,54 +6412,54 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "Restaurar a instantánea %(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "creada a mano"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "linea de tiempo"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "APT"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Gestionar instantáneas"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Instantánea creada."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Configuración de instantáneas actualizada"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Acción de error: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Las instantáneas seleccionadas fueron eliminadas"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
"La instantánea se está usando actualmente. Inténtelo de nuevo más tarde."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "Sistema restaurado a la instantánea {number}."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "Debe reiniciar el sistema para completar la restauración."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Restaurar a instantánea"
@@ -6455,12 +6470,12 @@ msgid ""
"administration tasks, copy files or run other services using such "
"connections."
msgstr ""
-"El servidor SSH emplea el protocolo Secure Shell para manejar "
-"conexiones desde máquinas remotas. Una máquina remota autorizada puede "
-"realizar tareas de administración, copiar archivos o ejecutar otros "
-"servicios a través de esas conexiones."
+"El servidor SSH emplea el protocolo Secure Shell para manejar conexiones "
+"desde máquinas remotas. Una máquina remota autorizada puede realizar tareas "
+"de administración, copiar archivos o ejecutar otros servicios a través de "
+"esas conexiones."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Servidor de intérprete de órdenes seguro (SSH)"
@@ -6506,7 +6521,7 @@ msgstr "Acceso SSH con clave desactivado."
msgid "SSH authentication with password enabled."
msgstr "Acceso SSH con clave activado."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Inicio de sesión único"
@@ -6515,10 +6530,8 @@ msgid "Login"
msgstr "Inicio de sesión"
#: plinth/modules/sso/views.py:100
-#, fuzzy
-#| msgid "Password changed successfully."
msgid "Logged out successfully."
-msgstr "Clave de acceso cambiada con éxito."
+msgstr "Desconectado con éxito."
#: plinth/modules/storage/__init__.py:26
#, python-brace-format
@@ -6531,106 +6544,106 @@ msgstr ""
"{box_name}. Puede ver el medio de almacenamiento que está usando, montar y "
"desmontar medios extraíbles, ampliar la partición raíz, etc."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Almacenamiento"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} bytes"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "Falló la operación."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "Se ha cancelado la operación."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "El dispositivo ya se está desmontando."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr "No se soporta esta operación por falta de un driver o herramienta."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "La operación agotó el tiempo."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr "La operación podría activar un disco que está en estado de reposo."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Tratando de desmontar un dispositivo ocupado."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "Ya se ha cancelado la operación."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "No tiene autorización para la operación solicitada."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "El dispositivo ya está montado."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "El dispositivo no está montado."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "La operación solicitada no está permitida."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "El dispositivo está ya montado por otro usuario."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
"Poco espacio en la partición del sistema: {percent_used}% usado, "
"{free_space} libre."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Poco espacio en disco"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "Fallo de disco inminente"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6786,16 +6799,16 @@ msgstr ""
"interfaz web en {box_name} solo está disponible para quienes pertenezcan a "
"los grupos \"admin\" o \"syncthing-access\"."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Administrar Syncthing"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Sincronización de archivos"
@@ -6814,49 +6827,48 @@ msgstr ""
"protección cuando navega por la red."
#: plinth/modules/tor/__init__.py:34
-#, fuzzy, python-brace-format
-#| msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
+#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
msgstr ""
-"Un puerto SOCKS de Tor está disponible en su %(box_name)s en el puerto TCP "
-"9050."
+"Un puerto SOCKS de Tor está disponible para redes internas en su {box_name} "
+"en el puerto TCP 9050."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Servicio Tor Onion"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Proxy Socks para Tor"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Puente de retransmisión Tor"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Puerto de servidor Tor disponible"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Transporte Obfs3 registrado"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Transporte Obfs4 registrado"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Acceso a URL {url} sobre tcp {kind} vía Tor"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Confirmar uso de Tor en {url} sobre tcp {kind}"
@@ -6868,15 +6880,11 @@ msgstr ""
"Especifique un puente válido con este formato: [transport] IP:ORPort "
"[fingerprint]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Activar Tor"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Utilice puentes de subida para conectar a una red Tor"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6887,11 +6895,11 @@ msgstr ""
"(ISP) bloquea o censura las conexiones a la red Tor. Esto desactivará los "
"modos de reenvío."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Puentes de subida"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6902,11 +6910,11 @@ msgstr ""
"Los tipos de transporte actualmente soportados son ninguno, obfs3, obfs4 y "
"scamblesuit."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Activar Tor"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6917,11 +6925,11 @@ msgstr ""
"ancho de banda a la red Tor. Actívelo si dispone de más de 2 megabits/s de "
"ancho de banda para descarga y subida."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Activar puente de retransmisión Tor"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6931,11 +6939,11 @@ msgstr ""
"Tor en vez de en la base de datos pública de Tor, lo que dificulta censurar "
"este nodo. Ayuda a otros usuarios a esquivar la censura."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Activar el servicio oculto Tor"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6946,11 +6954,11 @@ msgstr ""
"servicios (como wiki o chat) sin revelar su localización. No lo emplee para "
"un anonimato fuerte."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Descarga de paquetes de software con Tor"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6960,7 +6968,7 @@ msgstr ""
"descargarán a través de la red Tor. De esta forma se añade un grado de "
"privacidad y seguridad durante la descarga."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Especifique al menos un puente de subida para usar los puentes de subida."
@@ -6973,21 +6981,25 @@ msgstr "Navegador Tor"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Proxy con Tor"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "La configuración de Tor está actualizándose"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Servicio Onion"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Puertos"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Configuración sin cambio"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Ha habido un error en la configuración."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error updating app: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Error al actualizar la app: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -7002,8 +7014,6 @@ msgstr ""
"BitTorrent no es anónimo."
#: plinth/modules/transmission/__init__.py:26
-#, fuzzy
-#| msgid "Please do not change the default port of the transmission daemon."
msgid "Please do not change the default port of the Transmission daemon."
msgstr ""
"Por favor, no cambie el puerto predeterminado para el servicio Transmission."
@@ -7014,18 +7024,17 @@ msgid ""
"Compared to Deluge, Transmission is simpler and "
"lightweight but is less customizable."
msgstr ""
+"Comparado con Deluge, Transmission es más "
+"simple y ligero pero menos adaptable."
#: plinth/modules/transmission/__init__.py:32
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "It can be accessed by any user on {box_name} "
-#| "belonging to the admin group."
+#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
"belonging to the bit-torrent group."
msgstr ""
"Puede acceder cualquier usuario/a en {box_name} "
-"que pertenezca al grupo «admin»."
+"que pertenezca al grupo «bit-torrent»."
#: plinth/modules/transmission/__init__.py:36
#, python-brace-format
@@ -7033,6 +7042,8 @@ msgid ""
"Samba shares can be set as the default download "
"directory from the dropdown menu below."
msgstr ""
+"En el desplegable de abajo se pueden establecer carpetas compartidas Samba como directorio de descarga por omisión."
#: plinth/modules/transmission/__init__.py:40
#, python-brace-format
@@ -7040,8 +7051,10 @@ msgid ""
"After a download has completed, you can also access your files using the Sharing app."
msgstr ""
+"Tras completar la descarga puedes acceder a tus archivos mediante la app Sharing ."
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -7057,16 +7070,13 @@ msgstr ""
"aplicación de escritorio en la medida de lo posible."
#: plinth/modules/ttrss/__init__.py:27
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login."
+#, python-brace-format
msgid ""
"When enabled, Tiny Tiny RSS can be accessed by any "
"user belonging to the feed-reader group."
msgstr ""
"Cuando está activado, Tiny Tiny RSS estará disponible para cualquier persona con una cuenta de acceso en {box_name}."
+"\"{users_url}\">persona perteneciente a un grupo de lector de feeds."
#: plinth/modules/ttrss/__init__.py:32
msgid ""
@@ -7076,15 +7086,11 @@ msgstr ""
"Cuando emplee una aplicación de móvil o de escritorio para Tiny Tiny RSS, "
"use la URL /tt-rss-app para conectar."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Leer y suscribirse a nuevos agregadores"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Lector de noticias"
@@ -7112,24 +7118,22 @@ 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:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
-#, fuzzy
-#| msgid "Software Upgrades"
msgid "Software Update"
-msgstr "Actualizaciones de software (Upgrades)"
+msgstr "Actualización de software (Update)"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox actualizado"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "No se pudo iniciar la actualización de la distribución"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
@@ -7140,11 +7144,11 @@ msgstr ""
"libres. Si está habilitada, la actualización de la distribución se "
"reintentará tras 24h ."
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "Iniciada la actualización de la distribución"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7224,8 +7228,7 @@ msgstr ""
" "
#: plinth/modules/upgrades/templates/upgrades-new-release.html:9
-#, fuzzy, python-format
-#| msgid "%(box_name)s Updated"
+#, python-format
msgid "%(box_name)s updated"
msgstr "%(box_name)s actualizado"
@@ -7240,6 +7243,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Descartar"
@@ -7307,45 +7311,64 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Mostrar los registros de las actualizaciones recientes"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Actualización automática de distibución activada"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "Actualización automática de distibución activada"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "Error al configurar las actualizaciones desatendidas: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Actualizaciones automáticas activadas"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Actualizaciones automáticas desactivadas"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "Actualización automática de distibución activada"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Actualización automática de distibución desactivada"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Proceso de actualización iniciado."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "No se ha podido iniciar la actualización."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Las actualizaciones funcionales frecuentes están activadas."
-#: plinth/modules/users/__init__.py:29
+#: plinth/modules/upgrades/views.py:223
#, fuzzy
-#| msgid ""
-#| "Create and managed user accounts. These accounts serve as centralized "
-#| "authentication mechanism for most apps. Some apps further require a user "
-#| "account to be part of a group to authorize the user to access the app."
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Actualización automática de distibución activada"
+
+#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
"authentication mechanism for most apps. Some apps further require a user "
@@ -7368,15 +7391,15 @@ msgstr ""
"sólo los usuarios del grupo admin pueden cambiar configuraciones de "
"apps o del sistema."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Usuarias/os y grupos"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Acceso a todos los servicios y configuraciones del sistema"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Comprobar la entrada LDAP \"{search_item}\""
@@ -7399,12 +7422,12 @@ msgid "Authorization Password"
msgstr "Contraseña de autorización"
#: plinth/modules/users/forms.py:84
-#, fuzzy, python-brace-format
-#| msgid "Enter your current password to authorize account modifications."
+#, python-brace-format
msgid ""
"Enter the password for user \"{user}\" to authorize account modifications."
msgstr ""
-"Introduce tu contraseña actual para autorizar modificaciones en la cuenta."
+"Introduce la contraseña del usuario \"{user}\" para autorizar modificaciones "
+"en la cuenta."
#: plinth/modules/users/forms.py:93
msgid "Invalid password."
@@ -7420,8 +7443,8 @@ msgid ""
msgstr ""
"Seleccione los servicios que deberían estar disponibles para la nueva "
"cuenta. Ésta podrá acceder a los servicios que soportan inicio de sesión "
-"único a través de LDAP, siempre y cuando estén en el grupo adecuado.
Quienes pertenezcan al grupo admin podrán acceder a todos los "
+"único a través de LDAP, siempre y cuando estén en el grupo adecuado."
+"
Quienes pertenezcan al grupo admin podrán acceder a todos los "
"servicios, también podrán acceder al sistema por SSH con privilegios de "
"administración (sudo)."
@@ -7586,8 +7609,8 @@ msgid ""
"Use the change password form to "
"change the password."
msgstr ""
-"Use el formulario para cambio de clave de "
-"acceso para cambiarla."
+"Use el formulario para cambio de clave "
+"de acceso para cambiarla."
#: plinth/modules/users/templates/users_update.html:31
#: plinth/templates/language-selection.html:17
@@ -7741,9 +7764,6 @@ msgid "Use this connection to send all outgoing traffic"
msgstr "Use esta conexión para todo el tráfico saliente"
#: plinth/modules/wireguard/forms.py:107
-#, fuzzy
-#| msgid ""
-#| "Typically checked for a VPN service though which all traffic is sent."
msgid "Typically checked for a VPN service through which all traffic is sent."
msgstr ""
"Generalmente activado para el servicio VPN a través del que se envía el "
@@ -8010,22 +8030,16 @@ msgstr ""
"de administración una actualización de la base de datos. Se pueden instalar "
"y actualizar plugins y temas adicionales asumiendo los riesgos."
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
-#, fuzzy
-#| msgid "Address"
msgid "WordPress"
-msgstr "Dirección"
+msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
-#, fuzzy
-#| msgid "Wiki and Blog"
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
-msgstr "Wiki y Blog"
+msgstr "Sitio web y Blog"
#: plinth/modules/wordpress/forms.py:14
-#, fuzzy
-#| msgid "public access"
msgid "Public access"
msgstr "Acceso público"
@@ -8071,11 +8085,11 @@ msgstr ""
"Para añadir más usuarios hay que crear cuentas con el mismo nombre tanto en "
"Zoph como en {box_name} ."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Organizador de fotografías"
@@ -8112,37 +8126,122 @@ msgstr "PPPoE"
msgid "Generic"
msgstr "Genérica"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr "Error: {name}: {exception_message}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr "Esperando a empezar: {name}"
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr "Terminó: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
-msgstr ""
+msgstr "El paquete {expression} no está disponible para instalar"
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "El paquete {package_name} es la última versión ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Error durante la instalación"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Error al respaldar"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "instalando"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "descargando"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "cambio de medio"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "archivo de configuración: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr "Tiempo máximo esperando al administrador de paquetes"
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr "Instalando app"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr "Actualizando app"
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr "Error al instalar la app: {string} {details}"
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr "Error al actualizar la aplicación: {string} {details}"
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr "Error al instalar la app: {error}"
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr "Error al actualizar la app: {error}"
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr "App instalada."
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr "App actualizada"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Installing app"
+msgid "Uninstalling app"
+msgstr "Instalando app"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Error al instalar la app: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Error al instalar la app: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "App installed."
+msgid "App uninstalled."
+msgstr "App instalada."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr "Actualizando los paquetes de la app"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Prohibido"
@@ -8194,7 +8293,7 @@ msgstr ""
msgid "Installation"
msgstr "Instalación"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "El servidor %(service_name)s no se está ejecutando."
@@ -8368,7 +8467,7 @@ msgstr "Fundación FreedomBox"
#: plinth/templates/index.html:146
msgid "Forum"
-msgstr ""
+msgstr "Foro"
#: plinth/templates/index.html:151
msgid "IRC Chatroom"
@@ -8444,10 +8543,8 @@ msgstr ""
"%(service_name)s:"
#: plinth/templates/port-forwarding-info.html:37
-#, fuzzy
-#| msgid "Service Type"
msgid "Service Name"
-msgstr "Tipo de servicio"
+msgstr "Nombre de servicio"
#: plinth/templates/port-forwarding-info.html:38
msgid "Protocol"
@@ -8462,6 +8559,10 @@ msgstr "Desde los puertos externos"
msgid "To %(box_name)s Ports"
msgstr "A los puertos de %(box_name)s"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Aplicación instalada."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "¿Instalar esta aplicación?"
@@ -8471,22 +8572,14 @@ msgid "This application needs an update. Update now?"
msgstr "Esta aplicación necesita actualizarse. ¿Actualizar ahora?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Otra instalación o actualización está actualmente en ejecución. Por favor "
-"espere unos momentos antes de intentarlo de nuevo."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Esta aplicación no está disponible actualmente en su distribución."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Volver a coomprobar"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8496,36 +8589,105 @@ msgstr ""
"sistema son incompatibles con la instalación de esta app. Si continuas se "
"eliminarán los siguientes paquetes:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Instalar"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Actualización"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Realizando operaciones previas a la instalación"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Instalar"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Realizando operaciones posteriores a la instalación"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Editar el usuario %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Instalando %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% completado"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Configuración sin cambio"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#~ msgid "Network Connections"
+#~ msgstr "Conexiones de red"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Activar Tor"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "La configuración de Tor está actualizándose"
+
+#~ msgid "Error during installation"
+#~ msgstr "Error durante la instalación"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "DNSSEC en uso sobre IPv{kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Otra instalación o actualización está actualmente en ejecución. Por favor "
+#~ "espere unos momentos antes de intentarlo de nuevo."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Realizando operaciones previas a la instalación"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Realizando operaciones posteriores a la instalación"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Instalando %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% completado"
+
+#~ 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 requiere acceso a través de un nombre de dominio. Si se usa una "
+#~ "dirección IP como parte de la URL no funcionará."
+
+#~ msgid "Access"
+#~ msgstr "Acceso"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "Cockpit solo funciona cuando se usan las siguientes URL."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Servidor Web"
+
#~ msgid "Server URL"
#~ msgstr "URL de Servidor"
@@ -8973,11 +9135,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Error al establecer nombre de dominio: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Ha habido un error en la configuración."
-
#, fuzzy
#~| msgid "Directory does not exist."
#~ msgid "User does not exist"
@@ -9521,9 +9678,6 @@ msgstr "Gujarati"
#~ msgid "Service enabled: {name}"
#~ msgstr "Servicio activado: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Servicio desactivado: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "Cuenta PageKite"
@@ -9952,9 +10106,6 @@ msgstr "Gujarati"
#~ msgid "Automatic Upgrades"
#~ msgstr "Actualizaciones automáticas"
-#~ msgid "Upgrade Packages"
-#~ msgstr "Actualizar paquetes"
-
#~ msgid "No such device - {device_path}"
#~ msgstr "No se encuentra el dispositivo - {device_path}"
@@ -10263,9 +10414,6 @@ msgstr "Gujarati"
#~ msgid "IP Check URL"
#~ msgstr "URL para comprobación de IP"
-#~ msgid "Bridge"
-#~ msgstr "Puente"
-
#~ msgid "Enable network time"
#~ msgstr "Activar NTP"
diff --git a/plinth/locale/fa/LC_MESSAGES/django.po b/plinth/locale/fa/LC_MESSAGES/django.po
index 2e6e569c6..88a0c3010 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-09-07 11:34+0000\n"
"Last-Translator: Seyed mohammad ali Hosseinifard \n"
"Language-Team: Persian any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
#, fuzzy
#| msgid "Administrator Account"
msgid "Server Administration"
msgstr "حساب مدیر"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-#, fuzzy
-#| msgid "Access Point"
-msgid "Access"
-msgstr "نقطهٔ دسترسی"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1226,7 +1208,7 @@ msgstr "پیکربندی عمومی"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
#, fuzzy
msgid "Configure"
msgstr "پیکربندی"
@@ -1317,45 +1299,67 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "خطا در هنگام تنظیم نام میزبان: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "نام میزبان تنظیم شد"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "خطا در هنگام تنظیم نام دامنه: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "نام دامنه تنظیم شد"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, fuzzy, python-brace-format
#| msgid "Error setting hostname: {exception}"
msgid "Error setting webserver home page: {exception}"
msgstr "خطا در هنگام تنظیم نام میزبان: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, fuzzy, python-brace-format
#| msgid "Error setting domain name: {exception}"
msgid "Error changing advanced mode: {exception}"
msgstr "خطا در هنگام تنظیم نام دامنه: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1375,11 +1379,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1409,11 +1413,11 @@ msgstr ""
"کارگزار زمان شبکه (network time server) برنامهای است که زمان سیستم را منطبق "
"با زمان کارگزارهای اینترنتی میکند."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "تاریخ و زمان"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1465,17 +1469,17 @@ msgstr ""
"در سرور در دسترس خواهد بود. رمز پیشفرض 'deluge' است، ولی شما باید پس از "
"فعالسازی این سرویس بلافاصله وارد شوید و رمز را عوض کنید."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
#, fuzzy
#| msgid "BitTorrent Web Client (Deluge)"
msgid "BitTorrent Web Client"
@@ -1498,55 +1502,55 @@ msgstr ""
"برنامههای و سرویسها درست کار میکنند."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "عیبیابی"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1595,7 +1599,7 @@ msgstr "آزمون"
msgid "Result"
msgstr "نتیجهها"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "آزمون عیبیابی"
@@ -1646,12 +1650,12 @@ msgstr ""
"datasystems24.net یا سرویس رایگان بهروزرسانی نشانی را در freedns.afraid.org به کار ببرید."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
#, fuzzy
msgid "Dynamic DNS Client"
msgstr "برنامهٔ DNS متغیر (Dynamic DNS Client)"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
#, fuzzy
#| msgid "Domain Name"
msgid "Dynamic Domain Name"
@@ -1787,13 +1791,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1878,12 +1883,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
#, fuzzy
#| msgid "Web Server"
msgid "Chat Server"
@@ -1986,7 +1991,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2031,23 +2036,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Web Server"
msgid "Email Server"
msgstr "سرور وب"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Create Connection"
msgid "My Email Aliases"
msgstr "ساختن اتصال"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Create Connection"
msgid "Manage Aliases for Mailbox"
@@ -2087,7 +2092,7 @@ msgstr ""
msgid "Aliases"
msgstr "ساختن اتصال"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -2179,7 +2184,7 @@ msgstr ""
"خروجی شبکه را در {box_name} شما کنترل میکند. فعال نگهداشتن فایروال و تنظیم "
"درست آن خطر تهدیدهای امنیتی از طرف اینترنت را کم میکند."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "فایروال"
@@ -2323,15 +2328,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2448,31 +2453,31 @@ msgstr "پاککردن ویکی یا وبلاگ %(name)s"
msgid "Delete this repository permanently?"
msgstr "اتصال %(name)s را برای همیشه پاک میکنید؟"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
#, fuzzy
#| msgid "Error occurred while publishing key."
msgid "An error occurred while creating the repository."
msgstr "هنگام انتشار کلید خطایی رخ داد."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
#, fuzzy
#| msgid "Create Connection"
msgid "Edit repository"
msgstr "ساختن اتصال"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "راهنما"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
#, fuzzy
#| msgid "Manual"
@@ -2480,28 +2485,28 @@ msgctxt "User guide"
msgid "Manual"
msgstr "کتاب راهنما"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "درباره"
@@ -2626,6 +2631,41 @@ msgstr ""
msgid "Learn more..."
msgstr "بیشتر بدانید »"
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2748,16 +2788,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "راهنما و پرسشهای رایج"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "دربارهٔ {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "کتاب راهنمای {box_name}"
@@ -2788,21 +2828,21 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
#, fuzzy
msgid "Manage I2P application"
msgstr "فعالسازی برنامه"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
#, fuzzy
msgid "Anonymity Network"
msgstr "رفتن به تنظیمات شبکه"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2865,17 +2905,17 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
#, fuzzy
#| msgid "Manage Wikis and Blogs"
msgid "Wiki and Blog"
msgstr "مدیریت ویکیها و وبلاگها"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
#, fuzzy
msgid "View and edit wiki applications"
msgstr "سرویسها و برنامهها"
@@ -2914,8 +2954,8 @@ msgstr "سایت %(site)s را پاک کنید"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "بهروزرسانی وضعیت"
@@ -2932,33 +2972,33 @@ msgstr ""
"این کار همهٔ نوشتهها، صفحهها، نظرها، و تاریخچهٔ آنها را حذف میکند. آیا به "
"پاککردن ویکی یا وبلاگ ادامه میدهید؟"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "ویکی {name} ساخته شد."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "ساختن ویکی شکست خورد: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "وبلاگ {name} ساخته شد."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "ساختن وبلاگ شکست خورد: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, fuzzy, python-brace-format
#| msgid "{name} deleted."
msgid "{title} deleted."
msgstr "{name} پاک شد."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, fuzzy, python-brace-format
#| msgid "Could not delete {name}: {error}"
msgid "Could not delete {title}: {error}"
@@ -2976,11 +3016,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
#, fuzzy
#| msgid "Web Server"
msgid "Gobby Server"
@@ -3001,28 +3041,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "سرور وب"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3034,17 +3072,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -3224,7 +3262,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -3257,8 +3295,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -3329,12 +3367,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3403,46 +3441,46 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
#, fuzzy
#| msgid "Password"
msgid "Password updated"
msgstr "رمز"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
#, fuzzy
msgid "Public registrations enabled"
msgstr "برنامه نصب شد."
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
#, fuzzy
msgid "Public registrations disabled"
msgstr "برنامه نصب شد."
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
#, fuzzy
msgid "Private mode disabled"
msgstr "برنامه نصب شد."
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "نام دامنه تنظیم شد"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3461,11 +3499,11 @@ msgstr ""
"برای اتصال به سرور به یک برنامهٔ ماینتست نیاز است."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
#, fuzzy
msgid "Block Sandbox"
msgstr "بازی مکعبها (Minetest)"
@@ -3516,7 +3554,7 @@ msgstr ""
msgid "Address"
msgstr "نشانی"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3527,15 +3565,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3596,11 +3634,11 @@ msgstr ""
"\"http://mumble.info\">نرمافزارهایی برای اتصال به سرور مامبل برای "
"کامپیوتر رومیزی و دستگاههای اندروید در دسترس است."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
#, fuzzy
#| msgid "Voice Chat (Mumble)"
msgid "Voice Chat"
@@ -3646,17 +3684,17 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Password"
msgid "Join password changed"
msgstr "رمز"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3691,27 +3729,22 @@ msgstr "پوستهٔ ایمن"
msgid "Services"
msgstr "سرویس"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "شبکهها"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "در حال استفاده از DNSSEC روی IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "نوع اتصال"
@@ -4269,7 +4302,7 @@ msgid "Create Connection"
msgstr "ساختن اتصال"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "پاککردن اتصال"
@@ -4290,13 +4323,13 @@ msgstr "Spacing"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "اترنت"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4317,7 +4350,7 @@ msgid "Computer"
msgstr "کامپیوتر"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "ویرایش اتصال"
@@ -4329,13 +4362,13 @@ msgstr "اتصال"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "شبکههای بیسیم در نزدیکی"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "افزودن اتصال"
@@ -4524,291 +4557,287 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
#, fuzzy
#| msgid "Disabled"
msgid "disabled"
msgstr "غیرفعال"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
#, fuzzy
#| msgid "Automatic"
msgid "automatic"
msgstr "خودکار"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
#, fuzzy
#| msgid "Manual"
msgid "manual"
msgstr "کتاب راهنما"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
#, fuzzy
#| msgid "Shared"
msgid "shared"
msgstr "مشترک"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
#, fuzzy
#| msgid "Manage"
msgid "unmanaged"
msgstr "مدیریت"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
#, fuzzy
#| msgid "Available Domains"
msgid "unavailable"
msgstr "دامنههای موجود"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
#, fuzzy
#| msgid "cable is connected"
msgid "disconnected"
msgstr "سیم وصل است"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
#, fuzzy
#| msgid "Shared"
msgid "preparing"
msgstr "مشترک"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
#, fuzzy
#| msgid "Connection"
msgid "connecting"
msgstr "اتصال"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
#, fuzzy
#| msgid "Use HTTP basic authentication"
msgid "needs authentication"
msgstr "بهکاربردن تأیید هویت سادهٔ تحت وب"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
#, fuzzy
#| msgid "Deactivate"
msgid "activated"
msgstr "غیرفعالسازی"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
#, fuzzy
#| msgid "Deactivate"
msgid "deactivating"
msgstr "غیرفعالسازی"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
#, fuzzy
#| msgid "State reason"
msgid "no reason"
msgstr "دلیل وضعیت"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
#, fuzzy
#| msgid "Configuration updated"
msgid "configuration failed"
msgstr "پیکربندی بهروز شد"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
#, fuzzy
#| msgid "{name} deleted."
msgid "DHCP client failed"
msgstr "{name} پاک شد."
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
#, fuzzy
#| msgid "Configuration updated"
msgid "shared connection service failed"
msgstr "پیکربندی بهروز شد"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
#, fuzzy
#| msgid "The requested domain is already registered."
msgid "device was removed"
msgstr "دامنهٔ درخواستی از قبل ثبت شده است."
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
#, fuzzy
#| msgid "cable is connected"
msgid "device disconnected by user"
msgstr "سیم وصل است"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
#, fuzzy
#| msgid "Interface"
msgid "TUN or TAP interface"
msgstr "واسط"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
#, fuzzy
#| msgid "Ad-hoc"
msgid "ad-hoc"
msgstr "موردی"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
#, fuzzy
#| msgid "Infrastructure"
msgid "infrastructure"
msgstr "سازمانی"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
#, fuzzy
#| msgid "Access Point"
msgid "access point"
msgstr "نقطهٔ دسترسی"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
#, fuzzy
#| msgid "Access Point"
msgid "mesh point"
msgstr "نقطهٔ دسترسی"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "اتصالهای شبکه"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "نمیتوان اتصال را نشان داد: اتصالی پیدا نشد."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "اطلاعات اتصال"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "نمیتوان اتصال را ویراست: اتصالی پیدا نشد."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "از این نوع اتصال هنوز پشتیبانی نمیشود."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "اتصال {name} فعال شد."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "فعالسازی اتصال شکست خورد: اتصالی پیدا نشد."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr "فعالسازی اتصال {name} شکست خورد: دستگاه مناسبی موجود نیست."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "اتصال {name} غیرفعال شد."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "غیرفعالسازی اتصال شکست خورد: اتصالی پیدا نشد."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "افزودن یک اتصال عام تازه"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "افزودن اتصال اترنت تازه"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "افزودن اتصال PPPoE تازه"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "افزودن اتصال Wi-Fi تازه"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "اتصال {name} پاک شد."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "پاککردن اتصال شکست خورد: اتصال پیدا نشد."
@@ -4823,24 +4852,24 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
#, fuzzy
#| msgid "Connection Type"
msgid "Connect to VPN services"
msgstr "نوع اتصال"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
#, fuzzy
#| msgid "Open"
msgid "OpenVPN"
msgstr "باز"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4950,15 +4979,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
#, fuzzy
#| msgid "Available Domains"
msgid "PageKite Domain"
@@ -5066,36 +5095,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -5112,7 +5141,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -5184,21 +5213,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -5222,11 +5252,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -5251,12 +5281,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -5323,7 +5353,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "پیکربندی بهروز شد"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5331,7 +5361,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5340,7 +5370,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5350,7 +5380,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
#, fuzzy
msgid "Email Client"
msgstr "برنامهٔ DNS متغیر (Dynamic DNS Client)"
@@ -5366,6 +5396,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5397,15 +5461,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
#, fuzzy
#| msgid "Interface"
msgid "Network File Storage"
@@ -5549,15 +5613,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
#, fuzzy
#| msgid "Web Server"
msgid "Web Search"
@@ -5644,7 +5708,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
#, fuzzy
#| msgid "Security"
msgid "Security Report"
@@ -5717,13 +5781,13 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, fuzzy, python-brace-format
#| msgid "Error setting time zone: {exception}"
msgid "Error setting restricted access: {exception}"
msgstr "خطا در هنگام تنظیم منطقهٔ زمانی: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
#, fuzzy
#| msgid "General Configuration"
msgid "Updated security configuration"
@@ -5739,11 +5803,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5773,11 +5837,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5808,14 +5872,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
#, fuzzy
#| msgid "Shared"
msgid "Sharing"
@@ -5867,30 +5931,30 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
#, fuzzy
#| msgid "Shared"
msgid "Shared Over"
msgstr "مشترک"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -6052,7 +6116,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
#, fuzzy
#| msgid "Delete %(name)s"
msgid "Delete Snapshots"
@@ -6102,61 +6166,61 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
#, fuzzy
#| msgid "Last update"
msgid "manually created"
msgstr "آخرین بهروزرسانی"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
#, fuzzy
#| msgid "Delete %(name)s"
msgid "Manage Snapshots"
msgstr "پاککردن %(name)s"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
#, fuzzy
#| msgid "Configuration updated"
msgid "Storage snapshots configuration updated"
msgstr "پیکربندی بهروز شد"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
#, fuzzy
#| msgid "Delete %(name)s"
msgid "Deleted selected snapshots"
msgstr "پاککردن %(name)s"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -6168,7 +6232,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -6215,7 +6279,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -6237,110 +6301,110 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, fuzzy, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size} بایت"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, fuzzy, python-brace-format
#| msgid "{disk_size} KiB"
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, fuzzy, python-brace-format
#| msgid "{disk_size} MiB"
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, fuzzy, python-brace-format
#| msgid "{disk_size} GiB"
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, fuzzy, python-brace-format
#| msgid "{disk_size} TiB"
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
#, fuzzy
#| msgid "The requested domain is already registered."
msgid "The device is already mounted."
msgstr "دامنهٔ درخواستی از قبل ثبت شده است."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6487,16 +6551,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6516,40 +6580,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6559,37 +6623,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6597,22 +6657,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6620,18 +6680,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6643,23 +6703,27 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
#, fuzzy
#| msgid "Service"
msgid "Onion Service"
msgstr "سرویس"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr ""
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "Current Network Configuration"
+msgid "Updating configuration"
+msgstr "پیکربندی فعلی شبکه"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "خطا هنگام نصب برنامه: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6703,7 +6767,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6728,15 +6792,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6757,8 +6817,8 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
#, fuzzy
@@ -6766,28 +6826,28 @@ msgstr ""
msgid "Software Update"
msgstr "{name} پاک شد."
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
msgid "FreedomBox Updated"
msgstr "FreedomBox"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
#, fuzzy
msgid "Distribution update started"
msgstr "برنامه نصب شد."
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6869,6 +6929,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6929,40 +6990,61 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+msgid "Test Distribution Upgrade"
+msgstr "برنامه نصب شد."
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+msgid "Test distribution upgrade now"
+msgstr "برنامه نصب شد."
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
#, fuzzy
msgid "Distribution upgrade disabled"
msgstr "برنامه نصب شد."
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+msgid "Starting distribution upgrade test."
+msgstr "برنامه نصب شد."
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6978,15 +7060,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -7611,14 +7693,14 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
#, fuzzy
#| msgid "Address"
msgid "WordPress"
msgstr "نشانی"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
#, fuzzy
#| msgid "Manage Wikis and Blogs"
msgid "Website and Blog"
@@ -7657,11 +7739,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7697,37 +7779,126 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "خطا در هنگام تنظیم نام میزبان: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr ""
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "خظا هنگام پشتیبانگیری"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr "خطا هنگام نصب برنامه: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr "خطا هنگام نصب برنامه: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "خطا هنگام نصب برنامه: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "خطا هنگام نصب برنامه: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+msgid "App installed."
+msgstr "برنامه نصب شد."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "آخرین بهروزرسانی"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Error installing application: {error}"
+msgid "Uninstalling app"
+msgstr "خطا هنگام نصب برنامه: {error}"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+msgid "Error uninstalling app: {string} {details}"
+msgstr "خطا هنگام نصب برنامه: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "خطا هنگام نصب برنامه: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+msgid "App uninstalled."
+msgstr "برنامه نصب شد."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7770,7 +7941,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -8024,6 +8195,11 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr "راهاندازی %(box_name)s"
+#: plinth/templates/setup.html:18
+#, fuzzy
+msgid "Application installed."
+msgstr "برنامه نصب شد."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -8033,56 +8209,80 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+msgid "Uninstall"
+msgstr "برنامه نصب شد."
+
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Delete Wiki or Blog %(name)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "پاککردن ویکی یا وبلاگ %(name)s"
+
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
msgstr ""
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+#: plinth/views.py:221
+msgid "Setting unchanged"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr ""
+#~ msgid "Network Connections"
+#~ msgstr "اتصالهای شبکه"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "در حال استفاده از DNSSEC روی IPv{kind}"
+
+#, fuzzy
+#~| msgid "Access Point"
+#~ msgid "Access"
+#~ msgstr "نقطهٔ دسترسی"
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "سرور وب"
+
#, fuzzy
#~| msgid "Service"
#~ msgid "Server URL"
@@ -8371,11 +8571,6 @@ msgstr ""
#~ msgid "Postfix domain name config"
#~ msgstr "خطا در هنگام تنظیم نام دامنه: {exception}"
-#, fuzzy
-#~| msgid "Current Network Configuration"
-#~ msgid "Error updating configuration"
-#~ msgstr "پیکربندی فعلی شبکه"
-
#, fuzzy
#~| msgid "Disabled"
#~ msgid "Disable selected"
diff --git a/plinth/locale/fake/LC_MESSAGES/django.po b/plinth/locale/fake/LC_MESSAGES/django.po
index a38d4160f..32aaced8d 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2016-01-31 22:24+0530\n"
"Last-Translator: Sunil Mohan Adapa \n"
"Language-Team: Plinth Developers /IKIWIKI."
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
#, fuzzy
#| msgid "Server domain"
msgid "Server Administration"
msgstr "SERVER DOMAIN"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1277,7 +1258,7 @@ msgstr "GENERAL CONFIGURATION"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "CONFIGURE"
@@ -1369,45 +1350,69 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Configuration"
+msgid "System-wide logging"
+msgstr "SYSTEM CONFIGURATION"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "ERROR SETTING HOSTNAME: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "HOSTNAME SET"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "ERROR SETTING DOMAIN NAME: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "DOMAIN NAME SET"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, fuzzy, python-brace-format
#| msgid "Error setting hostname: {exception}"
msgid "Error setting webserver home page: {exception}"
msgstr "ERROR SETTING HOSTNAME: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, fuzzy, python-brace-format
#| msgid "Error setting domain name: {exception}"
msgid "Error changing advanced mode: {exception}"
msgstr "ERROR SETTING DOMAIN NAME: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1427,11 +1432,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1461,11 +1466,11 @@ msgstr ""
"NETWORK TIME SERVER IS A PROGRAM THAT MAINTIANS THE SYSTEM TIME IN "
"SYNCHRONIZATION WITH SERVERS ON THE INTERNET."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "DATE & TIME"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1517,19 +1522,19 @@ msgstr ""
"\">/DELUGE PATH ON THE WEB SERVER. THE DEFAULT PASSWORD IS 'DELUGE', BUT "
"YOU SHOULD LOG IN AND CHANGE IT IMMEDIATELY AFTER ENABLING THIS SERVICE."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
#, fuzzy
#| msgid "Enable Deluge"
msgid "Deluge"
msgstr "ENABLE DELUGE"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
#, fuzzy
#| msgid "BitTorrent Web Client (Deluge)"
msgid "BitTorrent Web Client"
@@ -1552,57 +1557,57 @@ msgstr ""
"CONFIRM THAT APPLICATIONS AND SERVICES ARE WORKING AS EXPECTED."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "DIAGNOSTICS"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
#, fuzzy
#| msgid "Setup failed."
msgid "failed"
msgstr "SETUP FAILED."
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1651,7 +1656,7 @@ msgstr "TEST"
msgid "Result"
msgstr "RESULT"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "DIAGNOSTIC TEST"
@@ -1717,11 +1722,11 @@ msgstr ""
"BASED SERVICES ON "
"FREEDNS.AFRAID.ORG."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "DYNAMIC DNS CLIENT"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
#, fuzzy
#| msgid "Domain Name"
msgid "Dynamic Domain Name"
@@ -1869,13 +1874,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1970,12 +1976,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
#, fuzzy
#| msgid "Web Server"
msgid "Chat Server"
@@ -2078,7 +2084,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2126,23 +2132,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Web Server"
msgid "Email Server"
msgstr "WEB SERVER"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Create User"
msgid "My Email Aliases"
msgstr "CREATE USER"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Create User"
msgid "Manage Aliases for Mailbox"
@@ -2182,7 +2188,7 @@ msgstr ""
msgid "Aliases"
msgstr "CREATE USER"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
#, fuzzy
#| msgid "Enable Roundcube"
@@ -2280,7 +2286,7 @@ msgstr ""
"NETWORK TRAFFIC ON YOUR %(box_name)s. KEEPING A FIREWALL ENABLED AND "
"PROPERLY CONFIGURED REDUCES RISK OF SECURITY THREAT FROM THE INTERNET."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "FIREWALL"
@@ -2428,15 +2434,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2557,35 +2563,35 @@ msgstr "DELETE WIKI OR BLOG %(name)s"
msgid "Delete this repository permanently?"
msgstr "DELETE USER PERMANENTLY?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
#, fuzzy
#| msgid "packages not found"
msgid "Repository created."
msgstr "PACKAGES NOT FOUND"
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "An error occurred while creating the repository."
msgstr "AN ERROR OCCURRED DURING CONFIGURATION."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
#, fuzzy
#| msgid "packages not found"
msgid "Repository edited."
msgstr "PACKAGES NOT FOUND"
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
#, fuzzy
#| msgid "Create User"
msgid "Edit repository"
msgstr "CREATE USER"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "DOCUMENTATION"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
#, fuzzy
#| msgid "Manual"
@@ -2593,28 +2599,28 @@ msgctxt "User guide"
msgid "Manual"
msgstr "MANUAL"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "ABOUT"
@@ -2741,6 +2747,43 @@ msgstr ""
msgid "Learn more..."
msgstr "LEARN MORE »"
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+#, fuzzy
+#| msgid "Show Details"
+msgid "Show issues"
+msgstr "SHOW DETAILS"
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2870,16 +2913,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "DOCUMENTATION AND FAQ"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "ABOUT {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "{box_name} MANUAL"
@@ -2910,23 +2953,23 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
#, fuzzy
#| msgid "Applications"
msgid "Manage I2P application"
msgstr "APPLICATIONS"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
#, fuzzy
#| msgid "Tor Anonymity Network"
msgid "Anonymity Network"
msgstr "TOR ANONYMITY NETWORK"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
#, fuzzy
#| msgid "Privoxy Web Proxy"
msgid "I2P Proxy"
@@ -2981,17 +3024,17 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
#, fuzzy
#| msgid "wiki"
msgid "ikiwiki"
msgstr "WIKI"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "WIKI AND BLOG"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
#, fuzzy
#| msgid "Services and Applications"
msgid "View and edit wiki applications"
@@ -3031,8 +3074,8 @@ msgstr "DELETE SITE %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "UPDATE SETUP"
@@ -3049,33 +3092,33 @@ msgstr ""
"THIS ACTION WILL REMOVE ALL THE POSTS, PAGES AND COMMENTS INCLUDING REVISION "
"HISTORY. DELETE THIS WIKI OR BLOG PERMANENTLY?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "CREATED WIKI {name}."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "COULD NOT CREATE WIKI: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "CREATED BLOG {name}."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "COULD NOT CREATE BLOG: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, fuzzy, python-brace-format
#| msgid "{name} deleted."
msgid "{title} deleted."
msgstr "{name} DELETED."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, fuzzy, python-brace-format
#| msgid "Could not delete {name}: {error}"
msgid "Could not delete {title}: {error}"
@@ -3093,11 +3136,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
#, fuzzy
#| msgid "Web Server"
msgid "Gobby Server"
@@ -3118,28 +3161,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "WEB SERVER"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3151,17 +3192,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
#, fuzzy
#| msgid "IRC Client (Quassel)"
msgid "Chat Client"
@@ -3344,7 +3385,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
#, fuzzy
#| msgid "Chat Server (XMPP)"
msgid "Matrix Synapse"
@@ -3380,8 +3421,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "CONFIGURATION"
@@ -3459,12 +3500,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3535,53 +3576,53 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
#, fuzzy
#| msgid "Password"
msgid "Password updated"
msgstr "PASSWORD"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
#, fuzzy
#| msgid "Applications"
msgid "Public registrations enabled"
msgstr "APPLICATIONS"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
#, fuzzy
#| msgid "Applications"
msgid "Public registrations disabled"
msgstr "APPLICATIONS"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
#, fuzzy
#| msgid "PageKite enabled"
msgid "Private mode enabled"
msgstr "PAGEKITE ENABLED"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
#, fuzzy
#| msgid "PageKite disabled"
msgid "Private mode disabled"
msgstr "PAGEKITE DISABLED"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
#, fuzzy
#| msgid "Setting unchanged"
msgid "Default skin changed"
msgstr "SETTING UNCHANGED"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "DOMAIN NAME SET"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3596,11 +3637,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
#, fuzzy
#| msgid "Blocked"
msgid "Block Sandbox"
@@ -3653,7 +3694,7 @@ msgstr ""
msgid "Address"
msgstr "ADDRESS"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3664,15 +3705,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
#, fuzzy
#| msgid "Mumble Voice Chat Server"
msgid "Simple Media Server"
@@ -3737,11 +3778,11 @@ msgstr ""
"href=\"http://mumble.info\">CLIENTS TO CONNECT TO MUMBLE FROM YOUR "
"DESKTOP AND ANDROID DEVICES ARE AVAILABLE."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
#, fuzzy
#| msgid "Voice Chat (Mumble)"
msgid "Voice Chat"
@@ -3787,19 +3828,19 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
#, fuzzy
#| msgid "Password changed successfully."
msgid "SuperUser password successfully updated."
msgstr "PASSWORD CHANGED SUCCESSFULLY."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Password"
msgid "Join password changed"
msgstr "PASSWORD"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
#, fuzzy
#| msgid "Domain name is unchanged"
msgid "Root channel name changed."
@@ -3838,27 +3879,22 @@ msgstr "SECURE SHELL (SSH)"
msgid "Services"
msgstr "SERVICE"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "NETWORKS"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "USING DNSSEC ON IPV{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "CONNECTION TYPE"
@@ -4419,7 +4455,7 @@ msgid "Create Connection"
msgstr "CREATE CONNECTION"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "DELETE CONNECTION"
@@ -4439,13 +4475,13 @@ msgstr "SPACING"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "ETHERNET"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "WI-FI"
@@ -4466,7 +4502,7 @@ msgid "Computer"
msgstr "COMPUTER"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "EDIT CONNECTION"
@@ -4478,13 +4514,13 @@ msgstr "CONNECTION"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "NEARBY WI-FI NETWORKS"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "ADD CONNECTION"
@@ -4673,293 +4709,289 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
#, fuzzy
#| msgid "Disabled"
msgid "disabled"
msgstr "DISABLED"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
#, fuzzy
#| msgid "Automatic Upgrades"
msgid "automatic"
msgstr "AUTOMATIC UPGRADES"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
#, fuzzy
#| msgid "Manual"
msgid "manual"
msgstr "MANUAL"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
#, fuzzy
#| msgid "Add Service"
msgid "shared"
msgstr "ADD SERVICE"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
#, fuzzy
#| msgid "Manage"
msgid "unmanaged"
msgstr "MANAGE"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
#, fuzzy
#| msgid "Enable Subdomains"
msgid "unavailable"
msgstr "ENABLE SUBDOMAINS"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
#, fuzzy
#| msgid "cable is connected"
msgid "disconnected"
msgstr "CABLE IS CONNECTED"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
#, fuzzy
#| msgid "Enable Shaarli"
msgid "preparing"
msgstr "ENABLE SHAARLI"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
#, fuzzy
#| msgid "Connection"
msgid "connecting"
msgstr "CONNECTION"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
#, fuzzy
#| msgid "Use HTTP basic authentication"
msgid "needs authentication"
msgstr "USE HTTP BASIC AUTHENTICATION"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
#, fuzzy
#| msgid "Deactivate"
msgid "activated"
msgstr "DEACTIVATE"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
#, fuzzy
#| msgid "Deactivate"
msgid "deactivating"
msgstr "DEACTIVATE"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
#, fuzzy
#| msgid "State reason"
msgid "no reason"
msgstr "STATE REASON"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
#, fuzzy
#| msgid "repro service is not running"
msgid "device is now managed"
msgstr "REPRO SERVICE IS NOT RUNNING"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
#, fuzzy
#| msgid "repro service is not running"
msgid "device is now unmanaged"
msgstr "REPRO SERVICE IS NOT RUNNING"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
#, fuzzy
#| msgid "Configuration"
msgid "configuration failed"
msgstr "CONFIGURATION"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
#, fuzzy
#| msgid "{name} deleted."
msgid "DHCP client failed"
msgstr "{name} DELETED."
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
#, fuzzy
#| msgid "Tor configuration is being updated"
msgid "shared connection service failed"
msgstr "TOR CONFIGURATION IS BEING UPDATED"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
#, fuzzy
#| msgid "This service already exists"
msgid "device was removed"
msgstr "THIS SERVICE ALREADY EXISTS"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
#, fuzzy
#| msgid "cable is connected"
msgid "device disconnected by user"
msgstr "CABLE IS CONNECTED"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
#, fuzzy
#| msgid "packages not found"
msgid "Wi-Fi network not found"
msgstr "PACKAGES NOT FOUND"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
#, fuzzy
#| msgid "Interface"
msgid "TUN or TAP interface"
msgstr "INTERFACE"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "NETWORK CONNECTIONS"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "CANNOT SHOW CONNECTION: CONNECTION NOT FOUND."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
#, fuzzy
#| msgid "Show Connection information"
msgid "Connection Information"
msgstr "SHOW CONNECTION INFORMATION"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "CANNOT EDIT CONNECTION: CONNECTION NOT FOUND."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "THIS TYPE OF CONNECTION IS NOT YET UNDERSTOOD."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "ACTIVATED CONNECTION {name}."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "FAILED TO ACTIVATE CONNECTION: CONNECTION NOT FOUND."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr "FAILED TO ACTIVATE CONNECTION {name}: NO SUITABLE DEVICE IS AVAILABLE."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "DEACTIVATED CONNECTION {name}."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "FAILED TO DE-ACTIVATE CONNECTION: CONNECTION NOT FOUND."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
#, fuzzy
#| msgid "Adding New Ethernet Connection"
msgid "Adding New Generic Connection"
msgstr "ADDING NEW ETHERNET CONNECTION"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "ADDING NEW ETHERNET CONNECTION"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "ADDING NEW PPPOE CONNECTION"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "ADDING NEW WI-FI CONNECTION"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "CONNECTION {name} DELETED."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "FAILED TO DELETE CONNECTION: CONNECTION NOT FOUND."
@@ -4987,26 +5019,26 @@ msgstr ""
"YOU CAN ALSO ACCESS THE REST OF THE INTERNET VIA %(box_name)s FOR ADDED "
"SECURITY AND ANONYMITY."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
#, fuzzy
#| msgid "Connection Type"
msgid "Connect to VPN services"
msgstr "CONNECTION TYPE"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
#, fuzzy
#| msgid "OpenVPN"
msgid "OpenVPN"
msgstr "OPENVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
#, fuzzy
#| msgid "Virtual Private Network (OpenVPN)"
msgid "Virtual Private Network"
msgstr "VIRTUAL PRIVATE NETWORK (OPENVPN)"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5160,19 +5192,19 @@ msgstr ""
"PROVIDER, FOR EXAMPLE PAGEKITE.NET. IN "
"FUTURE IT MIGHT BE POSSIBLE TO USE YOUR BUDDY'S %(box_name)s FOR THIS."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
#, fuzzy
#| msgid "Pagekite"
msgid "PageKite"
msgstr "PAGEKITE"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
#, fuzzy
#| msgid "Public Visibility (PageKite)"
msgid "Public Visibility"
msgstr "PUBLIC VISIBILITY (PAGEKITE)"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
#, fuzzy
#| msgid "PageKite Account"
msgid "PageKite Domain"
@@ -5297,29 +5329,29 @@ msgstr ""
"PROTOCOL/PORT COMBINATIONS THAT YOU ARE ABLE TO DEFINE HERE. FOR EXAMPLE, "
"HTTPS ON PORTS OTHER THAN 443 IS KNOWN TO CAUSE PROBLEMS."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "WEB SERVER (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "SITE WILL BE AVAILABLE AT HTTP://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "WEB SERVER (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "SITE WILL BE AVAILABLE AT HTTPS://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "SECURE SHELL (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5328,7 +5360,7 @@ msgstr ""
"SshOverPageKite/\">INSTRUCTIONS"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -5345,7 +5377,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
#, fuzzy
#| msgid "System Configuration"
msgid "System Monitoring"
@@ -5441,9 +5473,10 @@ msgstr ""
#| "href=\"http://p.p\">http://p.p."
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"YOU CAN USE PRIVOXY BY MODIFYING YOUR BROWSER PROXY SETTINGS TO YOUR "
@@ -5452,19 +5485,19 @@ msgstr ""
"config.privoxy.org\">HTTP://CONFIG.PRIVOXY.ORG/ OR HTTP://P.P.\""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
#, fuzzy
#| msgid "Enable Privoxy"
msgid "Privoxy"
msgstr "ENABLE PRIVOXY"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
#, fuzzy
#| msgid "Privoxy Web Proxy"
msgid "Web Proxy"
msgstr "PRIVOXY WEB PROXY"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "ACCESS {url} WITH PROXY {proxy} ON TCP{kind}"
@@ -5505,11 +5538,11 @@ msgstr ""
"downloads\">DESKTOP AND MOBILE DEVICES ARE AVAILABLE."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
#, fuzzy
#| msgid "Quassel IRC Client"
msgid "IRC Client"
@@ -5536,12 +5569,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -5606,7 +5639,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "CONFIGURATION UPDATED"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5618,7 +5651,7 @@ msgstr ""
"FROM AN EMAIL CLIENT, INCLUDING MIME SUPPORT, ADDRESS BOOK, FOLDER "
"MANIPULATION, MESSAGE SEARCHING AND SPELL CHECKING."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
#, fuzzy
#| msgid ""
#| "You can access Roundcube from /roundcube. "
@@ -5639,7 +5672,7 @@ msgstr ""
"IMAP.EXAMPLE.COM. FOR IMAP OVER SSL (RECOMMENDED), FILL THE "
"SERVER FIELD LIKE IMAPS://IMAP.EXAMPLE.COM."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
#, fuzzy
#| msgid ""
#| "For Gmail, username will be your Gmail address, password will be your "
@@ -5663,7 +5696,7 @@ msgstr ""
"lesssecureapps\" >HTTPS://WWW.GOOGLE.COM/SETTINGS/SECURITY/LESSSECUREAPPS"
"a>)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
#, fuzzy
#| msgid "Email Client (Roundcube)"
msgid "Email Client"
@@ -5680,6 +5713,47 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, the blogs and wikis will be available from /ikiwiki."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"WHEN ENABLED, THE BLOGS AND WIKIS WILL BE AVAILABLE FROM /IKIWIKI."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+#, fuzzy
+#| msgid "Bridge"
+msgid "RSS-Bridge"
+msgstr "BRIDGE"
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5711,15 +5785,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
#, fuzzy
#| msgid "Network Time Server"
msgid "Network File Storage"
@@ -5865,15 +5939,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
#, fuzzy
#| msgid "Web Server"
msgid "Web Search"
@@ -5962,7 +6036,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
#, fuzzy
#| msgid "Security"
msgid "Security Report"
@@ -6039,13 +6113,13 @@ msgstr ""
msgid "Not running"
msgstr "TOR IS NOT RUNNING"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, fuzzy, python-brace-format
#| msgid "Error setting time zone: {exception}"
msgid "Error setting restricted access: {exception}"
msgstr "ERROR SETTING TIME ZONE: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
#, fuzzy
#| msgid "General Configuration"
msgid "Updated security configuration"
@@ -6069,11 +6143,11 @@ msgstr ""
"a> PATH ON THE WEB SERVER. NOTE THAT SHAARLI ONLY SUPPORTS A SINGLE USER "
"ACCOUNT, WHICH YOU WILL NEED TO SETUP ON THE INITIAL VISIT."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "SHAARLI"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
#, fuzzy
#| msgid "Bookmarks (Shaarli)"
msgid "Bookmarks"
@@ -6107,11 +6181,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -6144,14 +6218,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
#, fuzzy
#| msgid "Enable Shaarli"
msgid "Sharing"
@@ -6205,32 +6279,32 @@ msgstr "THIS SERVICE ALREADY EXISTS"
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
#, fuzzy
#| msgid "Add Service"
msgid "Add share"
msgstr "ADD SERVICE"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
#, fuzzy
#| msgid "Groups"
msgid "With Groups"
msgstr "GROUPS"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -6390,7 +6464,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
#, fuzzy
#| msgid "Delete %(name)s"
msgid "Delete Snapshots"
@@ -6442,61 +6516,61 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
#, fuzzy
#| msgid "packages not found"
msgid "manually created"
msgstr "PACKAGES NOT FOUND"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
#, fuzzy
#| msgid "Create User"
msgid "Manage Snapshots"
msgstr "CREATE USER"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
#, fuzzy
#| msgid "Configuration updated"
msgid "Storage snapshots configuration updated"
msgstr "CONFIGURATION UPDATED"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "ACTION ERROR: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
#, fuzzy
#| msgid "Delete %(name)s"
msgid "Deleted selected snapshots"
msgstr "DELETE %(name)s"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -6508,7 +6582,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "SECURE SHELL (SSH) SERVER"
@@ -6555,7 +6629,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -6577,112 +6651,112 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
#, fuzzy
#| msgid "reStore"
msgid "Storage"
msgstr "RESTORE"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
#, fuzzy
#| msgid "repro service is running"
msgid "The device is already unmounting."
msgstr "REPRO SERVICE IS RUNNING"
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
#, fuzzy
#| msgid "This service already exists"
msgid "The device is already mounted."
msgstr "THIS SERVICE ALREADY EXISTS"
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
#, fuzzy
#| msgid "repro service is not running"
msgid "The device is not mounted."
msgstr "REPRO SERVICE IS NOT RUNNING"
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6829,18 +6903,18 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
#, fuzzy
#| msgid "Installation"
msgid "Administer Syncthing application"
msgstr "INSTALLATION"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6873,42 +6947,42 @@ msgid ""
"TCP port 9050."
msgstr "A TOR SOCKS PORT IS AVAILABLE ON YOUR %(box_name)s ON TCP PORT 9050."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
#, fuzzy
#| msgid "Tor Hidden Service"
msgid "Tor Onion Service"
msgstr "TOR HIDDEN SERVICE"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "TOR BRIDGE RELAY"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "TOR RELAY PORT AVAILABLE"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "OBFS3 TRANSPORT REGISTERED"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "OBFS4 TRANSPORT REGISTERED"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "ACCESS URL {url} ON TCP{kind} VIA TOR"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "CONFIRM TOR USAGE AT {url} ON TCP{kind}"
@@ -6918,39 +6992,35 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "ENABLE TOR"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
#, fuzzy
#| msgid "Enable Tor"
msgid "Enable Tor relay"
msgstr "ENABLE TOR"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6958,26 +7028,26 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
#, fuzzy
#| msgid "Tor Bridge Relay"
msgid "Enable Tor bridge relay"
msgstr "TOR BRIDGE RELAY"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Hidden Service"
msgstr "ENABLE TOR HIDDEN SERVICE"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@@ -6990,11 +7060,11 @@ msgstr ""
"A HIDDEN SERVICE WILL ALLOW {box_name} TO PROVIDE SELECTED SERVICES (SUCH AS "
"OWNCLOUD OR CHAT) WITHOUT REVEALING ITS LOCATION."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "DOWNLOAD SOFTWARE PACKAGES OVER TOR"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -7004,7 +7074,7 @@ msgstr ""
"INSTALLATIONS AND UPGRADES. THIS ADDS A DEGREE OF PRIVACY AND SECURITY "
"DURING SOFTWARE DOWNLOADS."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -7016,25 +7086,29 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "TOR CONFIGURATION IS BEING UPDATED"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
#, fuzzy
#| msgid "Hidden Service"
msgid "Onion Service"
msgstr "HIDDEN SERVICE"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
#, fuzzy
#| msgid "Port"
msgid "Ports"
msgstr "PORT"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "SETTING UNCHANGED"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "AN ERROR OCCURRED DURING CONFIGURATION."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing packages: {string} {details}"
+msgid "Error configuring app: {error}"
+msgstr "ERROR INSTALLING PACKAGES: {string} {details}"
#: plinth/modules/transmission/__init__.py:23
#, fuzzy
@@ -7091,7 +7165,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
#, fuzzy
#| msgid "Transmission BitTorrent"
@@ -7123,15 +7197,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -7152,8 +7222,8 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
#, fuzzy
@@ -7161,30 +7231,30 @@ msgstr ""
msgid "Software Update"
msgstr "SOFTWARE UPGRADES"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
#| msgid "FreedomBox Manual"
msgid "FreedomBox Updated"
msgstr "FREEDOMBOX MANUAL"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
#, fuzzy
#| msgid "Automatic upgrades disabled"
msgid "Distribution update started"
msgstr "AUTOMATIC UPGRADES DISABLED"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7278,6 +7348,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -7349,43 +7420,67 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Test Distribution Upgrade"
+msgstr "AUTOMATIC UPGRADES ENABLED"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Test distribution upgrade now"
+msgstr "AUTOMATIC UPGRADES ENABLED"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "ERROR WHEN CONFIGURING UNATTENDED-UPGRADES: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "AUTOMATIC UPGRADES ENABLED"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "AUTOMATIC UPGRADES DISABLED"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
#, fuzzy
#| msgid "Automatic upgrades enabled"
msgid "Distribution upgrade enabled"
msgstr "AUTOMATIC UPGRADES ENABLED"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
#, fuzzy
#| msgid "Automatic upgrades disabled"
msgid "Distribution upgrade disabled"
msgstr "AUTOMATIC UPGRADES DISABLED"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "UPGRADE PROCESS STARTED."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "STARTING UPGRADE FAILED."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Starting distribution upgrade test."
+msgstr "AUTOMATIC UPGRADES ENABLED"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7401,15 +7496,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "USERS AND GROUPS"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "CHECK LDAP ENTRY \"{search_item}\""
@@ -8062,14 +8157,14 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
#, fuzzy
#| msgid "Address"
msgid "WordPress"
msgstr "ADDRESS"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
#, fuzzy
#| msgid "Wiki and Blog"
msgid "Website and Blog"
@@ -8108,11 +8203,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -8148,42 +8243,141 @@ msgstr "PPPOE"
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "ERROR SETTING HOSTNAME: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, fuzzy, python-brace-format
+#| msgid "Service disabled: {name}"
+msgid "Finished: {name}"
+msgstr "SERVICE DISABLED: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr ""
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Existing custom services"
+msgid "Error running apt-get"
+msgstr "EXISTING CUSTOM SERVICES"
-#: plinth/package.py:377
+#: plinth/package.py:389
#, fuzzy
#| msgid "Installation"
msgid "installing"
msgstr "INSTALLATION"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
#, fuzzy
#| msgid "Setting unchanged"
msgid "media change"
msgstr "SETTING UNCHANGED"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, fuzzy, python-brace-format
#| msgid "Configuration"
msgid "configuration file: {file}"
msgstr "CONFIGURATION"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install"
+msgid "Installing app"
+msgstr "INSTALL"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing packages: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "ERROR INSTALLING PACKAGES: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing packages: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "ERROR INSTALLING PACKAGES: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing packages: {string} {details}"
+msgid "Error installing app: {error}"
+msgstr "ERROR INSTALLING PACKAGES: {string} {details}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing packages: {string} {details}"
+msgid "Error updating app: {error}"
+msgstr "ERROR INSTALLING PACKAGES: {string} {details}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Applications"
+msgid "App installed."
+msgstr "APPLICATIONS"
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "LAST UPDATE"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstalling app"
+msgstr "INSTALL"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing packages: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "ERROR INSTALLING PACKAGES: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing packages: {string} {details}"
+msgid "Error uninstalling app: {error}"
+msgstr "ERROR INSTALLING PACKAGES: {string} {details}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Applications"
+msgid "App uninstalled."
+msgstr "APPLICATIONS"
+
+#: plinth/setup.py:451
+#, fuzzy
+#| msgid "Upgrade Packages"
+msgid "Updating app packages"
+msgstr "UPGRADE PACKAGES"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -8241,7 +8435,7 @@ msgstr ""
msgid "Installation"
msgstr "INSTALLATION"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, fuzzy, python-format
#| msgid "Service discovery server is not running"
msgid "Service %(service_name)s is not running."
@@ -8514,6 +8708,12 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr "%(box_name)s SETUP"
+#: plinth/templates/setup.html:18
+#, fuzzy
+#| msgid "Applications"
+msgid "Application installed."
+msgstr "APPLICATIONS"
+
#: plinth/templates/setup.html:24
#, fuzzy
#| msgid "Installation"
@@ -8525,58 +8725,92 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "INSTALL"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
#, fuzzy
#| msgid "Update URL"
msgid "Update"
msgstr "UPDATE URL"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "INSTALL"
+
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "EDIT USER %(username)s"
+
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
msgstr ""
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "INSTALLING %(package_names)s: %(status)s"
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "SETTING UNCHANGED"
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% COMPLETE"
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr ""
+#~ msgid "Network Connections"
+#~ msgstr "NETWORK CONNECTIONS"
+
+#~ msgid "Enable Tor"
+#~ msgstr "ENABLE TOR"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "TOR CONFIGURATION IS BEING UPDATED"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "USING DNSSEC ON IPV{kind}"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "INSTALLING %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% COMPLETE"
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "WEB SERVER"
+
#, fuzzy
#~| msgid "Service"
#~ msgid "Server URL"
@@ -8931,11 +9165,6 @@ msgstr ""
#~ msgid "Postfix domain name config"
#~ msgstr "ERROR SETTING DOMAIN NAME: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "AN ERROR OCCURRED DURING CONFIGURATION."
-
#, fuzzy
#~| msgid "Disabled"
#~ msgid "Disable selected"
@@ -9322,9 +9551,6 @@ msgstr ""
#~ msgid "Service enabled: {name}"
#~ msgstr "SERVICE ENABLED: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "SERVICE DISABLED: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "PAGEKITE ACCOUNT"
@@ -9541,9 +9767,6 @@ msgstr ""
#~ msgid "Automatic Upgrades"
#~ msgstr "AUTOMATIC UPGRADES"
-#~ msgid "Upgrade Packages"
-#~ msgstr "UPGRADE PACKAGES"
-
#, fuzzy
#~| msgid "Create User"
#~ msgid "Create archive"
@@ -9795,9 +10018,6 @@ msgstr ""
#~ msgid "IP Check URL"
#~ msgstr "IP CHECK URL"
-#~ msgid "Bridge"
-#~ msgstr "BRIDGE"
-
#~ msgid "Enable network time"
#~ msgstr "ENABLE NETWORK TIME"
@@ -10025,9 +10245,6 @@ msgstr ""
#~ msgid "The operating system is up to date now. "
#~ msgstr "THE OPERATING SYSTEM IS UP TO DATE NOW. "
-#~ msgid "Show Details"
-#~ msgstr "SHOW DETAILS"
-
#~ msgid ""
#~ "This will run unattended-upgrades, which will attempt to upgrade your "
#~ "system with the latest Debian packages. It may take a few minutes to "
diff --git a/plinth/locale/fr/LC_MESSAGES/django.po b/plinth/locale/fr/LC_MESSAGES/django.po
index e0c7ee411..454c8d764 100644
--- a/plinth/locale/fr/LC_MESSAGES/django.po
+++ b/plinth/locale/fr/LC_MESSAGES/django.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
-"PO-Revision-Date: 2022-06-17 19:15+0000\n"
-"Last-Translator: Coucouf \n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
+"PO-Revision-Date: 2022-08-19 13:01+0000\n"
+"Last-Translator: James Valleroy \n"
"Language-Team: French \n"
"Language: fr\n"
@@ -17,13 +17,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.13-dev\n"
+"X-Generator: Weblate 4.14-dev\n"
#: doc/dev/_templates/layout.html:11
msgid "Page source"
msgstr "Code source de la page"
-#: plinth/context_processors.py:23 plinth/views.py:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr "FreedomBox"
@@ -53,10 +53,24 @@ msgid "Cannot connect to {host}:{port}"
msgstr "Impossible de se connecter à {host}:{port}"
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+#, fuzzy
+#| msgid "Repository not found"
+msgid "Repository to backup to"
+msgstr "Dépôt introuvable"
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr "Sélectionnez un nom de domaine à utiliser avec cette application"
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
@@ -64,12 +78,12 @@ msgstr ""
"Attention ! Cette application risque de ne pas fonctionner correctement si "
"le nom de domaine est modifié ultérieurement."
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr "Domaine TLS"
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
@@ -78,41 +92,27 @@ msgstr ""
"Sélectionner le domaine à utiliser avec TLS. Si la liste est vide, il vous "
"faudra configurer au moins un domaine avec des certificats."
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr "Langue"
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr "Langue de cette interface web"
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr "Utiliser la langue du navigateur"
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr "Application installée."
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr "Erreur lors de l’installation de l’application : {string} {details}"
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr "Erreur lors de l’installation de l’application : {error}"
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr "Serveur HTTP Apache"
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr "Serveur web"
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr "Interface web de la {box_name} (Plinth)"
@@ -145,11 +145,11 @@ msgstr ""
"améliorer la sécurité en particulier dans le cas d’une connexion à un réseau "
"local hostile."
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr "Découverte de services"
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr "Domaine de réseau local"
@@ -157,12 +157,12 @@ msgstr "Domaine de réseau local"
msgid "Backups allows creating and managing backup archives."
msgstr "Sauvegardes permet de créer et de gérer des archives de sauvegarde."
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr "Sauvegardes"
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
@@ -171,18 +171,18 @@ msgstr ""
"données. Il est préférable d’utiliser un emplacement de sauvegarde distant "
"et chiffré, ou un disque externe additionnel."
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr "Activer la planification des sauvegardes"
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr "Aller à {app_name}"
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
@@ -191,7 +191,7 @@ msgstr ""
"Une sauvegarde régulière a échoué après {error_count} tentatives. Le dernier "
"message d'erreur était : {error_message}"
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr "Erreur pendant la sauvegarde"
@@ -278,7 +278,7 @@ msgstr "Dépôt"
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr "Nom"
@@ -447,7 +447,7 @@ msgid "{box_name} storage"
msgstr "Stockage de la {box_name}"
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr "Créer une nouvelle sauvegarde"
@@ -500,7 +500,7 @@ msgid "Create Location"
msgstr "Créer un emplacement"
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr "Créer un dépôt"
@@ -558,7 +558,7 @@ msgstr "Télécharger"
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr "Restaurer"
@@ -662,99 +662,99 @@ msgstr ""
msgid "Verify Host"
msgstr "Vérifier le serveur"
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr "Planification des sauvegardes mise à jour."
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr "Planifier des sauvegardes"
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr "Archive créée."
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr "Supprimer l’archive"
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr "Archive supprimée."
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr "Téléverser et restaurer une sauvegarde"
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr "Les fichiers ont été restaurés de la sauvegarde."
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr "Aucun fichier de sauvegarde n’a été trouvé."
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr "Restaurer du fichier téléversé"
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr "Aucun disque supplémentaire n’est disponible pour ajouter un dépôt."
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr "Créer un dépôt de sauvegarde"
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr "Créer un dépôt de sauvegarde distant"
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr "Ajouter un nouveau dépôt SSH distant."
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr "Vérifier la clé d’authenticité du serveur SSH"
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr "Serveur SSH déjà vérifié."
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr "Serveur SSH vérifié."
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr "La clé publique d’authenticité du serveur SSH n’a pu être vérifiée."
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr "L’authentification sur le serveur distant a échoué."
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr "Erreur lors de la connexion au serveur : {}"
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr "Dépôt supprimé."
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr "Supprimer ce dépôt"
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr "Dépôt supprimé. Les sauvegardes n’ont pas été supprimées."
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr "Le démontage a échoué !"
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr "Le montage a échoué"
@@ -797,39 +797,39 @@ msgstr ""
"seule personne ou d’un seul groupe en supprimant leur mot de passe de la "
"liste."
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr "Accès en lecture seule aux fichiers, à partir de leur lien"
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr "Créer ou envoyer des fichiers"
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr "Lister l’ensemble des fichiers et récupérer leurs liens hypertexte"
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr "Supprimer des fichiers"
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr "Administrer des fichiers : verrouiller / déverouiller des fichiers"
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr "Aucune, le mot de passe est toujours exigé"
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr "Listing et lecture de l’ensemble des fichiers"
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr "bepasty"
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr "Partage de fichiers et de bribes de texte"
@@ -925,16 +925,15 @@ msgstr "Suppression"
msgid "Admin"
msgstr "Admin"
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr "Configuration mise à jour."
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr "Une erreur est survenue pendant la configuration."
@@ -970,11 +969,11 @@ msgstr ""
"les requêtes DNS des autres appareils du réseau local. Il est également "
"incompatible avec le partage de connexion Internet par la {box_name}."
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr "BIND"
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr "Serveur de nom de domaine"
@@ -1028,12 +1027,12 @@ msgstr "Adresses IP"
msgid "Refresh IP address and domains"
msgstr "Actualiser l’adresse IP et les domaines"
-#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
-#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -1076,15 +1075,15 @@ msgstr ""
"cette application. Les utilisateurs ayant cet accès pourront utiliser toutes "
"les collections."
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "Utilisation des collections de livres électroniques calibre"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "Bibliothèque de livres numériques"
@@ -1150,25 +1149,25 @@ msgstr "Ouvrir la collection %(library)s"
msgid "Delete library %(library)s"
msgstr "Supprimer la collection %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "Collection créée."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "Une erreur est survenue pendant la création de la collection."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} supprimé."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "La suppression de {name} a échoué : {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1182,7 +1181,7 @@ msgstr ""
"sont pas nécessaires dans la majorité des cas. Un terminal web est également "
"fourni pour pouvoir réaliser des opérations d’administration via une console."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1196,7 +1195,7 @@ msgstr ""
"l’agrégation de liens (« bonding »), la création de ponts (« bridging ») et "
"la gestion de réseaux virtuels VLAN."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1205,33 +1204,16 @@ msgstr ""
"L’accès est autorisé à tout utilisateur faisant "
"partie du groupe admin sur la {box_name}."
-#: plinth/modules/cockpit/__init__.py:40
-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 nécessite que vous y accédiez depuis un nom de domaine. Il ne "
-"fonctionnera pas si vous tentez d’y accédez en utilisant une adresse IP dans "
-"son URL."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Administration du serveur"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Accès"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Cockpit ne fonctionnera qu’en y accédant depuis les URL suivantes."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1246,7 +1228,7 @@ msgstr "Configuration générale"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Configurer"
@@ -1345,44 +1327,68 @@ msgstr ""
"Montrer les applications et fonctionnalités nécessitant plus de "
"connaissances techniques."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr "Journalisation du système"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr "Désactiver le journal, pour la confidentialité"
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr "En garder en mémoire jusqu'au redémarrage, pour les performances"
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr "Écrire sur le disque, utile pour débogage"
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+"Les journaux contiennent des informations sur qui a accédé au système, ainsi "
+"que des informations de débogage sur différents services"
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Erreur lors de la définition du nom de machine : {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Nom de machine configuré"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Erreur lors de la définition du nom de domaine : {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Nom de domaine configuré"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
"Erreur lors du changement de page d’accueil du serveur web : {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Page d’accueil du serveur web modifiée"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Erreur lors du changement de mode avancé : {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Les applications et fonctionnalités avancées seront affichées"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Les applications et les fonctionnalités avancées seront masquées"
@@ -1411,11 +1417,11 @@ msgstr ""
"\"{e_url}\">ejabberd qui peuvent l’utiliser en reportant les détails "
"fournis ici dans leur configuration."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "Assistant de VoIP"
@@ -1441,11 +1447,11 @@ msgstr ""
"Le serveur de temps réseau est un programme permettant de maintenir l’heure "
"du système synchronisée avec les serveurs Internet."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Date et heure"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Heure synchronisée avec le serveur de temps NTP"
@@ -1487,17 +1493,17 @@ msgstr ""
"il est fortement recommandé de le modifier immédiatement après l’activation "
"du service."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Téléchargement de fichiers avec les applications BitTorrent"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "Client web pour BitTorrent"
@@ -1519,50 +1525,50 @@ msgstr ""
"fonctionnent comme prévu."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnostics"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "réussi"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "échoué"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "erreur"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "avertissement"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "Mio"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "Gio"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
"Vous devriez désactiver certaines application pour libérer de la mémoire."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
"Il est déconseillé d’installer de nouvelles applications sur ce système."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1571,7 +1577,7 @@ msgstr ""
"Le système est bientôt à court de mémoire : {percent_used}% utilisés, "
"{memory_available} {memory_available_unit} libres. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Mémoire disponible faible"
@@ -1621,7 +1627,7 @@ msgstr "Test"
msgid "Result"
msgstr "Résultat"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Test de diagnostic"
@@ -1668,11 +1674,11 @@ msgstr ""
"d’actualisation sur freedns.afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Client DNS dynamique"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Nom de domaine dynamique"
@@ -1804,13 +1810,14 @@ msgid "This field is required."
msgstr "Ce champ est requis."
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1892,18 +1899,16 @@ msgstr ""
"Installez pour cela l’application Coturn ou "
"bien configurez un serveur externe."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Serveur de discussion"
#: plinth/modules/ejabberd/forms.py:19
-#, fuzzy
-#| msgid "Domain Names"
msgid "Domain names"
msgstr "Noms de domaine"
@@ -1912,6 +1917,9 @@ msgid ""
"Domains to be used by ejabberd. Note that user accounts are unique for each "
"domain, and migrating users to a new domain name is not yet implemented."
msgstr ""
+"Les domaines à utiliser pour ejabberd. À noter que les comptes utilisateur "
+"sont uniques pour chaque domaine, et que la migration des comptes entre les "
+"noms de domaine n'est pas encore implémenté."
#: plinth/modules/ejabberd/forms.py:26
msgid "Enable Message Archive Management"
@@ -2008,7 +2016,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2038,6 +2046,10 @@ msgid ""
"restrict outgoing email. Some lift the restriction after an explicit "
"request. See manual page for more information."
msgstr ""
+"Le serveur de courriel ne fonctionne actuellement pas avec beaucoup de "
+"service des domaines gratuits, même ceux fournis par FreedomBox Foundation. "
+"Plusieurs FAI limitent aussi les courriels sortants. Certains retirent cette "
+"limite après une requête explicite. Voir le manuel pour plus de précisions."
#: plinth/modules/email/__init__.py:35
#, python-brace-format
@@ -2071,19 +2083,19 @@ msgstr ""
"Durant l’installation, les autres serveurs de courriels qui seraient "
"présents sur le système seront désinstallés."
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr "Postfix/Dovecot"
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "Serveur de courriel"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr "Mes alias de courriel"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr "Gérer les alias pour la boîte aux lettres"
@@ -2119,7 +2131,7 @@ msgstr "Ne peut être un nombre"
msgid "Aliases"
msgstr "Liste d’alias"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2206,7 +2218,7 @@ msgstr ""
"un pare-feu activé et correctement configuré réduit le risque des menaces "
"provenant d’Internet."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Pare-feu"
@@ -2369,15 +2381,15 @@ msgstr ""
"Pour en apprendre plus sur l’utilisation de Git, consultez ce tutoriel Git."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Accès aux dépôts Git en lecture et en écriture"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Hébergement Git simple"
@@ -2474,54 +2486,54 @@ msgstr "Supprimer le dépôt Git %(name)s"
msgid "Delete this repository permanently?"
msgstr "Supprimer définitivement ce dépôt ?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Dépôt créé."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Une erreur est survenue pendant la création du dépôt."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Dépôt modifié."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Modifier le dépôt"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Documentation"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Manuel utilisateur"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Obtenir de l’aide"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Partager vos impressions"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Participer"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "À propos"
@@ -2665,6 +2677,44 @@ msgstr ""
msgid "Learn more..."
msgstr "En savoir plus…"
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr "Comment puis-je aider ?"
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+"Ci dessous une liste des opportunités pour contribuer à Debian. Elle a été "
+"filtrée pour n'afficher que les paquets installés sur ce système."
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr "Montrer les tickets"
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr "Les paquets qui seront supprimés de Debian testing"
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+#, fuzzy
+msgid "source package:"
+msgstr "source du paquet :"
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr "Les paquets qui ne sont pas dans Debian testing"
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr "Les bons premiers tickets pour les débutants"
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr "Les tickets où les mainteneurs de paquet ont demandé de l'aide"
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2813,16 +2863,16 @@ msgstr ""
"Veuillez retirer les éventuels mots de passe et autres informations "
"personnelles du journal avant de soumettre le rapport d’erreur."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Documentation et FAQ"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "À propos de la {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "Manuel {box_name}"
@@ -2855,19 +2905,19 @@ msgstr ""
"L’interface web fournie vous guidera dans les étapes de configuration lors "
"de votre première visite."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "Gestion de l’application I2P"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Réseau d'anonymisation"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "Serveur mandataire I2P"
@@ -2939,15 +2989,15 @@ msgstr ""
"utilisateurs dans la configuration des utilisateurs"
"a>."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki et blogue"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Consultation et modification des applications de wiki"
@@ -2985,8 +3035,8 @@ msgstr "Supprimer le site %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Appliquer les changements"
@@ -3004,32 +3054,32 @@ msgstr ""
"commentaires, ainsi que l'historique des révisions. Voulez-vous supprimer ce "
"wiki ou blogue de façon permanente ?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Wiki {name} créé."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Le wiki n'a pu être créé : {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Blogue {name} créé."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Le blogue n'a pu être créé : {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} supprimé."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "La suppression de {title} n'a pas abouti : {error}"
@@ -3049,11 +3099,11 @@ msgstr ""
"Gobby et installez-le. Lancez ensuite Gobby, sélectionnez « Connect to "
"Server » et saisissez le nom de domaine de la {box_name}."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Serveur Gobby"
@@ -3074,29 +3124,26 @@ msgstr ""
"Lancez Gobby, sélectionnez « Connect to Server » et saisissez le nom de "
"domaine de la {box_name}."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr "Janus est un serveur léger de communication en temps réel WebRTC."
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr "Une salle de visioconférence simple est incluse."
-#: plinth/modules/janus/__init__.py:26
-#, fuzzy, python-brace-format
-#| msgid "A STUN/TURN server (such as Coturn) is required to use Janus."
+#: plinth/modules/janus/__init__.py:25
+#, python-brace-format
msgid "Coturn is required to use Janus."
-msgstr ""
-"Un serveur STUN/TURN (tel que Coturn) est requis pour le fonctionnement de "
-"Janus."
+msgstr "Coturn est requis pour utiliser Janus."
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr "Janus"
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
-msgstr "Serveur WebRTC"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr "Salle de visio"
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3108,7 +3155,7 @@ msgstr "Salle de visio Janus"
msgid "JavaScript license information"
msgstr "Information de licence JavaScript"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3116,11 +3163,11 @@ msgstr ""
"JSXC est un client web pour XMPP. Il s’utilise typiquement avec un serveur "
"XMPP tournant sur la même machine."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Client de discussion"
@@ -3292,7 +3339,7 @@ msgstr ""
"Installez pour cela l’application Coturn ou "
"bien configurez un serveur externe."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3330,8 +3377,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Configuration"
@@ -3436,12 +3483,12 @@ msgstr ""
"Toute personne ayant le lien vers ce wiki peut le consulter. Seuls les "
"utilisateurs connectés avec leur compte peuvent y apporter des modifications."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3472,14 +3519,12 @@ msgstr ""
"exemple.org » ou « exemple.onion »."
#: plinth/modules/mediawiki/forms.py:41
-#, fuzzy
-#| msgid "Kite name"
msgid "Site Name"
-msgstr "Nom Kite"
+msgstr "Nom du site"
#: plinth/modules/mediawiki/forms.py:42
msgid "Name of the site as displayed throughout the wiki."
-msgstr ""
+msgstr "Le nom du site à afficher sur le wiki."
#: plinth/modules/mediawiki/forms.py:46
msgid "Enable public registrations"
@@ -3518,45 +3563,43 @@ msgstr ""
"Choisissez un thème par défaut pour votre installation de MediaWiki. Les "
"utilisateurs peuvent sélectionner leur thème préféré."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Mot de passe mis à jour"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-"Échec de la mise à jour du mot passe. Veuillez utiliser un mot de passe plus "
-"fort."
+"Échec de la mise à jour du mot passe. Veuillez choisir un mot de passe plus "
+"sûr"
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Inscriptions publiques activées"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Inscriptions publiques désactivées"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Mode privé activé"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Mode privé désactivé"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Thème par défaut modifié"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr "Nom de domaine modifié"
-#: plinth/modules/mediawiki/views.py:103
-#, fuzzy
-#| msgid "Domain name updated"
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
-msgstr "Nom de domaine modifié"
+msgstr "Nom de site modifié"
#: plinth/modules/minetest/__init__.py:35
#, python-brace-format
@@ -3571,11 +3614,11 @@ msgstr ""
"au serveur, vous devez disposer d'un client Minetest."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Bac à sable cubique"
@@ -3629,7 +3672,7 @@ msgstr ""
msgid "Address"
msgstr "Adresse"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3647,15 +3690,15 @@ msgstr ""
"portables, les smartphones, les télévisions et les systèmes de jeu (comme la "
"PS3 ou la Xbox 360) ainsi que les applications telles que Totem ou Kodi."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Serveur de streaming de médias"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Serveur de médias simple"
@@ -3719,11 +3762,11 @@ msgstr ""
"64738. Utilisez l’un des clients Mumble "
"pour vous connecter depuis votre ordinateur ou un appareil mobile."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Tchat vocal"
@@ -3742,29 +3785,27 @@ msgstr ""
#: plinth/modules/mumble/forms.py:40
msgid "Set a password to join the server"
-msgstr ""
+msgstr "Définir un mot de passe pour rejoindre le serveur"
#: plinth/modules/mumble/forms.py:42
-#, fuzzy
-#| msgid ""
-#| "Set a new upload password for Coquelicot. Leave this field blank to keep "
-#| "the current password."
msgid ""
"Set a password that is required to join the server. Leave empty to use the "
"current password."
msgstr ""
-"Définir un nouveau mot de passe de téléversement pour Coquelicot. Laissez ce "
-"champ vide pour conserver le mot de passe actuel."
+"Définir un nouveau mot de passe est nécessaire pour rejoindre le serveur. "
+"Laissez-le vide pour utiliser l'actuel mot de passe."
#: plinth/modules/mumble/forms.py:48
msgid "Set the name for the root channel"
-msgstr ""
+msgstr "Définir le nom pour le canal racine"
#: plinth/modules/mumble/forms.py:52
msgid ""
"Set the name of the main channel of your mumble server. If the name was "
"never changed, the channel is named Root."
msgstr ""
+"Définir le nom du canal principal de votre serveur mumble. Si le nom n'a "
+"jamais été changé, le canal est nommé \"Root\"."
#: plinth/modules/mumble/manifest.py:34
msgid "Mumblefly"
@@ -3774,19 +3815,17 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "Le mot de passe du super utilisateur a été mis à jour."
-#: plinth/modules/mumble/views.py:46
-#, fuzzy
-#| msgid "Upload password updated"
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
-msgstr "Le mot de passe de téléversement a été mis à jour"
+msgstr "Mot de passe pour rejoindre modifié"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
-msgstr ""
+msgstr "Nom du canal racine modifié."
#: plinth/modules/names/__init__.py:22
#, python-brace-format
@@ -3822,7 +3861,7 @@ msgstr "Secure Shell"
msgid "Services"
msgstr "Services"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3831,7 +3870,7 @@ msgstr ""
"le Wi-Fi ou le protocole PPPoE. Partage de cette connexion avec d’autres "
"appareils du réseau local."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3839,15 +3878,10 @@ msgstr ""
"Les périphériques gérés par d’autres méthodes pourraient ne pas être "
"disponibles pour être configurés ici."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Réseau"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "Utilise DNSSEC sur IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Type de connexion"
@@ -4470,7 +4504,7 @@ msgid "Create Connection"
msgstr "Créer Connexion"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Supprimer Connexion"
@@ -4490,13 +4524,13 @@ msgstr "Espacement"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4517,7 +4551,7 @@ msgid "Computer"
msgstr "Machine"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Modifier la connexion"
@@ -4527,13 +4561,13 @@ msgstr "Connexions"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Réseaux Wi-Fi à proximité"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Ajouter une connexion"
@@ -4764,249 +4798,245 @@ msgstr ""
"Elle vous donnera les instructions détaillées sur comment réaliser cette "
"opération."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "désactivé"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "automatique"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "manuel utilisateur"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "partagé"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr "lien local"
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "inconnu"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "non géré"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "indisponible"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "déconnecté"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "en cours de préparation"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "en cours de connexion"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "nécessite une authentification"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "demande d'adresse"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "vérification"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr "attente du secondaire"
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "activé"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "en cours de désactivation"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "Pas d’explication"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "erreur inconnue"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "Le périphérique est maintenant géré"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "Le périphérique n’est plus géré"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "échec de configuration"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr "secrets exigés"
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "le client DHCP n'a pas pu être démarré"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "erreur du client DHCP"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "Le client DHCP a échoué"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr "le partage de connexion n'a pas pu démarrer"
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "Le service de connexion partagée a échoué"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "Le périphérique a été déconnecté"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "Le périphérique a été déconnecté par l’utilisateur"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr "une dépendance de la connexion a échoué"
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "Réseau wifi introuvable"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "Une connexion secondaire a échoué"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr "une nouvelle activation de la connexion a été mise en file d'attente"
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "une adresse IP dupliquée a été détectée"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "Le protocole IP sélectionné n'est pas pris en charge"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "générique"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "Interface TUN ou TAP"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "infrastructure"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "point d’accès"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "Point d’accès au réseau maillé"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Connexions réseau"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
"Impossible d’afficher les détails de la connexion : connexion introuvable."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Informations sur la connexion"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Impossible de modifier la connexion : connexion introuvable."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
"La configuration de ce type de connexion n'est pas encore pris en charge."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "Connexion {name} activée."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Échec d’activation de la connexion : connexion introuvable."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"Échec d’activation de la connexion {name} : pas de périphérique adéquat "
"disponible."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Connexion {name} désactivée."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Échec de désactivation de la connexion : connexion introuvable."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Ajout d'une nouvelle connexion générique"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Ajout d’une nouvelle connexion Ethernet"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Ajout d’une nouvelle connexion PPPoE"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Ajout d’une nouvelle connexion Wi-Fi"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Connexion {name} supprimée."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Échec de suppression de la connexion : connexion introuvable."
@@ -5028,20 +5058,20 @@ msgstr ""
"d’accéder au reste d’Internet au travers de la {box_name} pour une sécurité "
"et un anonymat accrus."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "Connexion aux services VPN"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Réseau privé virtuel"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5191,15 +5221,15 @@ msgstr ""
"a>. Il se pourrait que dans le futur, l’utilisation de la {box_name} d’un "
"ami pour cela soit également proposée."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Visibilité publique"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "Domaine PageKite"
@@ -5313,29 +5343,29 @@ msgstr ""
"définition. Par exemple, l’utilisation de ports autre que 443 pour le "
"protocole HTTPS est connu pour causer des problèmes."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Serveur web (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "Le site sera accessible sur http://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Serveur web (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "Le site sera accessible sur https://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Shell sécurisé (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5344,7 +5374,7 @@ msgstr ""
"net/wiki/Howto/SshOverPageKite/\">wiki PageKite (en anglais)"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Performance"
@@ -5367,7 +5397,7 @@ msgstr ""
"Les métriques de performance sont collectées par le Co-Pilote "
"« Performance » et visualisables dans l’appli Cockpit."
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Surveillance du système"
@@ -5454,27 +5484,29 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Vous pouvez utiliser Privoxy en configurant le mandataire (proxy) dans votre "
"navigateur avec le nom de machine de la {box_name} (ou son adresse IP) et le "
-"port 8118. Lorsque vous utilisez Privoxy, des détails supplémentaires sur sa "
-"configuration ainsi que sa documentation sont accessibles sur http://config.privoxy.org/ ou http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Serveur mandataire web"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Accéder à l'URL {url} avec le mandataire {proxy} sur tcp{kind}"
@@ -5510,11 +5542,11 @@ msgstr ""
"quasseldroid.iskrembilen.com/\">mobile sont disponibles pour "
"téléchargement."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "Client IRC"
@@ -5550,12 +5582,12 @@ msgstr ""
"charge l’ajout d’événements ou de contacts, opérations qui doivent être "
"réalisées avec un client dédié."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Agenda et carnet d’adresses"
@@ -5635,7 +5667,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Configuration des droits d’accès mise à jour"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5649,7 +5681,7 @@ msgstr ""
"carnet d’adresses, une gestion des dossiers, un outil de recherche dans les "
"messages et un correcteur orthographique."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5664,7 +5696,7 @@ msgstr ""
"(recommandé), remplissez le champ serveur avec une adresse du type "
"imaps://imap.example.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5680,7 +5712,7 @@ msgstr ""
"settings/security/lesssecureapps\">https://www.google.com/settings/security/"
"lesssecureapps)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "Client de courriel"
@@ -5698,6 +5730,48 @@ msgstr ""
"cochée, les utilisateurs ne peuvent envoyer et recevoir des courriels que "
"depuis cette {box_name}."
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+"RSS-Bridge génère des fils RSS et Atom pour les sites qui n'en ont pas. Les "
+"fils générés peuvent être consommés par n'importe quelle liseuse de fil."
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Une fois activé, RSS-Bridge peut être consulté par n'importe quel utilisateur appartenant au groupe de "
+"lecteur de fil."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+"Vous pouvez utiliser RSS-Bridge avec Tiny Tiny RSS"
+"a> pour suivre différents sites internet. Lors de l'ajout d'un fil, activez "
+"l'authentification et utilisez les identifiants de {box_name}."
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Lecture et abonnement à des flux d’actualités"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr "RSS-Bridge"
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr "Générateur de fil RSS"
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5740,15 +5814,15 @@ msgstr ""
"Partage de dossier personnel : chaque utilisateur du groupe freedombox-share "
"a son propre espace privé."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Accès aux partages privés"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Stockage de fichiers réseau"
@@ -5884,15 +5958,15 @@ msgstr ""
"Searx peut être utilisé pour éviter le pistage et le profilage fait par les "
"moteurs de recherche. Par défaut il ne stocke aucun cookie."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Recherches sur le Web"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Recherche web"
@@ -5991,7 +6065,7 @@ msgstr ""
"les contributeurs de Debian et la communauté %(box_name)s."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Rapport de sécurité"
@@ -6071,12 +6145,12 @@ msgstr "Non"
msgid "Not running"
msgstr "Inactif"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Erreur lors de la mise en place de l’accès restreint : {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Configuration de sécurité mise à jour"
@@ -6092,11 +6166,11 @@ msgstr ""
"Notez que Shaarli ne sait gérer qu’un unique compte utilisateur, que vous "
"devrez configurer lors de votre première visite."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Signets"
@@ -6137,11 +6211,11 @@ msgstr ""
"l’URL de mandataire SOCKS5 sur votre appareil, navigateur ou application "
"avec l’URL http://adresse_freedombox:1080/"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Mandataire Socks5"
@@ -6174,7 +6248,7 @@ msgstr ""
"Méthode de chiffrement. Doit correspondre à celle qui a été configurée sur "
"le serveur."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6183,7 +6257,7 @@ msgstr ""
"« Partages » vous permet de partager des fichiers et répertoires de votre "
"{box_name} sur Internet avec des groupes d’utilisateurs bien définis."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Partages"
@@ -6238,28 +6312,28 @@ msgid "Shares should be either public or shared with at least one group"
msgstr ""
"Les partages peuvent être soit publics soit partagés avec au moins un groupe"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Ajouter un partage"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Aucun partage actuellement configuré."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Chemin"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Partagé sur"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Accessible aux groupes"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "Accès public"
@@ -6421,7 +6495,7 @@ msgstr "Date"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Supprimer les instantanés"
@@ -6475,54 +6549,54 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "Revenir à l'instantané #%(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "créé manuellement"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "historique"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Gestion des instantanés"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Instantané créé."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Configuration des instantanés de disque mise à jour"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Erreur sur action : {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Supprimer les instantanés sélectionnés"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
"L’instantané est en cours d’utilisation. Veuillez réessayer ultérieurement."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "Retour vers l'instantané #{number} effectué."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "Le système doit être redémarré pour terminer le retour en arrière."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Revenir à l'instantané"
@@ -6538,7 +6612,7 @@ msgstr ""
"effectuer des tâches d'administration, copier des fichiers ou bien faire "
"fonctionner d’autres services en utilisant de telles connexions."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Serveur Secure Shell (SSH)"
@@ -6584,7 +6658,7 @@ msgstr "Authentification SSH par mot de passe désactivée."
msgid "SSH authentication with password enabled."
msgstr "Authentification SSH par mot de passe activée."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Authentification unique"
@@ -6608,109 +6682,109 @@ msgstr ""
"d’utilisation, monter et démonter des médias amovibles, étendre la partition "
"racine, etc."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Stockage"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} octets"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} Kio"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} Mio"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} Gio"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} Tio"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "L'opération a échoué."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "L'opération a été annulée."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Le périphérique est déjà en train d’être démonté."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
"L’opération n’est pas disponible par manque d’un pilote ou d’un outil adapté."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "L'opération ne s'est pas terminée."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
"L'opération devrait réveiller un disque qui se trouve dans un état "
"d'endormissement profond."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Tentative de démontage d’un périphérique en cours d’utilisation."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "L'opération a déjà été annulée."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "Vous n'êtes pas autorisé à effectuer l'opération demandée."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Le périphérique est déjà monté."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Le périphérique n’est pas monté."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "Vous n'êtes pas autorisé à utiliser l'option demandée."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Le périphérique est monté par un autre utilisateur."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
"Espace disque faible sur la partition système : {percent_used}% utilisés, "
"{free_space} libres."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Espace disque faible"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "Erreur disque imminente"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6869,16 +6943,16 @@ msgstr ""
"accessible uniquement aux utilisateurs membres des groupes « admin » ou "
"« syncthing-access »."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Administration de l’application Syncthing"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Synchronisation de fichiers"
@@ -6897,49 +6971,48 @@ msgstr ""
"\">Navigateur Tor."
#: plinth/modules/tor/__init__.py:34
-#, fuzzy, python-brace-format
-#| msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
+#, python-brace-format
msgid ""
"A Tor SOCKS port is available on your {box_name} for internal networks on "
"TCP port 9050."
msgstr ""
-"Un port SOCKS pour Tor est accessible sur votre %(box_name)s sur le port TCP "
-"9050."
+"Un port SOCKS pour Tor est accessible sur votre {box_name} pour les réseaux "
+"internes via le port TCP 9050."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Service onion Tor"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Mandataire Socks Tor"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Relais Tor de type pont (« bridge relay »)"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Le port du relais Tor est disponible"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Abonné au transport obfs3"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Abonné au transport obfs4"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Accédez à l'URL {url} sur tcp{kind} via Tor"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Confirmez l'utilisation de Tor pour {url} sur tcp{kind}"
@@ -6950,15 +7023,11 @@ msgid ""
msgstr ""
"Entrez un pont valide avec ce format : [transport] IP:ORPort [fingerprint]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Activer Tor"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Utiliser les ponts amont pour vous connecter au réseau Tor"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6969,11 +7038,11 @@ msgstr ""
"censure les connexions au réseau Tor. Cela rendra les modes relais "
"indisponibles."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Ponts amont"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6984,11 +7053,11 @@ msgstr ""
"coller les informations de pont ici. Les transports pris en charge "
"actuellement sont aucun, obfs3, obfs4 et scamblesuit."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Activer le relais Tor"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -7000,11 +7069,11 @@ msgstr ""
"disposez de plus de 2 mégabits/s de bande passante en téléversement et en "
"téléchargement."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Activer le relais pont Tor"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -7015,11 +7084,11 @@ msgstr ""
"relais Tor, rendant ainsi plus difficile la censure de ce nœud. Ceci aide "
"d’autres personnes à contourner la censure."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Activer le service Tor caché"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -7030,11 +7099,11 @@ msgstr ""
"services sélectionnés (comme un wiki ou un tchat) sans révéler son "
"emplacement. Ne pas utiliser pour l’instant pour de l’anonymisation forte."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Téléchargez les paquets logiciels via Tor"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -7045,7 +7114,7 @@ msgstr ""
"sécurité et de confidentialité supplémentaires pour le téléchargement des "
"logiciels."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Spécifiez au moins un pont upstream pour utiliser des ponts upstream."
@@ -7057,21 +7126,25 @@ msgstr "Navigateur Tor"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot : Mandataire utilisant Tor"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "La configuration de Tor est en cours de mise à jour"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Service Onion"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Ports"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Paramètre inchangé"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Une erreur est survenue pendant la configuration."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error updating app: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Erreur d'installation de l’application : {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -7127,7 +7200,7 @@ msgstr ""
"Une fois qu'un téléchargement est terminé, vous pouvez également accéder à "
"vos fichiers au moyen de l'application Partage."
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -7144,16 +7217,14 @@ msgstr ""
"application de bureau complète."
#: plinth/modules/ttrss/__init__.py:27
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login."
+#, python-brace-format
msgid ""
"When enabled, Tiny Tiny RSS can be accessed by any "
"user belonging to the feed-reader group."
msgstr ""
-"Une fois activé, Tiny Tiny RSS peut être consulté par tout utilisateur disposant d’un compte sur la {box_name}."
+"Une fois activé, Tiny Tiny RSS peut être consulté par n'importe quel utilisateur appartenant au groupe de "
+"lecteur de fil."
#: plinth/modules/ttrss/__init__.py:32
msgid ""
@@ -7164,15 +7235,11 @@ msgstr ""
"ordinateur, saisissez l’URL tt-rss-app pour "
"vous connecter."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Lecture et abonnement à des flux d’actualités"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Lecteur de flux d'informations"
@@ -7201,22 +7268,22 @@ msgstr ""
"nécessaire, il est effectué à 2h00, rendant indisponible l’ensemble des "
"applications pour une courte période."
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Mise à jour du système"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox mise à jour"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "Impossible de lancer la mise à niveau de la distribution"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
@@ -7227,11 +7294,11 @@ msgstr ""
"sont disponibles. Si activée, la mise à niveau automatique de la "
"distribution sera retentée dans 24H."
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "Mise à niveau de la distribution démarrée"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7329,6 +7396,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Fermer"
@@ -7396,41 +7464,65 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Afficher les derniers journaux de mises à jour"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Mise à niveau de la distribution activée"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "Mise à niveau de la distribution activée"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
"Erreur lors de la configuration du système de mise à jour automatique "
"« unattended-upgrades » : {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Mises à niveau automatiques activées"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Mises à niveau automatiques désactivées"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "Mise à niveau de la distribution activée"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Mise à niveau de la distribution désactivée"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Mise à jour lancée."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "Le lancement de la mise à niveau a échoué."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Mise à jour régulière des fonctionnalités activée."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Mise à niveau de la distribution activée"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7454,15 +7546,15 @@ msgstr ""
"principale. En revanche, seuls les utilisateurs membres du groupe admin"
"em> peuvent modifier les applications ou changer les paramètres système."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Utilisateurs et groupes"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Accès à tous les services et à la configuration du système"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Vérification de l’entrée LDAP « {search_item} »"
@@ -8108,12 +8200,12 @@ msgstr ""
"la mise à jour de modules additionnels et de thèmes se fait à vos risques et "
"périls."
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "Site web et blogue"
@@ -8165,11 +8257,11 @@ msgstr ""
"l’administrateur Zoph. Pour ajouter des utilisateurs ceux-ci doivent être "
"créés à la fois sur la {box_name} et dans Zoph avec le même identifiant."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Photothèque"
@@ -8208,37 +8300,122 @@ msgstr "PPPoE"
msgid "Generic"
msgstr "Générique"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr "Erreur : {name} : {exception_message}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr "Attente du démarrage de : {name}"
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr "Terminé : {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr "Le paquet {expression} n’est pas disponible à l’installation"
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Le paquet {package_name} est à la dernière version ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Erreur pendant l’installation"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Erreur pendant la sauvegarde"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "installation en cours"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "téléchargement en cours"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "changement de support"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "fichier de configuration : {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr "Installation de l'application"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr "Mise à jour de l'application"
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr "Erreur lors de l’installation de l’application : {string} {details}"
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr "Erreur de mise à jour de l’application : {string} {details}"
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr "Erreur d’installation de l’application : {error}"
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr "Erreur d'installation de l’application : {error}"
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr "Application installée."
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr "Application mise à jour"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Installing app"
+msgid "Uninstalling app"
+msgstr "Installation de l'application"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Erreur lors de l’installation de l’application : {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Erreur d’installation de l’application : {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "App installed."
+msgid "App uninstalled."
+msgstr "Application installée."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr "Mise à jour des paquets de l'application"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Non autorisé"
@@ -8291,7 +8468,7 @@ msgstr ""
msgid "Installation"
msgstr "Installation"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Le service %(service_name)s n’est pas actif."
@@ -8544,10 +8721,8 @@ msgstr ""
"rediriger les ports suivants pour %(service_name)s :"
#: plinth/templates/port-forwarding-info.html:37
-#, fuzzy
-#| msgid "Service Type"
msgid "Service Name"
-msgstr "Type de service"
+msgstr "Nom du service"
#: plinth/templates/port-forwarding-info.html:38
msgid "Protocol"
@@ -8562,6 +8737,10 @@ msgstr "Depuis les ports routeur/Internet (WAN)"
msgid "To %(box_name)s Ports"
msgstr "Vers les ports %(box_name)s"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Application installée."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Installer cette application ?"
@@ -8572,23 +8751,15 @@ msgstr ""
"Cette application a besoin d'une mise à jour. Mettre à jour maintenant ?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Une autre installation ou mise à niveau est déjà en cours. Veuillez "
-"patienter quelques instants avant de réessayer."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
"Cette application n'est actuellement pas disponible dans votre distribution."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Vérifier à nouveau"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8598,36 +8769,104 @@ msgstr ""
"système sont incompatibles avec l’installation de cette application. Si vous "
"choisissez de continuer, les paquets suivants seront supprimés :"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Installer"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Mises à jour"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Préinstallation en cours"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Installer"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Postinstallation en cours"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Modifier l'utilisateur %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Installation de %(package_names)s : %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% effectué"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Paramètre inchangé"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#~ msgid "Network Connections"
+#~ msgstr "Connexions réseau"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Activer Tor"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "La configuration de Tor est en cours de mise à jour"
+
+#~ msgid "Error during installation"
+#~ msgstr "Erreur pendant l’installation"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "Utilise DNSSEC sur IPv{kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Une autre installation ou mise à niveau est déjà en cours. Veuillez "
+#~ "patienter quelques instants avant de réessayer."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Préinstallation en cours"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Postinstallation en cours"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Installation de %(package_names)s : %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% effectué"
+
+#~ 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 nécessite que vous y accédiez depuis un nom de domaine. Il ne "
+#~ "fonctionnera pas si vous tentez d’y accédez en utilisant une adresse IP "
+#~ "dans son URL."
+
+#~ msgid "Access"
+#~ msgstr "Accès"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "Cockpit ne fonctionnera qu’en y accédant depuis les URL suivantes."
+
+#~ msgid "WebRTC server"
+#~ msgstr "Serveur WebRTC"
+
#~ msgid "Server URL"
#~ msgstr "URL du Serveur"
@@ -9078,11 +9317,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Configuration du nom de domaine Postfix"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Une erreur est survenue pendant la configuration."
-
#~ msgid "The alias was taken"
#~ msgstr "Cet alias est déjà pris"
@@ -9650,9 +9884,6 @@ msgstr "Gujarati"
#~ msgid "Service enabled: {name}"
#~ msgstr "Service activé : {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Service désactivé : {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "Compte PageKite"
@@ -10087,9 +10318,6 @@ msgstr "Gujarati"
#~ msgid "Automatic Upgrades"
#~ msgstr "Mises à niveau automatiques"
-#~ msgid "Upgrade Packages"
-#~ msgstr "Mise à Niveau Paquets"
-
#, fuzzy
#~| msgid "Create User"
#~ msgid "Create archive"
@@ -10382,9 +10610,6 @@ msgstr "Gujarati"
#~ msgid "IP Check URL"
#~ msgstr "Résolution IP/URL"
-#~ msgid "Bridge"
-#~ msgstr "Pont"
-
#~ msgid "Enable network time"
#~ msgstr "Activer l'heure réseau"
@@ -10613,9 +10838,6 @@ msgstr "Gujarati"
#~ msgid "The operating system is up to date now. "
#~ msgstr "Le système d'exploitation est à jour. "
-#~ msgid "Show Details"
-#~ msgstr "Montrer les détails"
-
#~ msgid ""
#~ "This will run unattended-upgrades, which will attempt to upgrade your "
#~ "system with the latest Debian packages. It may take a few minutes to "
diff --git a/plinth/locale/gl/LC_MESSAGES/django.po b/plinth/locale/gl/LC_MESSAGES/django.po
index 15d52bdb6..2750f7dce 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-01-18 12:32+0000\n"
"Last-Translator: ikmaak \n"
"Language-Team: Galician any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1119,7 +1102,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr ""
@@ -1197,43 +1180,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr "Amosa aplicativos e funcións que requiren maior coñecemento técnico."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Configurar a páxina de inicio do servidor web"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1253,11 +1258,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1279,11 +1284,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1320,17 +1325,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1349,55 +1354,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1444,7 +1449,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1475,11 +1480,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1589,13 +1594,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1667,12 +1673,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1765,7 +1771,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1810,21 +1816,21 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Web Server"
msgid "Email Server"
msgstr "Servidor web"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1858,7 +1864,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -1939,7 +1945,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2076,15 +2082,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2180,27 +2186,27 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
#, fuzzy
#| msgid "Manual"
@@ -2208,28 +2214,28 @@ msgctxt "User guide"
msgid "Manual"
msgstr "Manual"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Acerca de"
@@ -2332,6 +2338,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2438,16 +2479,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2472,19 +2513,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2537,15 +2578,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2583,8 +2624,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2599,32 +2640,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2641,11 +2682,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2664,28 +2705,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Servidor web"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2697,17 +2736,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2851,7 +2890,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2883,8 +2922,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -2955,12 +2994,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3023,39 +3062,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr ""
@@ -3068,11 +3107,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3117,7 +3156,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3128,15 +3167,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3189,11 +3228,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3235,15 +3274,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3278,27 +3317,22 @@ msgstr ""
msgid "Services"
msgstr "Descubrimento de servizo"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3818,7 +3852,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3838,13 +3872,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3865,7 +3899,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3875,13 +3909,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4064,247 +4098,243 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
#, fuzzy
#| msgid "Manual"
msgid "manual"
msgstr "Manual"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4319,20 +4349,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4440,15 +4470,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4554,36 +4584,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4600,7 +4630,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4672,21 +4702,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4710,11 +4741,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4739,12 +4770,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4807,7 +4838,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4815,7 +4846,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4824,7 +4855,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4834,7 +4865,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4849,6 +4880,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4880,15 +4945,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -5012,15 +5077,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5101,7 +5166,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5166,12 +5231,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5185,11 +5250,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5219,11 +5284,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5252,14 +5317,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5307,28 +5372,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5468,7 +5533,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5516,55 +5581,55 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
#, fuzzy
#| msgid "Manual"
msgid "manually created"
msgstr "Manual"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5576,7 +5641,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5617,7 +5682,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5637,104 +5702,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5868,16 +5933,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5897,40 +5962,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -5940,37 +6005,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -5978,22 +6039,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6001,18 +6062,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6024,22 +6085,24 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
+#: plinth/modules/tor/views.py:55
+msgid "Updating configuration"
msgstr ""
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Produciuse un erro ao instalar o aplicativo: {error}"
+
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
msgstr ""
@@ -6082,7 +6145,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6107,15 +6170,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6136,35 +6195,35 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
#| msgid "FreedomBox"
msgid "FreedomBox Updated"
msgstr "FreedomBox"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6242,6 +6301,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6301,39 +6361,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6349,15 +6427,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -6924,12 +7002,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -6964,11 +7042,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7002,37 +7080,127 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Produciuse un erro ao instalar o aplicativo: {error}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Produciuse un erro ao instalar o aplicativo: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Produciuse un erro ao instalar o aplicativo: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Produciuse un erro ao instalar o aplicativo: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Produciuse un erro ao instalar o aplicativo: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Aplicativo instalado."
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Error installing application: {error}"
+msgid "Uninstalling app"
+msgstr "Produciuse un erro ao instalar o aplicativo: {error}"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Produciuse un erro ao instalar o aplicativo: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Produciuse un erro ao instalar o aplicativo: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Aplicativo instalado."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7075,7 +7243,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7320,6 +7488,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Aplicativo instalado."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7329,56 +7501,68 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr ""
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Application installed."
+msgid "Uninstall"
+msgstr "Aplicativo instalado."
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr ""
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Servidor web"
+
#, fuzzy
#~| msgid "Web Server"
#~ msgid "Server URL"
diff --git a/plinth/locale/gu/LC_MESSAGES/django.po b/plinth/locale/gu/LC_MESSAGES/django.po
index ba47563a2..b7f4a781a 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-01-18 12:32+0000\n"
"Last-Translator: ikmaak \n"
"Language-Team: Gujarati any user on {box_name} "
@@ -1148,30 +1147,16 @@ msgstr ""
"સાથે{box_name} લૉગિન દ્વારા ઍક્સેસ કરી શકાય છે. સંવેદનશીલ માહિતી અને વ્યવસ્થાપનની "
"ક્ષમતાઓ એડમિન ગ્રૂપના વપરાશકર્તાઓ માટે મર્યાદિત છે."
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "કોકપિટ"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "સર્વર સંચાલન"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1184,7 +1169,7 @@ msgstr "સામાન્ય ગોઠવણી"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "ગોઠવો"
@@ -1271,45 +1256,69 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Configuration"
+msgid "System-wide logging"
+msgstr "સિસ્ટમ રૂપરેખાંકન"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "હોસ્ટનું નામ સ્થાપિત કરતાં ભૂલ થઇ: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "હોસ્ટનું નામ સ્થાપિત કર્યું"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "ક્ષેત્રીય નામ સ્થાપિત કરતાં ભૂલ થઇ: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "ક્ષેત્રીય નામ સ્થાપિત કર્યું"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, fuzzy, python-brace-format
#| msgid "Error setting hostname: {exception}"
msgid "Error setting webserver home page: {exception}"
msgstr "હોસ્ટનું નામ સ્થાપિત કરતાં ભૂલ થઇ: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, fuzzy, python-brace-format
#| msgid "Error setting domain name: {exception}"
msgid "Error changing advanced mode: {exception}"
msgstr "ક્ષેત્રીય નામ સ્થાપિત કરતાં ભૂલ થઇ: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1329,11 +1338,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1357,11 +1366,11 @@ msgstr ""
"નેટવર્ક ટાઇમ સર્વર એ પ્રોગ્રામ છે જે સીસ્ટમનો સમય ઇન્ટરનેટ પરનાં સર્વર સાથે તાલમેલ રાખીને "
"જાળવી રાખે છે."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "તારીખ તથા સમય"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1409,17 +1418,17 @@ msgstr ""
"deluge થી ઉપલબ્ધ થશે. તેનો પહેલાથી નક્કી પાસવર્ડ 'deluge' છે, પરંતુ આ સેવા સક્રિય "
"કાર્ય બાદ તુરંત જ આપે લોગ ઇન કરી ને તેને બદલી નાખવો જોઈએ."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "BitTorrent કાર્યક્રમોનો ઉપયોગ કરીને ફાઇલો ડાઉનલોડ કરો"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "અનરાધાર"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "બીટ ટોરેન્ટ વેબ ક્લાયન્ટ"
@@ -1440,55 +1449,55 @@ msgstr ""
"આપની સીસ્ટમ પર અમુક પરીક્ષણો કરશે."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "તપાસ"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1537,7 +1546,7 @@ msgstr "પરીક્ષણ"
msgid "Result"
msgstr "પરિણામ"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "તપાસકીય પરિક્ષણ"
@@ -1588,11 +1597,11 @@ msgstr ""
"net અથવા તમે મફત અપડેટ URL આધારિત સેવાઓને અહીંથી શોધી શકો છો freedns.afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "ડાયનેમિક DNS ક્લાયન્ટ"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
#, fuzzy
#| msgid "Domain Name"
msgid "Dynamic Domain Name"
@@ -1723,13 +1732,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1819,12 +1829,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ઈઝબેબર્ડ"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "ચેટ સર્વર"
@@ -1933,7 +1943,7 @@ msgstr "ડિનો"
msgid "Gajim"
msgstr "ગજિમ"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1981,23 +1991,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Chat Server"
msgid "Email Server"
msgstr "ચેટ સર્વર"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Documentation"
msgid "My Email Aliases"
msgstr "દસ્તાવેજીકરણ"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Documentation"
msgid "Manage Aliases for Mailbox"
@@ -2035,7 +2045,7 @@ msgstr ""
msgid "Aliases"
msgstr "દસ્તાવેજીકરણ"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -2123,7 +2133,7 @@ msgstr ""
"છે {box_name}. ફાયરવૉલ સક્ષમ અને યોગ્ય રીતે રૂપરેખાંકિત રાખીને ઇન્ટરનેટથી સુરક્ષાના ભયને "
"ઘટાડે છે."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "ફાયરવોલ"
@@ -2268,15 +2278,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2386,29 +2396,29 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
#, fuzzy
#| msgid "Documentation"
msgid "Edit repository"
msgstr "દસ્તાવેજીકરણ"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "દસ્તાવેજીકરણ"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
#, fuzzy
#| msgid "Manual"
@@ -2416,28 +2426,28 @@ msgctxt "User guide"
msgid "Manual"
msgstr "માર્ગદર્શિકા"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "વિશે"
@@ -2540,6 +2550,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2648,16 +2693,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2682,21 +2727,21 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
#, fuzzy
#| msgid "Enable application"
msgid "Manage I2P application"
msgstr "એપ્લીકેશનને પ્રસ્થાપિત કરો"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2749,15 +2794,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2795,8 +2840,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "સેટઅપ અપડેટ કરો"
@@ -2811,32 +2856,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2853,11 +2898,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2876,25 +2921,25 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
msgstr ""
#: plinth/modules/janus/manifest.py:7
@@ -2907,17 +2952,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -3061,7 +3106,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -3095,8 +3140,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "રૂપરેખાંકન"
@@ -3167,12 +3212,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3239,51 +3284,51 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
#, fuzzy
#| msgid "Application installed."
msgid "Public registrations enabled"
msgstr "એપ્લીકેશન પ્રસ્થાપિત થઇ ગઈ છે."
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
#, fuzzy
#| msgid "Application installed."
msgid "Public registrations disabled"
msgstr "એપ્લીકેશન પ્રસ્થાપિત થઇ ગઈ છે."
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
#, fuzzy
#| msgid "Application enabled"
msgid "Private mode enabled"
msgstr "એપ્લિકેશન સક્ષમ કરો"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
#, fuzzy
#| msgid "Application disabled"
msgid "Private mode disabled"
msgstr "એપ્લિકેશન અક્ષમ છે"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
#, fuzzy
#| msgid "Setting unchanged"
msgid "Default skin changed"
msgstr "સેટિંગ યથાવત"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "ક્ષેત્રીય નામ સ્થાપિત કર્યું"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3298,11 +3343,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3347,7 +3392,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3358,15 +3403,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3419,11 +3464,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3467,17 +3512,17 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Password"
msgid "Join password changed"
msgstr "પાસવર્ડ"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3512,27 +3557,22 @@ msgstr ""
msgid "Services"
msgstr "સેવા પ્રકાર"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -4055,7 +4095,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -4075,13 +4115,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -4102,7 +4142,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -4114,13 +4154,13 @@ msgstr "વાતચીત"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4306,257 +4346,253 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
#, fuzzy
#| msgid "Disabled"
msgid "disabled"
msgstr "અક્ષમ કરેલું"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
#, fuzzy
#| msgid "Manual"
msgid "manual"
msgstr "માર્ગદર્શિકા"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
#, fuzzy
#| msgid "Conversations"
msgid "connecting"
msgstr "વાતચીત"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
#, fuzzy
#| msgid "Use HTTP basic authentication"
msgid "needs authentication"
msgstr "HTTP મૂળભૂત પ્રમાણીકરણનો ઉપયોગ કરો"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
#, fuzzy
#| msgid "Configuration updated"
msgid "configuration failed"
msgstr "રૂપરેખાંકન સુધારાયુ"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
#, fuzzy
#| msgid "DNS server configuration updated"
msgid "shared connection service failed"
msgstr "DNS સર્વર ગોઠવણી સુધરી"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4571,22 +4607,22 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
#, fuzzy
#| msgid "Conversations"
msgid "Connect to VPN services"
msgstr "વાતચીત"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4694,15 +4730,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4808,36 +4844,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4854,7 +4890,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
#, fuzzy
#| msgid "System Configuration"
msgid "System Monitoring"
@@ -4928,21 +4964,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4966,11 +5003,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4995,12 +5032,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -5063,7 +5100,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5071,7 +5108,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5080,7 +5117,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5090,7 +5127,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -5105,6 +5142,44 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"સક્ષમ કરેલ હોય ત્યારે, કોકપિટ અહીંથી ઉપલબ્ધ રહેશે /_cockpit/"
+"a> વેબ સર્વર પાથ પર. તે કોઈપણ વપરાશકર્તા "
+"સાથે{box_name} લૉગિન દ્વારા ઍક્સેસ કરી શકાય છે. સંવેદનશીલ માહિતી અને વ્યવસ્થાપનની "
+"ક્ષમતાઓ એડમિન ગ્રૂપના વપરાશકર્તાઓ માટે મર્યાદિત છે."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5136,15 +5211,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -5270,15 +5345,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5359,7 +5434,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5424,12 +5499,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5443,11 +5518,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5477,11 +5552,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5510,14 +5585,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5565,28 +5640,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5726,7 +5801,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5774,56 +5849,56 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
#, fuzzy
#| msgid "Last update"
msgid "manually created"
msgstr "છેલ્લો સુધારો"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
#, fuzzy
msgid "Storage snapshots configuration updated"
msgstr "DNSSEC ગોઠવણીને સુધારેલી શરુ કરો"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5835,7 +5910,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5880,7 +5955,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5900,104 +5975,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6133,16 +6208,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6162,40 +6237,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6205,37 +6280,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6243,22 +6314,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6266,18 +6337,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6289,23 +6360,27 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
#, fuzzy
#| msgid "Dynamic DNS Service"
msgid "Onion Service"
msgstr "ડાયનેમિક DNS સેવા"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "સેટિંગ યથાવત"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "General Configuration"
+msgid "Updating configuration"
+msgstr "સામાન્ય ગોઠવણી"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "એપ્લીકેશન પ્રસ્થાપિત કરતાં ભૂલ થઇ છે: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6353,7 +6428,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6382,15 +6457,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6411,37 +6482,37 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
#| msgid "FreedomBox"
msgid "FreedomBox Updated"
msgstr "ફ્રિડમબોક્ષ"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
#, fuzzy
#| msgid "User registrations disabled"
msgid "Distribution update started"
msgstr "વપરાશકર્તા રજીસ્ટ્રેશન અક્ષમ છે"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6523,6 +6594,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6584,41 +6656,65 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "User registrations disabled"
+msgid "Test Distribution Upgrade"
+msgstr "વપરાશકર્તા રજીસ્ટ્રેશન અક્ષમ છે"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "User registrations disabled"
+msgid "Test distribution upgrade now"
+msgstr "વપરાશકર્તા રજીસ્ટ્રેશન અક્ષમ છે"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
#, fuzzy
#| msgid "User registrations disabled"
msgid "Distribution upgrade disabled"
msgstr "વપરાશકર્તા રજીસ્ટ્રેશન અક્ષમ છે"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "User registrations disabled"
+msgid "Starting distribution upgrade test."
+msgstr "વપરાશકર્તા રજીસ્ટ્રેશન અક્ષમ છે"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6634,15 +6730,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -7235,12 +7331,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -7275,11 +7371,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7315,37 +7411,131 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "હોસ્ટનું નામ સ્થાપિત કરતાં ભૂલ થઇ: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "એપ્લિકેશન્સ ઇન્સ્ટોલ કરો"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "એપ્લીકેશન પ્રસ્થાપિત કરતાં ભૂલ થઇ છે: {string}{details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "એપ્લીકેશન પ્રસ્થાપિત કરતાં ભૂલ થઇ છે: {string}{details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "એપ્લીકેશન પ્રસ્થાપિત કરતાં ભૂલ થઇ છે: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "એપ્લીકેશન પ્રસ્થાપિત કરતાં ભૂલ થઇ છે: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "એપ્લીકેશન પ્રસ્થાપિત થઇ ગઈ છે."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "છેલ્લો સુધારો"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "એપ્લિકેશન્સ ઇન્સ્ટોલ કરો"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "એપ્લીકેશન પ્રસ્થાપિત કરતાં ભૂલ થઇ છે: {string}{details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "એપ્લીકેશન પ્રસ્થાપિત કરતાં ભૂલ થઇ છે: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "એપ્લીકેશન પ્રસ્થાપિત થઇ ગઈ છે."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7388,7 +7578,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7648,6 +7838,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "એપ્લીકેશન પ્રસ્થાપિત થઇ ગઈ છે."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7657,50 +7851,57 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr ""
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Application installed."
+msgid "Uninstall"
+msgstr "એપ્લીકેશન પ્રસ્થાપિત થઇ ગઈ છે."
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "સેટિંગ યથાવત"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
@@ -7863,11 +8064,6 @@ msgstr ""
#~ msgid "Postfix domain name config"
#~ msgstr "ક્ષેત્રીય નામ સ્થાપિત કરતાં ભૂલ થઇ: {exception}"
-#, fuzzy
-#~| msgid "General Configuration"
-#~ msgid "Error updating configuration"
-#~ msgstr "સામાન્ય ગોઠવણી"
-
#, fuzzy
#~| msgid "Disabled"
#~ msgid "Disable selected"
diff --git a/plinth/locale/hi/LC_MESSAGES/django.po b/plinth/locale/hi/LC_MESSAGES/django.po
index b33b526d4..32dd2040e 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-01-18 12:32+0000\n"
"Last-Translator: ikmaak \n"
"Language-Team: Hindi /"
@@ -1223,32 +1222,16 @@ msgstr ""
"माैजूद होते है. यह कोई से एक {box_name} के सात पहुंच "
"सकते हैं. निजी जानकारी आैर सिस्टम बदलने का योग्यता सिर्फ व्यवस्थापक लोग के पास है."
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "कॉकपिट"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "सर्वर एडमिनिस्ट्रेशन"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-#, fuzzy
-#| msgid "Access Point"
-msgid "Access"
-msgstr "अभिगम केंद्र"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1261,7 +1244,7 @@ msgstr "सामान्य कॉन्फ़िगरेशन"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "कॉन्फ़िगर करें"
@@ -1362,45 +1345,67 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "{exception}: होस्ट नाम सेट करने में एरर"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "होस्ट नाम सेट हो गया"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "{exception}: डोमेन नाम सेट करने में एरर"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "डोमेन नाम सेट हो गया है"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, fuzzy, python-brace-format
#| msgid "Error setting hostname: {exception}"
msgid "Error setting webserver home page: {exception}"
msgstr "{exception}: होस्ट नाम सेट करने में एरर"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, fuzzy, python-brace-format
#| msgid "Error setting domain name: {exception}"
msgid "Error changing advanced mode: {exception}"
msgstr "{exception}: डोमेन नाम सेट करने में एरर"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1420,11 +1425,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1449,11 +1454,11 @@ msgid ""
msgstr ""
"नेटवर्क समय सर्वर एक प्रोग्रम है कि सिस्टम समय इंटरनेट सर्वरसॅ के सात में बनाए रखता है."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "तारीख और समय"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1500,17 +1505,17 @@ msgstr ""
"डिफ़ॉल्ट पासवर्ड 'डेलूज' है लेकिन आप डेलूज से सक्षम करके आपको लॉग ऑन करना चाहिये आैर इसको "
"बदलना चाहिये."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "बिटटोरेंट एप्लिकेशन उपयोग कर फ़ाइल डाउनलोड करें"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "डेलूज"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "बिटटोरेंट वेब ग्राहक"
@@ -1531,59 +1536,59 @@ msgstr ""
"चेकों करोगे."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "निदानिकी"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
#, fuzzy
#| msgid "Quassel"
msgid "passed"
msgstr "क्वासेल"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
#, fuzzy
#| msgid "Setup failed."
msgid "failed"
msgstr "सेटअप विफल."
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1632,7 +1637,7 @@ msgstr "परीक्षा"
msgid "Result"
msgstr "परिणाम"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "निदान परिक्षा"
@@ -1683,11 +1688,11 @@ msgstr ""
"यहाँ मिलें freedns.afraid."
"org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "डायनेमिक डिएनएस ग्राहक"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
#, fuzzy
#| msgid "Domain Name"
msgid "Dynamic Domain Name"
@@ -1819,13 +1824,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1922,12 +1928,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "एजाबेरड"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "चाट सर्वर"
@@ -2032,7 +2038,7 @@ msgstr "डिनो"
msgid "Gajim"
msgstr "गाजिम"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2080,23 +2086,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Chat Server"
msgid "Email Server"
msgstr "चाट सर्वर"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Create User"
msgid "My Email Aliases"
msgstr "यूसर बनाये"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Create User"
msgid "Manage Aliases for Mailbox"
@@ -2136,7 +2142,7 @@ msgstr ""
msgid "Aliases"
msgstr "यूसर बनाये"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "राउंडक्यूब"
@@ -2228,7 +2234,7 @@ msgstr ""
"को नियंत्रित करता है. फ़ायरवॉल सक्षम और ठीक से कॉंफ़िगर रखते हुए इंटरनेट से सुरक्षा खतरे का "
"जोखिम कम कर देता है."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "फ़ायरवॉल"
@@ -2380,15 +2386,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2513,31 +2519,31 @@ msgstr "विकी और ब्लॉग हटाईये %(name)sसंपादितकर सकते है. वह युज़र कॉन्फ़िगरेशन पर "
"आपको यह अनुमति बदल सकता और नया युज़रसॅ को जोडं सकता है."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "इकिविकि"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "विकि और ब्लॉग"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "विकी एप्लिकेशन को देखें और संपादित करें"
@@ -2982,8 +3023,8 @@ msgstr "साइट हटाएं %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "सेटअप अपडेट"
@@ -3000,33 +3041,33 @@ msgstr ""
"यह कार्य सब पोस्ट, पेज और टिप्पणियां निकाल देगी, संशोधन इतिहास भी. यह ब्लॉग और विकी "
"हमेशा से हटा करें?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "विकी बनाया है {name}."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "विकी नहीं बना सकता है:{error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "ब्लॉग बनाया है {name}."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "ब्लॉग नहीं बना सकता है: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, fuzzy, python-brace-format
#| msgid "{name} deleted."
msgid "{title} deleted."
msgstr "{name} हटा गया है."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, fuzzy, python-brace-format
#| msgid "Could not delete {name}: {error}"
msgid "Could not delete {title}: {error}"
@@ -3047,11 +3088,11 @@ msgstr ""
"डाउनलोड और इंस्टॉल करें. फिर गोबी शुरु करें, \"सर्वर से कनेक्ट\" चुनें और {box_name} "
"कर डोमेन नाम दर्ज करें."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "इन्फिनोटेड़"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "गोबी सर्वर"
@@ -3070,28 +3111,26 @@ msgid ""
"domain name."
msgstr "गोबी शुरू करें और \"सर्वर से कनेक्ट\" चुनिये और {box_name} का डोमेन नाम दर्ज करें."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "वेब सर्वर"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3103,7 +3142,7 @@ msgstr ""
msgid "JavaScript license information"
msgstr "जावास्क्रिप्ट लाइसेंस जानकारी"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3111,11 +3150,11 @@ msgstr ""
"जेएसएक्ससि, एक्सएमपिपि को एक वेब क्लाइंट है. अाम तौर पर यह एक्सएमपिपि के सात उपयोग "
"किया जाता है."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "जेएसएक्ससि"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "चैट क्लाइंट"
@@ -3279,7 +3318,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "मैट्रिक्स सिनापसॅ"
@@ -3314,8 +3353,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "कॉन्फ़िगरेशन"
@@ -3408,12 +3447,12 @@ msgstr ""
"किसी के साथ लिंक है, वह इस विकी पढ़ सकते हैं. सिर्फ लॉगइन किए गए यूसरसॅ ही सामग्री में "
"परिवर्तन कर सकते हैं."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "मीडियाविकी"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "विकी"
@@ -3486,46 +3525,46 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "पासवर्ड अपडेट"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
#, fuzzy
#| msgid "Password used to encrypt data. Must match server password."
msgid "Password update failed. Please choose a stronger password"
msgstr ""
"डेटा एंक्रिप्ट करने के लिए पासवर्ड उपयोग किया गया . सर्वर पासवर्ड से मेल खाना चाहिए."
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "सार्वजनिक रेगीसट्रेशिन सक्षम किया"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "सार्वजनिक रेगीसट्रेशिन अक्षम किया"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "निजी मोड सक्षम किया"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "निजी मोड सक्षम किया"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
#, fuzzy
#| msgid "Setting unchanged"
msgid "Default skin changed"
msgstr "सेटिंग स्थिर है"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "डोमेन नाम सेट हो गया है"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3543,11 +3582,11 @@ msgstr ""
"{box_name} पर चल सकवाते है, डिफ़ॉल्ट पोर्ट (३००००) पर. सर्वर से कनेक्ट करने के लिए, एक "
"मैइनटेस्ट क्लायंटकी आवश्यकता है."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "मैइनटेस्ट"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "ब्लॉक सेंडबोक्स"
@@ -3594,7 +3633,7 @@ msgstr "अक्षम होने पर खिलाड़ियों न
msgid "Address"
msgstr "ऍड्रेस"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3605,15 +3644,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3674,11 +3713,11 @@ msgstr ""
"mumble.info\">Clients अापके डेस्कटॉप और एंड्रॉयड डिवाइस से ममबल से कनेक्ट होने के "
"लिए उपलब्ध हैं."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "ममबल"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "वॉयस चैट"
@@ -3728,19 +3767,19 @@ msgstr "ममबलफ्लाई"
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
#, fuzzy
#| msgid "Password changed successfully."
msgid "SuperUser password successfully updated."
msgstr "पासवर्ड सफलतापूर्वक बदल गया."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Upload password updated"
msgid "Join password changed"
msgstr "अपलोड पासवर्ड अद्यतन किया गया"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3775,27 +3814,22 @@ msgstr "सुरक्षित शेल"
msgid "Services"
msgstr "सर्विस"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "नेटवर्क्स"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "DNSSEC आईपीवी पर उपयोग कर रहा है{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "कनेक्शन टाइप"
@@ -4344,7 +4378,7 @@ msgid "Create Connection"
msgstr "कनेक्शन बनाएँ"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "कनेक्शन हटाएँ"
@@ -4364,13 +4398,13 @@ msgstr "स्पेसिंग"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "इथरनेट"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "वाई-फ़ाई"
@@ -4391,7 +4425,7 @@ msgid "Computer"
msgstr "कंप्यूटर"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "कनेक्शन संपादित करें"
@@ -4403,13 +4437,13 @@ msgstr "कनेक्शन"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "पास के वाई-फाई नेटवर्क"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "कनेक्शन जोड़ें"
@@ -4598,299 +4632,295 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
#, fuzzy
#| msgid "Disabled"
msgid "disabled"
msgstr "अक्षम किया गया है"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
#, fuzzy
#| msgid "Automatic"
msgid "automatic"
msgstr "ऑटोमैटिक"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
#, fuzzy
#| msgid "Manual"
msgid "manual"
msgstr "मैन्युअल"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
#, fuzzy
#| msgid "Shared"
msgid "shared"
msgstr "साझा किया गया"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
#, fuzzy
#| msgid "Manage"
msgid "unmanaged"
msgstr "प्रबंध"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
#, fuzzy
#| msgid "Available Domains"
msgid "unavailable"
msgstr "उपलब्ध वाले डोमेन्स"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
#, fuzzy
#| msgid "cable is connected"
msgid "disconnected"
msgstr "केबल कनेक्ट हो गया"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
#, fuzzy
#| msgid "Sharing"
msgid "preparing"
msgstr "शेयरिंग"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
#, fuzzy
#| msgid "Connection"
msgid "connecting"
msgstr "कनेक्शन"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
#, fuzzy
#| msgid "Use HTTP basic authentication"
msgid "needs authentication"
msgstr "एचटिटिपि बेसिकॅ प्रमाणीकरण उपयोग करें"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
#, fuzzy
#| msgid "Deactivate"
msgid "activated"
msgstr "निष्क्रिय"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
#, fuzzy
#| msgid "Deactivate"
msgid "deactivating"
msgstr "निष्क्रिय"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
#, fuzzy
#| msgid "State reason"
msgid "no reason"
msgstr "कारण कहो"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
#, fuzzy
#| msgid "The device is not mounted."
msgid "device is now managed"
msgstr "यह डिवाइस नहीं माउंट किया गया."
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
#, fuzzy
#| msgid "The device is not mounted."
msgid "device is now unmanaged"
msgstr "यह डिवाइस नहीं माउंट किया गया."
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
#, fuzzy
#| msgid "configuration file: {file}"
msgid "configuration failed"
msgstr "कॉंफ़िगरेशन फ़ाइल: {file}"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
#, fuzzy
#| msgid "Archive deleted."
msgid "DHCP client failed"
msgstr "पुरालेख हटा गया है."
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
#, fuzzy
#| msgid "The operation failed."
msgid "shared connection service failed"
msgstr "ऑपरेशन अनुत्तीर्ण हो गया."
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
#, fuzzy
#| msgid "The device is already mounted."
msgid "device was removed"
msgstr "यह डिवाइस पहले से माउंट किया गया."
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
#, fuzzy
#| msgid "The device is mounted by another user."
msgid "device disconnected by user"
msgstr "किसी और यूसर ने डिवाइस माउंट किया गया है."
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
#, fuzzy
#| msgid "The operation failed."
msgid "a secondary connection failed"
msgstr "ऑपरेशन अनुत्तीर्ण हो गया."
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
#, fuzzy
#| msgid "Generic"
msgid "generic"
msgstr "जेनेरिक"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
#, fuzzy
#| msgid "Interface"
msgid "TUN or TAP interface"
msgstr "इंटरफ़ेस"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
#, fuzzy
#| msgid "Ad-hoc"
msgid "ad-hoc"
msgstr "एड-हॉक"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
#, fuzzy
#| msgid "Infrastructure"
msgid "infrastructure"
msgstr "इंफ्रास्ट्रक्चर"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
#, fuzzy
#| msgid "Access Point"
msgid "access point"
msgstr "अभिगम केंद्र"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
#, fuzzy
#| msgid "Access Point"
msgid "mesh point"
msgstr "अभिगम केंद्र"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "नेटवर्क कनेक्शन्स"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "कनेक्शन नहीं दिखा सकता: कनेक्शन से नहीं मिला."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "कनेक्शन के बारे में जानकारी"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "कनेक्शन नहीं संपादित कर सकता: कनेक्शन से नहीं मिला."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "इस प्रकार का कनेक्शन अभी समझ में नहीं आता."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "कनेक्शन सक्रिय है {name}."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "कनेक्शन सक्रिय करने में विफल: कनेक्शन नहीं मिला."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr "कनेक्शन सक्रिय करने में विफल {name}: कोई उपयुक्त डिवाइस उपलब्ध नहीं है."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "निष्क्रिय कनेक्शन {name}."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "कनेक्शन को निष्क्रिय करने में विफल: कनेक्शन नहीं मिला."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "नया जेनेरिक कनेक्शन जोड़ रहा है"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "नया ईथरनेट कनेक्शन जोड़ रहा है"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "नया PPPoE कनेक्शन जोड़ रहा है"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "नया वाई-फाई कनेक्शन जोड़ रहा है"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "कनेक्शन {name} हटाया गया."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "कनेक्शन हटाने में विफल: कनेक्शन नहीं मिला."
@@ -4910,22 +4940,22 @@ msgstr ""
"आंतरिक सर्विसस उपयोग करने के लिये. आप बाकी सब इंटरनेट {box_name} के जरिए उपयोग कर "
"सकते हैं अगर अापको और सुरक्षा और गुमनामी चाहिये."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
#, fuzzy
#| msgid "Connection Type"
msgid "Connect to VPN services"
msgstr "कनेक्शन टाइप"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "ओपन वीपीएन"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "वर्चुअल प्राइवेट नेटवर्क"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5065,15 +5095,15 @@ msgstr ""
"pagekite.net. भविष्य में अापका दोस्त का "
"{box_name} इसके लिये उपयोग कर सकते हैं."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "पेजकइट"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "सार्वजनिक विसिबिलिटी"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
#, fuzzy
#| msgid "PageKite Account"
msgid "PageKite Domain"
@@ -5197,29 +5227,29 @@ msgstr ""
"पोर्ट संयोजन का समर्थन नहीं कर सकते है. उदाहरण के लिए, ४४३ के अलावा पोर्ट पर HTTPS "
"समस्याओं का कारण बनता है."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "वेब सर्वर (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "साइट http://{0} पर उपलब्ध होगा"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "वेब सर्वर (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "साइटhttps://{0}पर उपलब्ध होगा"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "सुरक्षित शैल (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5228,7 +5258,7 @@ msgstr ""
"\">instructions"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -5245,7 +5275,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -5328,12 +5358,19 @@ msgstr ""
"और एड या दुसरा इंटरनेट का जंक हटाने के लिए. "
#: plinth/modules/privoxy/__init__.py:28
-#, python-brace-format
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "You can use Privoxy by modifying your browser proxy settings to your "
+#| "{box_name} hostname (or IP address) with port 8118. While using Privoxy, "
+#| "you can see its configuration details and documentation at http://config.privoxy.org/ or http://p.p."
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"आप पोर्ट ८११८ के साथ अपने {box_name} होस्ट नाम (या IP एड्रेस) में अपनी ब्राउज़र "
@@ -5341,15 +5378,15 @@ msgstr ""
"कॉन्फ़िगरेशन विवरण और प्रलेखन यहां देख सकते हैं http://config.privoxy.org/ या http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "प्रिवोक्सी"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "वेब प्रॉक्सी"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "{url} ऐकसेस करें प्रॉक्सी लेकर {proxy} टीसीपी पर{kind}"
@@ -5382,11 +5419,11 @@ msgstr ""
"quasseldroid.iskrembilen.com/\"> मोबाइल से कनेक्ट होने के लिए क्लाइंट्स उपलब्ध "
"हैं."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "क्वासेल"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "आईआरसी क्लाइंट"
@@ -5420,12 +5457,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "राडिकैल"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "कैलेंडर और पता पुस्तिका"
@@ -5511,7 +5548,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "ऐकसेस अधिकार कॉंफ़िगरेशन अपडेट किया गया"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5522,7 +5559,7 @@ msgstr ""
"साथ. यह पूरा कार्यक्षमता देता है, सहित MIME समर्थन, पता पुस्तिका, फ़ोल्डर हेरफेर, संदेश "
"खोज और स्पेल जाँच."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
#, fuzzy
#| msgid ""
#| "You can access Roundcube from /roundcube. "
@@ -5543,7 +5580,7 @@ msgstr ""
"SSL पर IMAP के लिए (अनुशंसित), imaps://imap.example.com जैसे सर्वर "
"फ़ील्ड भरें."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5558,7 +5595,7 @@ msgstr ""
"security/lesssecureapps\">https://www.google.com/settings/security/"
"lesssecureapps)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "ईमेल क्लाइंट"
@@ -5573,6 +5610,47 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Tiny Tiny RSS will be available from /"
+#| "tt-rss path on the web server. It can be accessed by any user with a {box_name} login."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"सक्षम होने से, टैनी टैनी आरएसएस /tt-rss पात वेब सर्वर से "
+"माैजूद होते है. यह किसी एक {box_name} के सात लॉग इन "
+"कर सकता है."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "समाचार फ़ीड्स पढ़ें और सब्सक्राइब करें"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5604,15 +5682,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
#, fuzzy
#| msgid "Distributed File Storage"
msgid "Network File Storage"
@@ -5764,15 +5842,15 @@ msgstr ""
"सिरएक्स खोज इंजन द्वारा ट्रैकिंग और प्रोफाइलिंग से बचने के लिए इस्तेमाल किया जा सकता है. "
"यह डिफ़ॉल्ट से कोई कुकीज़ स्टोर नहीं करता है."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "वेब सरच किजिये"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "सिरएक्स"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "वेब खोज"
@@ -5859,7 +5937,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
#, fuzzy
#| msgid "Security"
msgid "Security Report"
@@ -5938,12 +6016,12 @@ msgstr "कोई नहीं"
msgid "Not running"
msgstr "टोर चल रहा है"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "त्रुटि सेटिंग एक्सेस प्रतिबंधित: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "सुरक्षा कॉंफ़िगरेशन अपडेट किया गया"
@@ -5965,11 +6043,11 @@ msgstr ""
"होगा. नोट करिये शारली सिर्फ एकल यूसर अकाउंट का समर्थन करता है जो आपको प्रारंभिक "
"यात्रा पर सेटअप करने की जरुरत होगा."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "शारली"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "बुकमार्क्स"
@@ -6008,11 +6086,11 @@ msgstr ""
"सेटअप के बाद शैडोवॉक्स का उपयोग करने के लिए,अपने डिवाइस, ब्राउज़र या एप्लिकेशन में सॉक्स5 "
"प्रॉक्सी यूआरएल पर सेट करें http://freedombox_address:1080/"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "शाडोसोक्स"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "सोक्स5 प्रॉक्सी"
@@ -6042,7 +6120,7 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr "एंक्रिप्शन मेथोड. सर्वर सेटिंग पर मेल खाना चाहिए."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6051,7 +6129,7 @@ msgstr ""
"शेयरिंग आपको अपने {box_name} पर फ़ाइलों और फ़ोल्डरों चुना गया यूसरस के साथ वेब पर साझा "
"करने की अनुमति देता है."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "शेयरिंग"
@@ -6109,28 +6187,28 @@ msgstr "इस नाम का एक शयर पहले से मौज
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "शेयर जोड़ें"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "वर्तमान में कोई शेयर कॉन्फ़िगर नहीं किया गया है."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "डिस्क पाथ"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "शेयरड अोवर"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "समूहों के साथ"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -6285,7 +6363,7 @@ msgstr "तिथि"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "स्नैपशॉटस हटाएँ"
@@ -6335,57 +6413,57 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "स्नैपशॉट से रोलबैक करें #%(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
#, fuzzy
#| msgid "Archive created."
msgid "manually created"
msgstr "पुरालेख बनाया गया."
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "स्नैपशॉटस प्रबंधित करें"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "स्नैपशॉट बनाया गया है."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "स्टोरेज स्नैपशॉट कॉंफ़िगरेशन अपडेट किया गया"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "क्रिया त्रुटि: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
#, fuzzy
#| msgid "Delete all the snapshots"
msgid "Deleted selected snapshots"
msgstr "सब स्नैपशॉटस हटाएँ"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "स्नैपशॉट #{number} पर वापस रोलबाक होगा."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "रोलबैक शुरु करने के लिए सिस्टम रीस्टार्ट करने का ज़रुरत है."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "स्नैपशॉट को रोलबैक करें"
@@ -6400,7 +6478,7 @@ msgstr ""
"स्वीकार करने के लिये. एक अधिकार दिया गया रिमोट कंप्यूटर प्रशासन कार्य निष्पादित कर "
"सकता है, फ़ाइलों की कॉपी कर सकता है या ऐसे कनेक्शंस का उपयोग करके अंय सर्विसस चलाएे."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "सुरक्षित शैल (SSH) सर्वर"
@@ -6447,7 +6525,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "एकल साइन-ऑन"
@@ -6469,91 +6547,91 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "स्टोरेज"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} बाइट्स"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} किब"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} मेब"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} जिब"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} टीब"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "ऑपरेशन अनुत्तीर्ण हो गया."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "ऑपरेशन रद्द किया गया."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "यह डिवाइस पहले से अनमाउट किया जा रहा है."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr "यह ऑपरेशन अनुपलब्ध है क्यैकि ड्राइवर/उपकरण टूल समर्थित नहीं है."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "ऑपरेशन टाइम आउट हो गया."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr "यह ऑपरेशन गहरी नींद की स्थिति का डिस्क को जाग जाएगा."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "व्यस्त डिवाइस को अनमाउंट करने का प्रयास कर रहा है."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "ऑपरेशन पहले से रद्द किया गया."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "अनुरोधित ऑपरेशन करने के लिए अधिकृत नहीं है."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "यह डिवाइस पहले से माउंट किया गया."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "यह डिवाइस नहीं माउंट किया गया."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "अनुरोधित विकल्प का उपयोग करने की अनुमति नहीं है."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "किसी और यूसर ने डिवाइस माउंट किया गया है."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, fuzzy, no-python-format, python-brace-format
#| msgid ""
#| "Warning: Low space on system partition ({percent_used}% used, "
@@ -6563,15 +6641,15 @@ msgstr ""
"वार्निंग: सिस्टम पार्टीशन पर कम जगह ({percent_used}% उपयोग किया गया, "
"{free_space} free)."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6737,16 +6815,16 @@ msgstr ""
"सेट एक फ़ोल्डर्स का एक अलग सेट का उपयोग करके सिंक्रनाइज़ किया जा सकता है. {box_name} "
"पर वेब इंटरफेस सिर्फ \"एडमिन\" समूह के यूसकस के लिए उपलब्ध है."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "सिंकतिन्ग एप्लिकेशन का प्रशासन करें"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "सिंकतिन्ग"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "फ़ाइल सिंक्रनाइज़ेशन"
@@ -6771,42 +6849,42 @@ msgid ""
"TCP port 9050."
msgstr "एक टोर सॉक्स पोर्ट आपका %(box_name)s र उपलब्ध है, TCP पोर्ट ९०५० पर."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "टोर"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
#, fuzzy
#| msgid "Tor Hidden Service"
msgid "Tor Onion Service"
msgstr "टोर हिडन सर्विस"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "टोर सोक्स प्रॉक्सी"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "टो ब्रिज रीले"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "टोर रीले पोर्ट उपलब्ध है"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3 ट्रांसपोर्ट पंजीकृत"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4 ट्रांसपोर्ट पंजीकृत"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "यूआरएल एक्सेस करें {url} टीसीपी पर {kind} टोर के माध्यम से"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "टोर उपयोग की पुष्टि करें {url} पर टीसीपी पर {kind}"
@@ -6817,15 +6895,11 @@ msgid ""
msgstr ""
"इस फार्मेट उपयोग कर एक वैध ब्रिज दर्ज करें: [transport] IP:ORPort [fingerprint]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "टोर सक्षम करें"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "अपस्ट्रीम ब्रिजस उपयोग करके टो नेटवर्क से कनेक्ट करें"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6835,11 +6909,11 @@ msgstr ""
"करेगा. अगर आपका इंटरनेट सर्विस प्रदाता (ISP) टोर नेटवर्क से कनेक्शन सेंसर या ब्लॉक करता है "
"इस विकल्प का उपयोग करें. यह रिले मोड को अक्षम कर देगा."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "अपस्ट्रीम ब्रिजस"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6849,11 +6923,11 @@ msgstr ""
"\">https://bridges.torproject.org/ और ब्रिज जानकारी यहाॅं से कॉपी/पेस्ट कर सकते "
"हैं. वर्तमान में समर्थित ट्रांसपोर्ट्स कोई नहीं, obfs3, obfs4 और scamblesuit हैं."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "टोर रीले सक्षम करें"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6864,11 +6938,11 @@ msgstr ""
"अगर आपके पास दो से अधिक मेगाबिट से अपलोड \n"
"आैर डाउनलोड बैंडविड्थ है यह करें."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "टोर ब्रिज रीले सक्षम करें"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6878,13 +6952,13 @@ msgstr ""
"और इस नोड सेंसर करने के लिए और मुश्किल होगा. यह दूसरों को सेंसरशिप से टाल करने के लिये मदद "
"करता है."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Hidden Service"
msgstr "टोर हिडन सर्विस सक्षम करें"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, fuzzy, python-brace-format
#| msgid ""
#| "A hidden service will allow {box_name} to provide selected services (such "
@@ -6898,11 +6972,11 @@ msgstr ""
"हिडन सर्विस {box_name} को इसके स्थान को प्रकट किए बिना चयनित सर्विसस प्रदान करने की "
"अनुमति देगी. स्ट्रॉन्ग गुमनामी के लिए इससे अभी न करें."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "टो पर सॉफ्टवेयर पैकेजस डाउनलोड करें"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6911,7 +6985,7 @@ msgstr ""
"सक्षम होने पर सॉफ्टवेयर इंस्टालेशन और अपग्रेड के लिए टो नेटवर्क पर डाउनलोड किया जाएगा. "
"यह सॉफ़्टवेयर डाउनलोड के दौरान एकांत और सुरक्षा जोड़ता है."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "अपस्ट्रीम ब्रिजस उपयोग करने के लिए एक अपस्ट्रीम ब्रिजस निर्दिष्ट करें."
@@ -6923,23 +6997,27 @@ msgstr "टोर ब्राउजर"
msgid "Orbot: Proxy with Tor"
msgstr "अोरबोट: टोर के साथ प्रॉक्सी"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "टोर कॉन्फ़िगरेशन अपडेट किया जा रहा है"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
#, fuzzy
#| msgid "Hidden Service"
msgid "Onion Service"
msgstr "हिडन सर्विस"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "पोर्टस"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "सेटिंग स्थिर है"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "कॉंफ़िगरेशन के दौरान कूछ त्रुटि हुई."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "एप्लिकेशन नहीं इंस्टॉल जा सकता: {error}"
#: plinth/modules/transmission/__init__.py:23
#, fuzzy
@@ -7000,7 +7078,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "हस्तांतरण"
@@ -7041,15 +7119,11 @@ msgstr ""
"टैनी टैनी आरएसएस का मोबाइल या डेस्कटॉप एप्लिकेशन उपयोग करते समय, यह यूआरएल/tt-rss-app कनेक्ट करने के लिए उपयोग करें."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "समाचार फ़ीड्स पढ़ें और सब्सक्राइब करें"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "टिनी टिनी आरएसएस"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "समाचार फ़ीड रीडर"
@@ -7070,8 +7144,8 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
#, fuzzy
@@ -7079,30 +7153,30 @@ msgstr ""
msgid "Software Update"
msgstr "सॉफ्टवेयर अपग्रेडस"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
#| msgid "FreedomBox Foundation"
msgid "FreedomBox Updated"
msgstr "फ्रीडमबाक्स फाउंडेशन"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
#, fuzzy
#| msgid "Automatic upgrades disabled"
msgid "Distribution update started"
msgstr "ऑटोमेटिक अपग्रेडस अक्षम किया गया"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7197,6 +7271,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -7267,43 +7342,67 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Test Distribution Upgrade"
+msgstr "ऑटोमेटिक अपग्रेडस सक्षम किया गया"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Test distribution upgrade now"
+msgstr "ऑटोमेटिक अपग्रेडस सक्षम किया गया"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "अनअटेंडेड-अपग्रेडस कॉन्फ़िगर करते समय त्रुटि: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "ऑटोमेटिक अपग्रेडस सक्षम किया गया"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "ऑटोमेटिक अपग्रेडस अक्षम किया गया"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
#, fuzzy
#| msgid "Automatic upgrades enabled"
msgid "Distribution upgrade enabled"
msgstr "ऑटोमेटिक अपग्रेडस सक्षम किया गया"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
#, fuzzy
#| msgid "Automatic upgrades disabled"
msgid "Distribution upgrade disabled"
msgstr "ऑटोमेटिक अपग्रेडस अक्षम किया गया"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "अपग्रेड प्रक्रिया शुरू हुई."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "अपग्रेड प्रारंभ करना विफल रहा."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Starting distribution upgrade test."
+msgstr "ऑटोमेटिक अपग्रेडस सक्षम किया गया"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7319,15 +7418,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "यूसरस और समूह"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "सब सर्विसस और सिस्टम सेटिंग्स तक पहुंच"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "एलडीएपी प्रविष्टि चेक करें \"{search_item}\""
@@ -7987,14 +8086,14 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
#, fuzzy
#| msgid "Address"
msgid "WordPress"
msgstr "ऍड्रेस"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
#, fuzzy
#| msgid "Wiki and Blog"
msgid "Website and Blog"
@@ -8033,11 +8132,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -8073,37 +8172,136 @@ msgstr "पीपीपीअोइ"
msgid "Generic"
msgstr "जेनेरिक"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "{exception}: होस्ट नाम सेट करने में एरर"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, fuzzy, python-brace-format
+#| msgid "Service disabled: {name}"
+msgid "Finished: {name}"
+msgstr "सर्विस सक्षम किया गया:{name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "इंस्टालेशन करते समय पर त्रुटि"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Existing custom services"
+msgid "Error running apt-get"
+msgstr "मौजूदा कस्टम सर्विसस"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "इंस्टॉलिंग"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "डाउनलोडिंग"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "मीडिया बदलाव"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "कॉंफ़िगरेशन फ़ाइल: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "ऐप्लिकेशन इंस्टॉल करें"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "एप्लिकेशन नहीं इंस्टॉल जा सकता : {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "एप्लिकेशन नहीं इंस्टॉल जा सकता : {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "एप्लिकेशन नहीं इंस्टॉल जा सकता: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "एप्लिकेशन नहीं इंस्टॉल जा सकता: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "एप्लिकेशन इंस्टॉल हो गया."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "अंतिम अपडेट"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "ऐप्लिकेशन इंस्टॉल करें"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "एप्लिकेशन नहीं इंस्टॉल जा सकता : {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "एप्लिकेशन नहीं इंस्टॉल जा सकता: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "एप्लिकेशन इंस्टॉल हो गया."
+
+#: plinth/setup.py:451
+#, fuzzy
+#| msgid "Upgrade Packages"
+msgid "Updating app packages"
+msgstr "अपग्रेड पैकेजस"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "४०३ निषिद्ध"
@@ -8165,7 +8363,7 @@ msgstr ""
msgid "Installation"
msgstr "इंस्टालेशन"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "सर्विस %(service_name)s नहीं चल रहा है."
@@ -8430,6 +8628,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr "%(box_name)s सेटअप"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "एप्लिकेशन इंस्टॉल हो गया."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "यह एप्लिकेशन इंस्टॉल करें?"
@@ -8439,57 +8641,111 @@ msgid "This application needs an update. Update now?"
msgstr "इस ऐप्लिकेशन को अप्डेट चाहिये. अभी अप्डेट करें?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"किसी इंस्टालेशन या अपग्रेड पहले से चल रहा है. कुछ समय प्रतीक्षा करें फिर कोशिश करने से पहले."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "यह एप्लिकेशन अभी अापका वितरण में उपलब्ध नहीं है."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "इंस्टॉल करें"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "अपडेट"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "प्री-इंस्टॉलेशन ऑपरेशन कर रहा है"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "इंस्टॉल करें"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "पोस्ट-इंस्टॉलेशन ऑपरेशन कर रहा है"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit user %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "यूसर संपादित करें %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "%(package_names)s:%(status)s इंस्टॉलेशन किया"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% पूर्ण"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "सेटिंग स्थिर है"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr ""
+#~ msgid "Network Connections"
+#~ msgstr "नेटवर्क कनेक्शन्स"
+
+#~ msgid "Enable Tor"
+#~ msgstr "टोर सक्षम करें"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "टोर कॉन्फ़िगरेशन अपडेट किया जा रहा है"
+
+#~ msgid "Error during installation"
+#~ msgstr "इंस्टालेशन करते समय पर त्रुटि"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "DNSSEC आईपीवी पर उपयोग कर रहा है{kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "किसी इंस्टालेशन या अपग्रेड पहले से चल रहा है. कुछ समय प्रतीक्षा करें फिर कोशिश करने से "
+#~ "पहले."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "प्री-इंस्टॉलेशन ऑपरेशन कर रहा है"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "पोस्ट-इंस्टॉलेशन ऑपरेशन कर रहा है"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "%(package_names)s:%(status)s इंस्टॉलेशन किया"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% पूर्ण"
+
+#, fuzzy
+#~| msgid "Access Point"
+#~ msgid "Access"
+#~ msgstr "अभिगम केंद्र"
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "वेब सर्वर"
+
#, fuzzy
#~| msgid "Server"
#~ msgid "Server URL"
@@ -8889,11 +9145,6 @@ msgstr ""
#~ msgid "Postfix domain name config"
#~ msgstr "{exception}: डोमेन नाम सेट करने में एरर"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "कॉंफ़िगरेशन के दौरान कूछ त्रुटि हुई."
-
#, fuzzy
#~| msgid "Disabled"
#~ msgid "Disable selected"
@@ -9394,9 +9645,6 @@ msgstr ""
#~ msgid "Service enabled: {name}"
#~ msgstr "सर्विस सक्षम किया गया:{name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "सर्विस सक्षम किया गया:{name}"
-
#~ msgid "PageKite Account"
#~ msgstr "पेजकईट अकाउंट"
@@ -9848,9 +10096,6 @@ msgstr ""
#~ msgid "Automatic Upgrades"
#~ msgstr "ऑटोमेटिक अपग्रेडस"
-#~ msgid "Upgrade Packages"
-#~ msgstr "अपग्रेड पैकेजस"
-
#~ msgid "No such device - {device_path}"
#~ msgstr "ऐसा कोई डिवाइस नहीं - {device_path}"
diff --git a/plinth/locale/hu/LC_MESSAGES/django.po b/plinth/locale/hu/LC_MESSAGES/django.po
index 45bca884a..04f01dac7 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2022-05-10 02:10+0000\n"
"Last-Translator: ikmaak \n"
"Language-Team: Hungarian any user on {box_name} "
@@ -1193,34 +1192,16 @@ msgstr ""
"A {box_name} bármely adminisztrátori csoportba tartozó felhasználója hozzáférhet."
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-"A Cockpit megköveteli, hogy a domainnéven keresztül érd el. Nem fog működni "
-"ha az URL részeként IP-címet használsz."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Szerver adminisztráció"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Hozzáférés"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-"A Cockpit csak akkor működik, ha a következő URL-címek használatával nyitod "
-"meg."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1235,7 +1216,7 @@ msgstr "Általános beállítások"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Beállítások"
@@ -1330,43 +1311,67 @@ msgstr "Haladó szintű alkalmazások és funkciók mutatása"
msgid "Show apps and features that require more technical knowledge."
msgstr "Több műszaki ismeretet igénylő alkalmazások és funkciók megjelenítése."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Monitoring"
+msgid "System-wide logging"
+msgstr "Rendszerfigyelés"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Hiba az állomásnév beállítása közben: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Állomásnév beállítva"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Hiba a domainnév beállítása közben: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Domainnév beállítva"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Hiba a webszerver kezdőoldalának beállítása közben: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Webszerver kezdőoldal beállítva"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Hiba a haladó módba váltás során: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Haladó szintű alkalmazások és funkciók megjelenítése"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Haladó szintű alkalmazások és funkciók elrejtése"
@@ -1393,11 +1398,11 @@ msgstr ""
"szervereket, mint a Matrix Synapse vagy az ejabberd, az itt megadott részletekkel kell konfigurálni."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "VoIP-segéd"
@@ -1422,11 +1427,11 @@ msgstr ""
"A hálózati időszerver egy olyan program, amely az interneten található "
"szerverekkel szinkronban tartja a rendszeridőt."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Dátum és idő"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Az idő szinkronizálva van az NTP-szerverrel"
@@ -1467,17 +1472,17 @@ msgstr ""
"Az alapértelmezett jelszó 'deluge', de a szolgáltatás engedélyezése után "
"jelentkezz be és azonnal változtasd meg."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Fájlok letöltése BitTorrent-alkalmazások használatával"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "Webes BitTorrent-kliens"
@@ -1499,48 +1504,48 @@ msgstr ""
"működnek."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Hibaellenőrzés"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "sikerült"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "sikertelen"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "hiba"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "figyelmeztetés"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr "A memóriahasználat csökkentése érdekében tilts le néhány alkalmazást."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Ne telepíts további alkalmazásokat erre a rendszerre."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1549,7 +1554,7 @@ msgstr ""
"A rendszerben kevés a memória: {percent_used}% használt, "
"{memory_available} {memory_available_unit} szabad. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Kevés a memória"
@@ -1599,7 +1604,7 @@ msgstr "Teszt"
msgid "Result"
msgstr "Eredmény"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Ellenőrző teszt"
@@ -1646,11 +1651,11 @@ msgstr ""
"szolgáltatást a "
"freedns.afraid.org címen."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Dinamikus DNS ügyfél"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Dinamikus domainnév"
@@ -1779,13 +1784,14 @@ msgid "This field is required."
msgstr "Ezt a mezőt ki kell tölteni."
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1867,12 +1873,12 @@ msgstr ""
"videóhívásokhoz. Telepítsd a Coturn alkalmazást "
"vagy állíts be egy külső szervert."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Chat szerver"
@@ -1984,7 +1990,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2045,19 +2051,19 @@ msgid ""
msgstr ""
"A telepítés során a rendszeren lévő összes egyéb e-mail-szerver törlődni fog."
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr "Postfix/Dovecot"
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "E-mail-szerver"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr "E-mail álneveim"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr "A Mailbox álneveinek kezelése"
@@ -2093,7 +2099,7 @@ msgstr "Nem lehet szám"
msgid "Aliases"
msgstr "Álnevek"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2179,7 +2185,7 @@ msgstr ""
"hálózati forgalmát felügyeli. A folyamatosan aktív és megfelelően beállított "
"tűzfal csökkenti az internetről leselkedő biztonsági fenyegetések kockázatát."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Tűzfal"
@@ -2342,15 +2348,15 @@ msgstr ""
"href=\"https://git-scm.com/docs/gittutorial\">Git gyorstalpalót (angolul)"
"a>."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Olvasási-írási hozzáférés a Git-tárolókhoz"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Egyszerű Git-hoszting"
@@ -2449,54 +2455,54 @@ msgstr "%(name)s Git-tároló törlése"
msgid "Delete this repository permanently?"
msgstr "Véglegesen törlöd ezt a tárolót?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Tároló létrehozva."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Hiba történt a tároló létrehozása közben."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Tároló szerkesztve."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Tároló szerkesztése"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Dokumentáció"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Kézikönyv"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Támogatás kérése"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Visszajelzés küldése"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Hozzájárulás"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Névjegy"
@@ -2633,6 +2639,41 @@ msgstr ""
msgid "Learn more..."
msgstr "Bővebben..."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2776,16 +2817,16 @@ msgstr ""
"Kérlek, távolíts el minden jelszót és személyes információt a naplóból "
"mielőtt elküldenéd a bejelentést."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Dokumentáció és GYIK"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "A {box_name} projektről"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "{box_name} kézikönyv"
@@ -2818,19 +2859,19 @@ msgstr ""
"Az első látogatás a megadott webes felületen elindítja a konfigurálási "
"folyamatot."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "I2P alkalmazás kezelése"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Anonim hálózat"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "I2P proxy"
@@ -2899,15 +2940,15 @@ msgstr ""
"meglévőket. A Felhasználók beállítása oldalon "
"tudod módosítani ezeket a jogosultságokat vagy hozzáadni új felhasználókat."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki és blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Wiki alkalmazások megtekintése és szerkesztése"
@@ -2945,8 +2986,8 @@ msgstr "%(site)s webhely törlése"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Beállítások frissítése"
@@ -2963,32 +3004,32 @@ msgstr ""
"Ez a művelet el fog távolítani minden bejegyzést, oldalt és kommentet "
"beleértve a verziótörténetet is. Véglegesen törlöd ezt a wikit vagy blogot?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "{name} wiki létrehozva."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Nem sikerült létrehozni a wikit: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "{name} blog létrehozva."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Nem sikerült létrehozni a blogot: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} törölve."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "{title} nem törölhető: {error}"
@@ -3010,11 +3051,11 @@ msgstr ""
"\"Csatlakozás a szerverhez\" lehetőséget (\"Connect to Server\") és írd be a "
"{box_name} eszközöd domainnevét."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Gobby-szerver"
@@ -3035,28 +3076,26 @@ msgstr ""
"Indítsd el a Gobby-t majd válaszd a \"Csatlakozás a szerverhez\" lehetőséget "
"(\"Connect to Server\") és írd be a {box_name} eszközöd domainnevét."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Webszerver"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3068,7 +3107,7 @@ msgstr ""
msgid "JavaScript license information"
msgstr "JavaScript licencinformáció"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3076,11 +3115,11 @@ msgstr ""
"JSXC egy webes kliens az XMPP-hez. Általában helyileg futtatott XMPP-"
"szerverrel használják."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Chat kliens"
@@ -3249,7 +3288,7 @@ msgstr ""
"videóhívásokhoz. Telepítsd a Coturn "
"alkalmazást, vagy konfigurálj egy külső szervert."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3287,8 +3326,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Beállítások"
@@ -3391,12 +3430,12 @@ msgstr ""
"Bárki elolvashatja, akinek van hozzáférése ehhez a wikihez, viszont csak a "
"bejelentkezett felhasználók módosíthatják a tartalmat."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3478,44 +3517,44 @@ msgstr ""
"Válassz alapértelmezett felszínt a MediaWiki telepítéséhez. A "
"felhasználóknak lehetőségük van kiválasztani a saját kedvelt felszínüket."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Jelszó frissítve"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
#, fuzzy
#| msgid "Password used to encrypt data. Must match server password."
msgid "Password update failed. Please choose a stronger password"
msgstr ""
"Az adattitkosításra használt jelszó. A szerver jelszavával meg kell egyeznie."
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Szabad regisztráció engedélyezve"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Szabad regisztráció letiltva"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Privát mód engedélyezve"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Privát mód letiltva"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Az alapértelmezett felszín megváltozott"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "Domainnév beállítva"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3535,11 +3574,11 @@ msgstr ""
"szerverre egy Minetest "
"kliensre is szükséged lesz."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Blokk sandbox"
@@ -3588,7 +3627,7 @@ msgstr "Ha le van tiltva, a játékosok nem fognak meghalni, ill. megsérülni."
msgid "Address"
msgstr "Cím"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3606,15 +3645,15 @@ msgstr ""
"médialejátszók, okostelefonok, televíziók és játékkonzolok (például "
"PlayStation és Xbox), vagy olyan alkalmazásokkal mint a totem és a Kodi."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Média streaming szerver"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Egyszerű médiaszerver"
@@ -3677,11 +3716,11 @@ msgstr ""
"kapcsolódhatsz. A Mumble-kliensek "
"elérhetők az asztali és mobil eszközökhöz."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Audiókonferencia"
@@ -3731,17 +3770,17 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "A SuperUser jelszava sikeresen frissítve."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Upload password updated"
msgid "Join password changed"
msgstr "Feltöltési jelszó frissítve"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3779,7 +3818,7 @@ msgstr "Secure Shell (Biztonságos parancsértelmező)"
msgid "Services"
msgstr "Szolgáltatások"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3788,7 +3827,7 @@ msgstr ""
"vagy PPPoE segítségével. Oszd meg ezt a kapcsolatot a hálózaton lévő más "
"eszközökkel."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3796,15 +3835,10 @@ msgstr ""
"Előfordulhat, hogy más módszerekkel felügyelt eszközök itt nem lesznek a "
"konfigurálhatók."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Hálózatok"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "DNSSEC használata IPv{kind} felett"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Kapcsolat típusa"
@@ -4423,7 +4457,7 @@ msgid "Create Connection"
msgstr "Kapcsolat létrehozása"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Kapcsolat törlése"
@@ -4443,13 +4477,13 @@ msgstr "Térköz"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4470,7 +4504,7 @@ msgid "Computer"
msgstr "Számítógép"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Kapcsolat szerkesztése"
@@ -4480,13 +4514,13 @@ msgstr "Kapcsolatok"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Wi-Fi hálózatok a közelben"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Kapcsolat hozzáadása"
@@ -4711,247 +4745,243 @@ msgstr ""
"meg az interneten a router kézikönyvét. Ebben teljes körű utasításokat "
"találsz a feladat elvégzéséhez."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "letiltva"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "automatikus"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "kézi"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "megosztott"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr "link-local"
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "ismeretlen"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "nem-menedzselt"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "elérhetetlen"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "szétkapcsolva"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "előkészítés"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "kapcsolódás"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "hitelesítést igényel"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "cím lekérdezése"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "ellenőrzése"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr "várakozás a másodlagos"
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "aktiválva"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "deaktiválás"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "nincs ok"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "ismeretlen hiba"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "az eszköz most már menedzselt"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "az eszköz most már nem-menedzselt"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "konfiguráció sikertelen"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr "titkosítás szükséges"
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "A DHCP-kliens nem indult el"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "DHCP-kliens error"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "DHCP kliens sikertelen"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr "a megosztott kapcsolati szolgáltatás nem indult el"
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "megosztott kapcsolatszolgáltatás sikertelen"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "eszköz el lett távolítva"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "eszközt a felhasználó leválasztotta"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr "a kapcsolat egyik függősége meghiúsult"
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "Wi-Fi hálózat nem található"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "másodlagos kapcsolat sikertelen"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr "az új kapcsolat aktiválása várólistára került"
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "kettős IP-cím észlelhető"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "a kiválasztott IP-módszer nem támogatott"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "általános"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "TUN- vagy TAP-interfész"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad-hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "infrastuktúra"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "hozzáférési pont"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "mesh pont"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Hálózati kapcsolatok"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Nem jeleníthető meg a kapcsolat, mivel nem található."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Információ a kapcsolatról"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "A kapcsolat nem szerkeszthető, mivel nem található."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Az ilyen típusú kapcsolat még nem ismert."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "{name} kapcsolat aktiválva."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Kapcsolat aktiválása sikertelen: kapcsolat nem található."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"{name} kapcsolat aktiválása sikertelen: nem áll rendelkezésre megfelelő "
"eszköz."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "{name} kapcsolat deaktiválva."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Kapcsolat deaktiválása sikertelen: kapcsolat nem található."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Új általános kapcsolat hozzáadása"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Új Ethernet kapcsolat hozzáadása"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Új PPPoE kapcsolat hozzáadása"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Új Wi-Fi kapcsolat hozzáadása"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Kapcsolat törölve: {name}."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "A kapcsolat törlése sikertelen, mivel nem található."
@@ -4973,20 +5003,20 @@ msgstr ""
"eszközödön keresztül elérheted az internetet is további biztonság és "
"anonimitás érdekében."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "Csatlakozás a VPN-szolgáltatásokhoz"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Virtuális magánhálózat"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5128,15 +5158,15 @@ msgstr ""
"net. A jövőben talán a barátod {box_name} eszközét is lehetőséged lesz "
"használni erre a célra."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Nyilvános láthatóság"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "PageKite domain"
@@ -5250,29 +5280,29 @@ msgstr ""
"HTTPS a 443-as porttól eltérő portokon történő használata közismerten "
"problémákat okoz."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Webszerver (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "Az oldal itt lesz elérhető: http://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Webszerver (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "Az oldal itt lesz elérhető: https://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Biztonságos parancsértelmező (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5281,7 +5311,7 @@ msgstr ""
"Howto/SshOverPageKite/\">instrukciókat"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Teljesítmény"
@@ -5304,7 +5334,7 @@ msgstr ""
"A teljesítménymutatókat a Teljesítmény segédprogram gyűjti össze, amelyek a "
"Cockpit alkalmazással tekinthetők meg."
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Rendszerfigyelés"
@@ -5387,12 +5417,19 @@ msgstr ""
"eltávolítja a hirdetéseket és az egyéb nem kívánt internetes szemetet. "
#: plinth/modules/privoxy/__init__.py:28
-#, python-brace-format
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "You can use Privoxy by modifying your browser proxy settings to your "
+#| "{box_name} hostname (or IP address) with port 8118. While using Privoxy, "
+#| "you can see its configuration details and documentation at http://config.privoxy.org/ or http://p.p."
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"A Privoxy használatához módosítanod kell a webböngésződ proxy beállításait a "
@@ -5401,15 +5438,15 @@ msgstr ""
"a címeken: http://config.privoxy.org/"
"a> és http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Web proxy"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -5444,11 +5481,11 @@ msgstr ""
"\">asztali és mobil "
"eszközökhöz is."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "IRC-kliens"
@@ -5482,12 +5519,12 @@ msgstr ""
"címjegyzékek létrehozását támogatja. Nem támogatja az események vagy "
"kapcsolatok hozzáadását, ezeket külön kliens segítségével kell elvégezni."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Naptár és címjegyzék"
@@ -5564,7 +5601,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Hozzáférési jogok beállításai frissítve"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5576,7 +5613,7 @@ msgstr ""
"teljes funkcionalitást biztosítja, beleértve a MIME-támogatást, "
"címjegyzéket, mappakezelést, üzenetkeresést és helyesírás-ellenőrzést."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5590,7 +5627,7 @@ msgstr ""
"SSL-en kersztüli IMAP-hez (ez az ajánlott), töltsd ki a kiszolgáló mezőt "
"ezen minta alapján: imaps://imap.pelda.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5607,7 +5644,7 @@ msgstr ""
"lesssecureapps\">https://www.google.com/settings/security/lesssecureapps"
"a>)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "E-mail kliens"
@@ -5625,6 +5662,46 @@ msgstr ""
"a bejelentkezési oldalról, és a felhasználók csak erről a {box_name}ról "
"olvashatnak és küldhetnek leveleket."
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Ha engedélyezett, a Tiny Tiny RSS-t bármely felhasználó elérheti, aki {box_name} bejelentkezéssel "
+"rendelkezik."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Hírcsatornák olvasása és feliratkozás"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5666,15 +5743,15 @@ msgstr ""
"Otthoni megosztás - a freedombox-share csoport minden felhasználójának saját "
"privát tárhelye lehet."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Hozzáférés a privát megosztásokhoz"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Hálózati tárhely"
@@ -5809,15 +5886,15 @@ msgstr ""
"A Searx segítségével elkerülhető, hogy a keresőmotorok nyomon kövessék és "
"profilozzák a felhasználót. Sütiket eleve nem tárol."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Keresés a weben"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Webes keresés"
@@ -5915,7 +5992,7 @@ msgstr ""
"fenn őket."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Biztonsági jelentés"
@@ -5994,12 +6071,12 @@ msgstr "Nem"
msgid "Not running"
msgstr "Nem fut"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Hiba a korlátozott hozzáférés beállítása során: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Biztonsági beállítás frissítve"
@@ -6015,11 +6092,11 @@ msgstr ""
"Vedd figyelembe, hogy a Shaarli csak egy felhasználói fiókot támogat, melyet "
"az első látogatás során be kell állítani."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Könyvjelzők"
@@ -6059,11 +6136,11 @@ msgstr ""
"címét a készülékeden, böngésződben vagy alkalmazásodban a http://"
"freedombox_eszkozod_cime:1080/ címre"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Socks5 Proxy"
@@ -6093,7 +6170,7 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr "Titkosítási módszer. A szerver beállításával meg kell egyeznie."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6102,7 +6179,7 @@ msgstr ""
"Megosztás lehetővé teszi számodra hogy fájlokat és mappákat ossz meg a weben "
"keresztül felhasználók kiválasztott csoportjaival a {box_name} eszközödön."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Megosztás"
@@ -6160,28 +6237,28 @@ msgstr ""
"A megosztásnak nyilvánosnak vagy legalább egy csoporttal megosztottnak kell "
"lennie"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Megosztás hozzáadása"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Jelenleg nincs beállított megosztás."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Lemez elérési útja"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Megosztva ezen keresztül"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Ezekkel a csoportokkal"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "nyilvános hozzáférés"
@@ -6341,7 +6418,7 @@ msgstr "Dátum"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Pillanatképek törlése"
@@ -6395,55 +6472,55 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "Visszaállítás erre a pillanatképre: %(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "kézzel létrehozva"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "idővonal"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Pillanatképek kezelése"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Pillanatkép létrehozva."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Tárhelypillanatképek konfigurációja frissítve"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Hiba a művelet közben: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Kiválasztott pillanatképek törölve"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
"A Tárhelypillanatképek funkció jelenleg is használatban van. Kérlek, próbáld "
"újra később."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "A {number} számú pillanatképre visszaállítva."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "A visszaállítás befejezéséhez a rendszert újra kell indítani."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Visszaállítás pillanatképre"
@@ -6459,7 +6536,7 @@ msgstr ""
"számítógép felügyeleti feladatokat hajthat végre, fájlokat másolhat vagy "
"egyéb szolgáltatásokat futtathat ilyen kapcsolat használatával."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "SSH-szerver"
@@ -6505,7 +6582,7 @@ msgstr "A jelszavas SSH-hitelesítés le van tiltva."
msgid "SSH authentication with password enabled."
msgstr "Jelszavas SSH-hitelesítés engedélyezve."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Egyszeri bejelentkezés"
@@ -6529,108 +6606,108 @@ msgstr ""
"fel- és lecsatolhatsz cserélhető adathordozókat, kibővítheted a root "
"partíciót, stb."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Tárhely"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} byte"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "A művelet sikertelen."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "A művelet meg lett szakítva."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Az eszköz leválasztása már folyamatban van."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
"A művelet nem támogatott a hiányzó illesztőprogram/eszköz támogatása miatt."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "A művelet túllépte az időkorlátot."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
"A művelet fel fogja ébreszteni a lemezt, amely mély-alvó állapotban van."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Foglalt eszköz leválasztásának a kísérlete."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "A művelet már meg lett szakítva."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "Nem vagy jogosult végrehajtani a kért műveletet."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Az eszköz már fel lett csatolva."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Az eszköz nincs felcsatolva."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "Nem használhatod a kért lehetőséget."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Az eszközt egy másik felhasználó felcsatolva."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
"Kevés a szabad hely a rendszerpartíción: {percent_used}% felhasználva, "
"{free_space} szabad."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Kevés tárhely"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "Lemezhiba várható"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6786,16 +6863,16 @@ msgstr ""
"felület csak az \"admin\" vagy a \"syncthing-access\" csoporthoz tartozó "
"felhasználók számára hozzáférhető."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "A Syncthing alkalmazás beállítása"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Fájlszinkronizáció"
@@ -6822,40 +6899,40 @@ msgid ""
msgstr ""
"Egy Tor SOCKS port elérhető a %(box_name)s eszközöd 9050-es TCP-portján."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Tor Onion szolgáltatás"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Tor Socks proxy"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Tor híd relay"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Tor relay port elérhető"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3 átvitel regisztrálva"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4 átvitel regisztrálva"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Hozzáférés a {url} URL-hez tcp{kind}-on Tor használatával"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Hagyd jóvá a Tor használatát {url} célcímhez tcp{kind} protokollon"
@@ -6867,15 +6944,11 @@ msgstr ""
"Adj meg egy érvényes hidat ezzel a formátummal: [átvitel_neve] IP_cím:Port "
"[ujjlenyomat]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Tor engedélyezése"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Használj felmenő hidakat a Tor hálózatra kapcsolódáshoz"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6886,11 +6959,11 @@ msgstr ""
"internetszolgáltatód blokkolja vagy cenzúrázza a Tor hálózati kapcsolatokat. "
"Ez le fogja tiltani a relay módokat."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Felmenő hidak"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6901,11 +6974,11 @@ msgstr ""
"információit ide. A jelenleg támogatott átvitelek: none (nincs), obfs3, "
"obfs4 és scamblesuit."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Tor relay engedélyezése"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6917,11 +6990,11 @@ msgstr ""
"legalább 2 megabit/másodperc feltöltési és letöltési sávszélességgel "
"rendelkezel."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Tor híd relay engedélyezése"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6931,11 +7004,11 @@ msgstr ""
"helyett a Tor híd adatbázisban jelennek meg, ami megnehezíti a csomópont "
"cenzúrázását. Ez segít másoknak megkerülni a cenzúrát."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Tor rejtett szolgáltatás engedélyezése"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6946,11 +7019,11 @@ msgstr ""
"kiválasztott szolgáltatásokat nyújthasson (pl. wiki vagy chat) anélkül, hogy "
"felfedné a helyét. Ezt még ne használd erős anonimitás eléréséhez."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "A szoftvercsomagok Tor-on keresztüli letöltése"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6960,7 +7033,7 @@ msgstr ""
"szoftver a Tor hálózaton keresztül töltődik le. Ez magasabb szintű "
"biztonságot jelent szoftverek letöltésekor."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Felmenő híd használatához adj meg legalább egyet."
@@ -6972,21 +7045,25 @@ msgstr "Tor böngésző"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Tor proxy Android platformra"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "A Tor beállításainak frissítése folyamatban"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Onion-szolgáltatás"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Portok"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "A beállítás változatlan"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Hiba történt a beállítás közben."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Hiba lépett fel az alkalmazás telepítésekor: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -7038,7 +7115,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -7075,15 +7152,11 @@ msgstr ""
"hez, használd a /tt-rss-app URL-t a "
"csatlakozáshoz."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Hírcsatornák olvasása és feliratkozás"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Hírcsatorna-olvasó"
@@ -7110,22 +7183,22 @@ msgstr ""
"újraindítása szükségesnek bizonyul, akkor a rendszer automatikusan 02:00-kor "
"újraindul, ami miatt az összes alkalmazás rövid ideig nem lesz elérhető."
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Szoftverfrissítések"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox frissítve"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "A disztribúció frissítése nem tudott elindulni"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
@@ -7136,11 +7209,11 @@ msgstr ""
"disztribúció frissítését a rendszer 24 óra múlva újrapróbálja, ha "
"engedélyezve van."
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "A disztribúció frissítése elindult"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7235,6 +7308,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Figyelmen kívül hagyás"
@@ -7300,39 +7374,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Legutóbbi frissítési naplók megjelenítése"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Disztribúció frissítés engedélyezve"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "Disztribúció frissítés engedélyezve"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "Hiba a nem felügyelt frissítések konfigurálása közben: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Automatikus frissítések engedélyezve"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Automatikus frissítések kikapcsolva"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "Disztribúció frissítés engedélyezve"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Disztribúció frissítés letiltva"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "A frissítési folyamat elkezdődött."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "A frissítést nem sikerült elindítani."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Gyakori funkciófrissítések aktiválva."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Disztribúció frissítés engedélyezve"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7356,15 +7454,15 @@ msgstr ""
"az admin csoport felhasználói módosíthatják az alkalmazásokat vagy "
"a rendszerbeállításokat."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Felhasználók és csoportok"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Hozzáférés az összes szolgáltatáshoz és rendszerbeállításhoz"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "LDAP-bejegyzés ellenőrzése: \"{search_item}\""
@@ -8000,12 +8098,12 @@ msgstr ""
"frissítését a rendszergazdai felületről. További bővítmények vagy témák "
"telepítése és frissítése saját felelősségre történhet."
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "Weboldal és blog"
@@ -8056,11 +8154,11 @@ msgstr ""
"rendszerben is létre kell hozni egy-egy fiókot ugyanazzal a "
"felhasználónévvel."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Fotó szervező"
@@ -8098,37 +8196,138 @@ msgstr "PPPoE"
msgid "Generic"
msgstr "Általános"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Hiba az állomásnév beállítása közben: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, fuzzy, python-brace-format
+#| msgid "Service disabled: {name}"
+msgid "Finished: {name}"
+msgstr "Szolgáltatás letiltva: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "A(z) {package_name} a legfrissebb verzió ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Hiba lépett fel a telepítés során"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Hiba történt a biztonsági mentés közben"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "telepítés"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "letöltés"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "adathordozó csere"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "konfigurációs fájl: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Alkalmazások telepítése"
+
+#: plinth/setup.py:42
+#, fuzzy
+#| msgid "Updating..."
+msgid "Updating app"
+msgstr "Frissítés…"
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Hiba lépett fel az alkalmazás telepítésekor: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Hiba lépett fel az alkalmazás telepítésekor: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Hiba lépett fel az alkalmazás telepítésekor: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Hiba lépett fel az alkalmazás telepítésekor: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Alkalmazás telepítve."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Legutolsó frissítés"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Alkalmazások telepítése"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Hiba lépett fel az alkalmazás telepítésekor: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Hiba lépett fel az alkalmazás telepítésekor: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Alkalmazás telepítve."
+
+#: plinth/setup.py:451
+#, fuzzy
+#| msgid "Upgrade Packages"
+msgid "Updating app packages"
+msgstr "Csomagok frissítése"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Tiltott"
@@ -8179,7 +8378,7 @@ msgstr ""
msgid "Installation"
msgstr "Telepítés"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "A szolgáltatás nem fut (%(service_name)s)."
@@ -8449,6 +8648,10 @@ msgstr "Router/WAN-portokról"
msgid "To %(box_name)s Ports"
msgstr "A %(box_name)s portokhoz"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Alkalmazás telepítve."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Alkalmazás telepítése?"
@@ -8458,22 +8661,14 @@ msgid "This application needs an update. Update now?"
msgstr "Ennek az alkalmazásnak frissítésre van szüksége. Frissítés most?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Egy másik telepítés vagy frissítés már folyamatban van. Kérlek, várj néhány "
-"pillanatot, mielőtt újra megpróbálnád."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Ez az alkalmazás jelenleg nem hozzáférhető ebben a disztribúcióban."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Ellenörzés ismét"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8483,36 +8678,107 @@ msgstr ""
"csomagok ütköznek ennek az alkalmazásnak a telepítésével. A következő "
"csomagok törlődnek, ha folytatod:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Telepítés"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Frissítés"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Telepítés előtti műveletek végrehajtása"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Telepítés"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Telepítés utáni műveletek végrehajtása"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "%(username)s felhasználó szerkesztése"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "%(package_names)s telepítése: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "befejezettségi szint: %(percentage)s%%"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "A beállítás változatlan"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gudzsaráti"
+#~ msgid "Network Connections"
+#~ msgstr "Hálózati kapcsolatok"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Tor engedélyezése"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "A Tor beállításainak frissítése folyamatban"
+
+#~ msgid "Error during installation"
+#~ msgstr "Hiba lépett fel a telepítés során"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "DNSSEC használata IPv{kind} felett"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Egy másik telepítés vagy frissítés már folyamatban van. Kérlek, várj "
+#~ "néhány pillanatot, mielőtt újra megpróbálnád."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Telepítés előtti műveletek végrehajtása"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Telepítés utáni műveletek végrehajtása"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "%(package_names)s telepítése: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "befejezettségi szint: %(percentage)s%%"
+
+#~ 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 ""
+#~ "A Cockpit megköveteli, hogy a domainnéven keresztül érd el. Nem fog "
+#~ "működni ha az URL részeként IP-címet használsz."
+
+#~ msgid "Access"
+#~ msgstr "Hozzáférés"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr ""
+#~ "A Cockpit csak akkor működik, ha a következő URL-címek használatával "
+#~ "nyitod meg."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Webszerver"
+
#~ msgid "Server URL"
#~ msgstr "Szerver URL"
@@ -8952,11 +9218,6 @@ msgstr "Gudzsaráti"
#~ msgid "Postfix domain name config"
#~ msgstr "Hiba a domain név beállítása közben: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Hiba történt a beállítás közben."
-
#, fuzzy
#~| msgid "Specified directory does not exist."
#~ msgid "User does not exist"
@@ -9519,9 +9780,6 @@ msgstr "Gudzsaráti"
#~ msgid "Service enabled: {name}"
#~ msgstr "Szolgáltatás engedélyezve: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Szolgáltatás letiltva: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "PageKite fiók"
@@ -9909,9 +10167,6 @@ msgstr "Gudzsaráti"
#~ msgid "Automatic Upgrades"
#~ msgstr "Automatikus frissítések"
-#~ msgid "Upgrade Packages"
-#~ msgstr "Csomagok frissítése"
-
#~ msgid "No such device - {device_path}"
#~ msgstr "Nincs ilyen eszköz - {device_path}"
diff --git a/plinth/locale/id/LC_MESSAGES/django.po b/plinth/locale/id/LC_MESSAGES/django.po
index 3c9032a4f..08ac8f24e 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-06-24 00:42+0000\n"
"Last-Translator: Reza Almanda \n"
"Language-Team: Indonesian any user on {box_name} "
@@ -1174,32 +1173,16 @@ msgstr ""
"Itu dapat diakses oleh pengguna apa pun pada "
"{box_name} milik kelompok admin."
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-"Kokpit mengharuskan Anda mengaksesnya melalui nama domain. Itu tidak akan "
-"berfungsi ketika diakses menggunakan alamat IP sebagai bagian dari URL."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Kokpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Administrasi Server"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Mengakses"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Kokpit hanya akan bekerja ketika diakses menggunakan URL berikut."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1214,7 +1197,7 @@ msgstr "Konfigurasi Umum"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Konfigurasi"
@@ -1310,43 +1293,67 @@ msgstr ""
"Tampilkan aplikasi dan fitur yang membutuhkan lebih banyak pengetahuan "
"teknis."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Configuration"
+msgid "System-wide logging"
+msgstr "Pengaturan Sistem"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Kesalahan pengaturan hostname: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Hostname set"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Kesalahan pengaturan nama domain: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Set nama domain"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Kesalahan pengaturan Webserver Halaman Beranda: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Set Halaman Rumah WebServer"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Kesalahan mengubah mode lanjutan: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Menampilkan aplikasi dan fitur canggih"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Menyembunyikan aplikasi dan fitur canggih"
@@ -1374,11 +1381,11 @@ msgstr ""
"\"{e_url}\">ejabberd memerlukan dikonfigurasi dengan rincian yang "
"disediakan disini."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "Helper VoIP"
@@ -1402,11 +1409,11 @@ msgstr ""
"Network Time Server adalah program yang memelihara waktu sistem dalam "
"sinkronisasi dengan server di Internet."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Tanggal & Hari"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Waktu disinkronkan ke server NTP"
@@ -1447,17 +1454,17 @@ msgstr ""
"Kata sandi default adalah 'Deluge', tetapi Anda harus masuk dan mengubahnya "
"segera setelah mengaktifkan layanan ini."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Unduh file menggunakan aplikasi BitTorrent"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Membanjiri"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "Klien Web BitTorrent"
@@ -1478,50 +1485,50 @@ msgstr ""
"mengonfirmasi bahwa aplikasi dan layanan berfungsi seperti yang diharapkan."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnosa"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "LULUS"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "gagal"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "kesalahan"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "peringatan"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MIB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GIB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
"Anda harus menonaktifkan beberapa aplikasi untuk mengurangi penggunaan "
"memori."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Kamu seharusnya tidak menginstal aplikasi baru di sistem ini."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1530,7 +1537,7 @@ msgstr ""
"Sistem rendah pada memori: {percent_used}% digunakan, {memory_available} "
"{memory_available_unit} gratis. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Memori rendah"
@@ -1580,7 +1587,7 @@ msgstr "Pengujian"
msgid "Result"
msgstr "Hasil"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Tes Diagnostik"
@@ -1634,11 +1641,11 @@ msgstr ""
"URL pembaruan gratis di freedns.afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Klien DNS Dinamis"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Nama Domain Dinamis"
@@ -1773,13 +1780,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1874,12 +1882,12 @@ msgstr ""
"aplikasi Coturn atau konfigurasikan server "
"eksternal."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "Ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Server obrolan"
@@ -1986,7 +1994,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2034,23 +2042,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Chat Server"
msgid "Email Server"
msgstr "Server obrolan"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Manage Libraries"
msgid "My Email Aliases"
msgstr "Kelola Perpustakaan"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage Aliases for Mailbox"
@@ -2090,7 +2098,7 @@ msgstr ""
msgid "Aliases"
msgstr "Kelola Perpustakaan"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2182,7 +2190,7 @@ msgstr ""
"masuk dan keluar pada {box_name} Anda. Menjaga firewall diaktifkan dan "
"dikonfigurasi dengan benar mengurangi risiko ancaman keamanan dari Internet."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
@@ -2343,15 +2351,15 @@ msgstr ""
"Untuk mempelajari lebih lanjut tentang cara menggunakan git kunjungi tutorial git ."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Akses baca-tulis ke repositori git"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Hosting Git Sederhana"
@@ -2447,54 +2455,54 @@ msgstr "Hapus git repositori %(name)s "
msgid "Delete this repository permanently?"
msgstr "Hapus repositori ini secara permanen?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Repositori dibuat."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Terjadi kesalahan saat membuat repositori."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Diedit repositori."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Edit Repositori"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Dokumentasi"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Manual"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Dapatkan Dukungan"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Berikan umpan balik"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Kontribusi"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Tentang"
@@ -2628,6 +2636,41 @@ msgstr ""
msgid "Learn more..."
msgstr "Belajarlah lagi..."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2769,16 +2812,16 @@ msgstr ""
"Harap hapus kata sandi atau informasi pribadi lainnya dari log sebelum "
"mengirimkan laporan bug."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Dokumentasi dan Tanya Jawab"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "Tentang {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "Panduan {box_name}"
@@ -2811,19 +2854,19 @@ msgstr ""
"Kunjungan pertama ke antarmuka web yang disediakan akan memulai proses "
"konfigurasi."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "Kelola aplikasi I2P"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2p"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Jaringan Anonimitas"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "I2p proxy"
@@ -2897,15 +2940,15 @@ msgstr ""
"\"{users_url}\">Konfigurasi Pengguna, Anda dapat mengubah izin ini atau "
"menambahkan pengguna baru."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "Ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki dan Blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Lihat dan edit aplikasi Wiki"
@@ -2943,8 +2986,8 @@ msgstr "Hapus situs %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Perbarui Pengaturan"
@@ -2961,32 +3004,32 @@ msgstr ""
"Tindakan ini akan menghapus semua posting, halaman, dan komentar termasuk "
"riwayat revisi. Hapus wiki atau blog ini secara permanen?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Membuat wiki {name}."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Tidak dapat membuat wiki: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "membuat blog {name}."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Tidak dapat membuat blog: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} dihapus."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "Tidak dapat menghapus {title}: {error}"
@@ -3006,11 +3049,11 @@ msgstr ""
"a>, desktop client dan instal. Kemudian mulai gobby dan pilih \"Hubungkan ke "
"Server\" dan masukkan nama domain {box_name}."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "Menginfisi"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Server Gobby"
@@ -3031,28 +3074,26 @@ msgstr ""
"Mulai gobby dan pilih \"Hubungkan ke Server\" dan masukkan nama domain "
"{box_name} Anda."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Server Web"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3064,7 +3105,7 @@ msgstr ""
msgid "JavaScript license information"
msgstr "Informasi Lisensi JavaScript"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3072,11 +3113,11 @@ msgstr ""
"JSXC adalah klien web untuk XMPP. Biasanya digunakan dengan server XMPP yang "
"berjalan secara lokal."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "Jsxc"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Obrolan Klien"
@@ -3245,7 +3286,7 @@ msgstr ""
"Pasang aplikasi Coturn atau konfigurasikan "
"server eksternal."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Sinaps Matrix"
@@ -3283,8 +3324,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Konfigurasi"
@@ -3355,12 +3396,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3423,11 +3464,11 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Kata sandi diperbarui"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
#, fuzzy
#| msgid "Password used to encrypt data. Must match server password."
msgid "Password update failed. Please choose a stronger password"
@@ -3435,33 +3476,33 @@ msgstr ""
"Kata sandi yang digunakan untuk mengenkripsi data. Harus mencocokkan kata "
"sandi server."
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Pendaftaran publik diaktifkan"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Pendaftaran publik dinonaktifkan"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Mode privat diaktifkan"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Mode privat dinonaktifkan"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "Set nama domain"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3476,11 +3517,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3525,7 +3566,7 @@ msgstr ""
msgid "Address"
msgstr "Address"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3536,15 +3577,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3597,11 +3638,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Pesan Suara"
@@ -3643,17 +3684,17 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Password"
msgid "Join password changed"
msgstr "Kata Sandi"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3686,27 +3727,22 @@ msgstr "Secure Shell"
msgid "Services"
msgstr "Layanan"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Jaringan"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "Gunakan DNSSEC pada IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Tipe Koneksi"
@@ -4226,7 +4262,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Hapus Koneksi"
@@ -4246,13 +4282,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4273,7 +4309,7 @@ msgid "Computer"
msgstr "Komputer"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Sunting Koneksi"
@@ -4283,13 +4319,13 @@ msgstr "Koneksi"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Jaringan Wi-Fi terdekat"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Tambah Koneksi"
@@ -4472,245 +4508,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "dinonaktifkan"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "otomatis"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "panduan"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "bersama"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "tidak dikelola"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "tidak tersedia"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "Tidak terhubung"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "mempersiapkan"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "menghubungkan"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "butuh autentikasi"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "meminta alamat"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "memeriksa"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "diaktifkan"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "menonaktifkan"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "konfigurasi gagal"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "Gagal memulai klien DHCP"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "Galat klien DHCP"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "Klien DHCP gagal"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "layanan koneksi bersama gagal"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "generik"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "Antarmuka TUN atau TAP"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad-hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "infrastruktur"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "access point"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "mesh point"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Koneksi Jaringan"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Menambah koneksi generik baru"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Menambah koneksi ethernet baru"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Menambah koneksi PPPoE baru"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Menambah koneksi Wi-Fi baru"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Koneksi {name} dihapus."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4725,20 +4757,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "Sambungkan ke layanan VPN"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Jaringan Privat Virtual"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4846,15 +4878,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Visibilitas Publik"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "Domain PageKite"
@@ -4962,36 +4994,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Server Web (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "Situs akan tersedia di http://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Web Server (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Secure Shell (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Performa"
@@ -5008,7 +5040,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
#, fuzzy
#| msgid "System Configuration"
msgid "System Monitoring"
@@ -5082,21 +5114,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Proksi Web"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Akses {url} dengan proksi {proxy} pada tcp{kind}"
@@ -5120,11 +5153,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "Klien IRC"
@@ -5149,12 +5182,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -5217,7 +5250,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5225,7 +5258,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5234,7 +5267,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5244,7 +5277,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "Klien Email"
@@ -5259,6 +5292,45 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "It can be accessed by any user on {box_name} "
+#| "belonging to the admin group."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Itu dapat diakses oleh pengguna apa pun pada "
+"{box_name} milik kelompok admin."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5290,15 +5362,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Penyimpanan Berkas Jaringan"
@@ -5430,15 +5502,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Jelajahi web"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Pencarian Web"
@@ -5519,7 +5591,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Laporan Keamanan"
@@ -5584,12 +5656,12 @@ msgstr "Tidak"
msgid "Not running"
msgstr "Tidak berjalan"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Konfigurasi keamanan diperbarui"
@@ -5605,11 +5677,11 @@ msgstr ""
"Catatan Shaarli hanya mendukung satu akun pengguna, yang perlu Anda siapkan "
"pada kunjungan awal."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Bookmark"
@@ -5641,11 +5713,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Proksi Socks5"
@@ -5676,14 +5748,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr "Metode enkripsi. Harus mencocokkan setelan pada peladen."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Berbagi"
@@ -5731,28 +5803,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Tambah berbagi"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Tidak ada pembagian yang saat ini dikonfigurasi."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Jalur Disk"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Dibagikan"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Dengan Grup"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "akses publik"
@@ -5900,7 +5972,7 @@ msgstr "Tanggal"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Hapus Snapshot"
@@ -5948,53 +6020,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "dibuat manual"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "linimasa"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Kelola Snapshot"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Snapshot yang dibuat."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Konfigurasi snapshot penyimpanan diperbarui"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Galat {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Menghapus snapshot yang dipilih"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr "Snapshot sedang digunakan. Silakan coba lagi nanti."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "Sistem harus dimulai ulang untuk menyelesaikan rollback."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Rollback ke Snapshot"
@@ -6006,7 +6078,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Server Secure Shell (SSH)"
@@ -6051,7 +6123,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -6071,104 +6143,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Penyimpanan"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} bytes"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "Operasi gagal."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "Operasi telah dibatalkan."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Perangkat belum terpasang."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6302,16 +6374,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6331,40 +6403,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6374,37 +6446,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Aktifkan Tor"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Aktifkan Tor relay"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6412,24 +6480,24 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
#, fuzzy
#| msgid "Enable Tor relay"
msgid "Enable Tor Hidden Service"
msgstr "Aktifkan Tor relay"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6437,18 +6505,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6460,23 +6528,27 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
#, fuzzy
#| msgid "Service"
msgid "Onion Service"
msgstr "Layanan"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Port"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr ""
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Terjadi kesalahan selama konfigurasi."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Kesalahan pemasangan aplikasi: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6525,7 +6597,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -6555,15 +6627,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6585,8 +6653,8 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
#, fuzzy
@@ -6594,28 +6662,28 @@ msgstr ""
msgid "Software Update"
msgstr "URL Server diperbarui"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
#| msgid "FreedomBox"
msgid "FreedomBox Updated"
msgstr "FreedomBox"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "Pembaruan distribusi dimulai"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6701,6 +6769,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6760,39 +6829,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade disabled"
+msgid "Test Distribution Upgrade"
+msgstr "Pembaruan distribusi dinonaktifkan"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade disabled"
+msgid "Test distribution upgrade now"
+msgstr "Pembaruan distribusi dinonaktifkan"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Pembaruan distribusi dinonaktifkan"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade disabled"
+msgid "Starting distribution upgrade test."
+msgstr "Pembaruan distribusi dinonaktifkan"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6808,15 +6901,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -7405,14 +7498,14 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
#, fuzzy
#| msgid "Address"
msgid "WordPress"
msgstr "Address"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
#, fuzzy
#| msgid "Wiki and Blog"
msgid "Website and Blog"
@@ -7451,11 +7544,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7489,37 +7582,133 @@ msgstr "PPPoE"
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Kesalahan pengaturan hostname: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Galat saat pemasangan"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Kesalahan saat cadangan"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "memasang"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "mengunduh"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Instal aplikasi"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Kesalahan Pemasangan aplikasi: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Kesalahan Pemasangan aplikasi: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Kesalahan pemasangan aplikasi: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Kesalahan pemasangan aplikasi: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Aplikasi telah terpasang."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Pembaharuan Terakhir"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Instal aplikasi"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Kesalahan Pemasangan aplikasi: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Kesalahan pemasangan aplikasi: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Aplikasi telah terpasang."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Forbidden"
@@ -7563,7 +7752,7 @@ msgstr ""
msgid "Installation"
msgstr "Pemasangan"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Layanan %(service_name)s tidak berjalan."
@@ -7814,6 +8003,10 @@ msgstr "Dari port Router/WAN"
msgid "To %(box_name)s Ports"
msgstr "Ke %(box_name)s Port"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Aplikasi telah terpasang."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Pasang aplikasi ini?"
@@ -7823,58 +8016,116 @@ msgid "This application needs an update. Update now?"
msgstr "Aplikasi perlu pembaruan. Perbarui sekarang?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Penginstalan atau pemutakhiran lain sedang berjalan. Silakan tunggu beberapa "
-"saat sebelum mencoba lagi."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Aplikasi ini belum tersedia dalam distribusi Anda."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Periksa kembali"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Pasang"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Memperbarui"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Melakukan operasi pra-pemasangan"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Pasang"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Melakukan operasi pasca pemasangan"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Hapus Wiki atau Blog %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Memasang %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s %% selesai"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Bahasa Gujarat"
+#~ msgid "Network Connections"
+#~ msgstr "Koneksi Jaringan"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Aktifkan Tor"
+
+#~ msgid "Error during installation"
+#~ msgstr "Galat saat pemasangan"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "Gunakan DNSSEC pada IPv{kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Penginstalan atau pemutakhiran lain sedang berjalan. Silakan tunggu "
+#~ "beberapa saat sebelum mencoba lagi."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Melakukan operasi pra-pemasangan"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Melakukan operasi pasca pemasangan"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Memasang %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s %% selesai"
+
+#~ 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 ""
+#~ "Kokpit mengharuskan Anda mengaksesnya melalui nama domain. Itu tidak akan "
+#~ "berfungsi ketika diakses menggunakan alamat IP sebagai bagian dari URL."
+
+#~ msgid "Access"
+#~ msgstr "Mengakses"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "Kokpit hanya akan bekerja ketika diakses menggunakan URL berikut."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Server Web"
+
#~ msgid "Server URL"
#~ msgstr "URL Server"
@@ -8153,11 +8404,6 @@ msgstr "Bahasa Gujarat"
#~ msgid "Postfix domain name config"
#~ msgstr "Kesalahan pengaturan nama domain: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Terjadi kesalahan selama konfigurasi."
-
#, fuzzy
#~| msgid "Directory does not exist."
#~ msgid "User does not exist"
diff --git a/plinth/locale/it/LC_MESSAGES/django.po b/plinth/locale/it/LC_MESSAGES/django.po
index 67e7f9f40..fcf18a6a3 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2022-01-06 22:41+0000\n"
"Last-Translator: Dietmar \n"
"Language-Team: Italian any user on {box_name} "
@@ -1157,32 +1156,16 @@ msgstr ""
"È accessibile da qualsiasi utente su {box_name} "
"appartenente al gruppo admin."
-#: plinth/modules/cockpit/__init__.py:40
-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 richiede l'accesso attraverso un nome di dominio. Non funzionerà "
-"quando si accede utilizzando un indirizzo IP come parte dell'URL."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Amministrazione Server"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Accesso"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Cockpit funzionerà solo quando si accede utilizzando i seguenti URL."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1197,7 +1180,7 @@ msgstr "Configurazione Generale"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Configura"
@@ -1298,46 +1281,70 @@ msgstr ""
"Mostra le applicazioni e le funzionalità che richiedono maggiori conoscenze "
"tecniche."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Monitoring"
+msgid "System-wide logging"
+msgstr "Monitoraggio del sistema"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Errore impostazione hostname: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
#, fuzzy
msgid "Hostname set"
msgstr "Imposta hostname"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Errore impostazione nome di dominio: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
#, fuzzy
msgid "Domain name set"
msgstr "Imposta nome di dominio"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Errore impostazione home page server web: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
#, fuzzy
msgid "Webserver home page set"
msgstr "Impostato home page del webserver"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Errore nel cambio di modalità avanzata: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Visualizzazione di applicazioni e funzionalità avanzate"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Nascondere applicazioni e funzionalità avanzate"
@@ -1357,11 +1364,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1385,11 +1392,11 @@ msgstr ""
"Network time server è un programma che mantiene l'ora del sistema in "
"sincronizzazione con i server in Internet."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Data & Ora"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Tempo sincronizzato al server NTP"
@@ -1431,17 +1438,17 @@ msgstr ""
"La password di default è 'deluge', ma è consigliabile effettuare il login e "
"cambiarla subito dopo aver abilitato questo servizio."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Scarica file usando applicazioni BitTorrent"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "Web Client BitTorrent"
@@ -1464,55 +1471,55 @@ msgstr ""
"le applicazioni e i servizi stiano funzionino correttamente."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnostica"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "superato"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "fallito"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1562,7 +1569,7 @@ msgstr "Test"
msgid "Result"
msgstr "Risultato"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Test Diagnostica"
@@ -1614,11 +1621,11 @@ msgstr ""
"su URL d'aggiornamento su freedns.afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Client DNS Dinamico"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Nome Dominio Dinamico"
@@ -1747,13 +1754,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1847,12 +1855,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Server Chat"
@@ -1960,7 +1968,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2009,21 +2017,21 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "Server e-mail"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Manage Aliases"
msgid "My Email Aliases"
msgstr "Gestire gli alias"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage Aliases for Mailbox"
@@ -2059,7 +2067,7 @@ msgstr ""
msgid "Aliases"
msgstr "Alias"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2144,7 +2152,7 @@ msgstr ""
"adeguatamente configurato riduce i rischi di attacchi informatici dalla rete "
"Internet."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
@@ -2304,15 +2312,15 @@ msgstr ""
"Per saperne di più su come usare Git visita Git tutorial."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Accesso in lettura e scrittura ai repository Git"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Semplice Git Hosting"
@@ -2412,27 +2420,27 @@ msgstr "Cancellare Git Repository %(name)s"
msgid "Delete this repository permanently?"
msgstr "Cancellare questo repository in modo permanente?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Repository creato."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Si è verificato un errore durante la creazione del repository."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Repository modificato."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Modifica repository"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Documentazione"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
#, fuzzy
#| msgid "Manual"
@@ -2440,28 +2448,28 @@ msgctxt "User guide"
msgid "Manual"
msgstr "Manuale"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Richiedi assistenza"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Invia feedback"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Contribuire"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Su"
@@ -2599,6 +2607,41 @@ msgstr ""
msgid "Learn more..."
msgstr "Impara di più..."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2745,16 +2788,16 @@ msgstr ""
"Per favore rimuovi qualsiasi password o altre informazioni personali dal log "
"prima di allegarlo a questo report bug."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "FAQ e documentazione"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, fuzzy, python-brace-format
msgid "About {box_name}"
msgstr "Sul {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "Manuale {box_name}"
@@ -2789,20 +2832,20 @@ msgstr ""
"La prima visita all'interfaccia web fornita inizierà il processo di "
"configurazione."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "Gestione dell'applicazione I2P"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
#, fuzzy
msgid "Anonymity Network"
msgstr "Rete di anonimato"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "Proxy I2P"
@@ -2874,15 +2917,15 @@ msgstr ""
"\"{users_url}\">Configurazione Utente è possibile cambiare questi "
"permessi o aggiungere nuovi utenti."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki e Blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Vedi e modifica le applicazioni wiki"
@@ -2920,8 +2963,8 @@ msgstr "Cancella sito %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Aggiorna impostazioni"
@@ -2938,32 +2981,32 @@ msgstr ""
"Quest'azione cancellerà tutti i post, le pagine e i commenti, incluse le "
"revisione storiche. Cancellare questo wiki o blog permanentente?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Creato wiki {name}."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Non è stato possibile creare l'wiki: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Creato blog {name}."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Non è stato possibile creare il blog: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} cancellato."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "Non è stato possibile cancellare {title}: {error}"
@@ -2984,11 +3027,11 @@ msgstr ""
"desktop e installarlo. Dopo avviare Hobby e seleziona \"Connect to Server\" "
"e entrare nel tuo nome di dominio {box_name}."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Gobby Server"
@@ -3009,28 +3052,26 @@ msgstr ""
"Avvia Bobby e selezione \"Connect to Server\", e entra nel nome di dominio "
"del tuo {box_name}."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Web Server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3042,7 +3083,7 @@ msgstr ""
msgid "JavaScript license information"
msgstr "Informazioni sulla licenza JavaScript"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3050,11 +3091,11 @@ msgstr ""
"JSXC è un client web per XMPP. Tipicamente viene usato con un server XMPP in "
"esecuzione nella rete locale."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Client"
@@ -3219,7 +3260,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3254,8 +3295,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Configurazione"
@@ -3357,12 +3398,12 @@ msgstr ""
"Chiunque con un collegamento a questo wiki può leggerlo. Solo gli utenti "
"autenticati possono apportare modifiche ai contenuti."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3436,42 +3477,42 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Password aggiornata"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Registrazioni pubbliche abilitate"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Registrazioni pubbliche disabilitate"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
#, fuzzy
msgid "Private mode enabled"
msgstr "Modo privato abilitato"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
#, fuzzy
msgid "Private mode disabled"
msgstr "Modo privato disabilitato"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Tema predefinito modificato"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
msgid "Domain name updated"
msgstr "Imposta nome di dominio"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
msgid "Site name updated"
msgstr "Imposta nome di dominio"
@@ -3489,11 +3530,11 @@ msgstr ""
"porta predefinita (30000). Per connettersi al server, è necessario un client Minetest."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Block Sandbox"
@@ -3547,7 +3588,7 @@ msgstr ""
msgid "Address"
msgstr "Indirizzo"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3558,15 +3599,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3629,11 +3670,11 @@ msgstr ""
"64738 Sono disponibili dei client da "
"connettere a Mumble dai tuoi dispositivi desktop e android."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Voice Chat"
@@ -3681,17 +3722,17 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Upload password updated"
msgid "Join password changed"
msgstr "Password upload aggiornata"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3724,27 +3765,22 @@ msgstr "Secure Shell"
msgid "Services"
msgstr "Servizi"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Reti"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "Utilizzo DNSSEC su IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Tipo Connessione"
@@ -4296,7 +4332,7 @@ msgid "Create Connection"
msgstr "Crea Connessione"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Cancella Connessione"
@@ -4316,13 +4352,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4343,7 +4379,7 @@ msgid "Computer"
msgstr "Computer"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Modifica Concessione"
@@ -4353,13 +4389,13 @@ msgstr "Connessioni"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Reti WiFi vicine"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Aggiungi Connessione"
@@ -4542,247 +4578,243 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "disabilitato"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "automatica"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "manuale"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "condiviso"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "disattiva"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "Client DHCP fallito"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "dispositivo è stato rimosso"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "infrastruttura"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Connessione di rete"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Non è possibile mostrare la connessione: Connessione non trovata."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Informazioni Connessione"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Impossibile modificare la connessione: connessione non trovata."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Questo tipo di connessione non è ancora riconosciuto."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "Attivata connessione {name}."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Attivazione connessione fallita: connessione non trovata."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"Attivazione connessione {name} fallita: non è disponibile nessun dispositivo "
"idoneo."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Disattivata connessione {name}."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Disattivazione connessione fallita: connessione non trovata."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Aggiungendo Nuova Connessione Generica"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Aggiungendo Nuova Connessione Ethernet"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Aggiungendo Nuova Connessione PPPoE"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Aggiungendo Nuova Connessione WiFi"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Connessione {name} cancellata."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Cancellazione connessione fallita: connessione non trovata."
@@ -4803,20 +4835,20 @@ msgstr ""
"accedere al resto della rete Internet via {box_name} per una maggiore "
"sicurezza e anonimità."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Rete virtuale privata"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4945,15 +4977,15 @@ msgstr ""
"futuro potrebbe essere possibile usare la {box_name} del tuo amico per "
"questo."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Visibilità Pubblica"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "Dominio PageKite"
@@ -5067,29 +5099,29 @@ msgstr ""
"Per esempio, è noto che HTTPS, in porte diverse dalla 443, può causare "
"problemi."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Server Web (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "Il sito sarà disponibile su http{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Server Web (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "Il sito sarà disponibile au HTTPS://{0}{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Secure Shell (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5098,7 +5130,7 @@ msgstr ""
"\">istruzioni della configurazione del client SSH"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -5115,7 +5147,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Monitoraggio del sistema"
@@ -5200,12 +5232,19 @@ msgstr ""
"spazzatura dell'Internet. "
#: plinth/modules/privoxy/__init__.py:28
-#, python-brace-format
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "You can use Privoxy by modifying your browser proxy settings to your "
+#| "{box_name} hostname (or IP address) with port 8118. While using Privoxy, "
+#| "you can see its configuration details and documentation at http://config.privoxy.org/ or http://p.p."
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Puoi usare Privoxy modificando le impostazioni proxy del tuo browser, "
@@ -5214,15 +5253,15 @@ msgstr ""
"documentazione su http://config."
"Privoxy.org/ o http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Web Proxy"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Accesso {url} con proxy {proxy} su tcp{kind}"
@@ -5256,11 +5295,11 @@ msgstr ""
"org/downloads\">desktop e mobile."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "Client IRC"
@@ -5290,12 +5329,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Calendario e Rubrica"
@@ -5367,7 +5406,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5375,7 +5414,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5384,7 +5423,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5394,7 +5433,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -5409,6 +5448,45 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Una volta attivato, Tiny Tiny RSS può essere visualizzato da qualsiasi utente con un account su {box_name}."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5440,15 +5518,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Stoccaggio dei file di rete"
@@ -5568,15 +5646,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5657,7 +5735,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Rapporto sulla sicurezza"
@@ -5722,12 +5800,12 @@ msgstr "No"
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5741,11 +5819,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5777,11 +5855,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5810,14 +5888,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5865,28 +5943,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -6026,7 +6104,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -6074,54 +6152,54 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "creato manualmente"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
#, fuzzy
msgid "Deleted selected snapshots"
msgstr "Istantanee selezionate cancellate"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -6133,7 +6211,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -6174,7 +6252,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -6194,105 +6272,105 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
#, fuzzy
msgid "The device is already unmounting."
msgstr "Il dispositivo sta già smontando."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Il dispositivo è già montato."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6426,16 +6504,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6455,40 +6533,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6498,37 +6576,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6536,22 +6610,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Abilita Tor Hidden Service"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6559,18 +6633,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6582,21 +6656,25 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Servizio Onion"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Ports"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Impostazioni invariate"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Si è verificato un errore durante la configurazione."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Errore durante l'installazione dell'applicazione: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6645,7 +6723,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -6675,15 +6753,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6704,33 +6778,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Aggiornamento software"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox aggiornato"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6811,6 +6885,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6866,39 +6941,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6914,15 +7007,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -7487,12 +7580,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "Sito web e blog"
@@ -7527,11 +7620,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7565,37 +7658,134 @@ msgstr "PPPoE"
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Errore impostazione hostname: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, fuzzy, python-brace-format
+#| msgid "Service disabled: {name}"
+msgid "Finished: {name}"
+msgstr "Servizio disabilitato: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr ""
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Errore durante il backup"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Installa App"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Errore installazione applicazione: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Errore installazione applicazione: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Errore durante l'installazione dell'applicazione: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Errore durante l'installazione dell'applicazione: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Applicazione installata."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Ultimo aggiornamento"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Installa App"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Errore installazione applicazione: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Errore durante l'installazione dell'applicazione: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Applicazione installata."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7643,7 +7833,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7890,6 +8080,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr "Alle porte %(box_name)s"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Applicazione installata."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7899,56 +8093,94 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Application installed."
+msgid "Uninstall"
+msgstr "Applicazione installata."
+
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Modifica utente %(username)s"
+
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
msgstr ""
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr ""
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Impostazioni invariate"
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% completata"
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#~ msgid "Network Connections"
+#~ msgstr "Connessione di rete"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "Utilizzo DNSSEC su IPv{kind}"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% completata"
+
+#~ 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 richiede l'accesso attraverso un nome di dominio. Non funzionerà "
+#~ "quando si accede utilizzando un indirizzo IP come parte dell'URL."
+
+#~ msgid "Access"
+#~ msgstr "Accesso"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr ""
+#~ "Cockpit funzionerà solo quando si accede utilizzando i seguenti URL."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Web Server"
+
#~ msgid "Server URL updated"
#~ msgstr "URL del server aggiornato"
@@ -8268,11 +8500,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Configurazione del nome di dominio di Postfix"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Si è verificato un errore durante la configurazione."
-
#~ msgid "Disable selected"
#~ msgstr "Disattivare selezionato"
@@ -8665,9 +8892,6 @@ msgstr "Gujarati"
#~ msgid "Service enabled: {name}"
#~ msgstr "Servizio abilitato: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Servizio disabilitato: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "Profilo PageKite"
diff --git a/plinth/locale/ja/LC_MESSAGES/django.po b/plinth/locale/ja/LC_MESSAGES/django.po
index 4534c4def..d6c9f23fe 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-05-20 12:32+0000\n"
"Last-Translator: Jacque Fresco \n"
"Language-Team: Japanese any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1115,7 +1098,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr ""
@@ -1193,43 +1176,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1249,11 +1254,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1275,11 +1280,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1316,17 +1321,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1345,55 +1350,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1440,7 +1445,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1471,11 +1476,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1585,13 +1590,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1663,12 +1669,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1761,7 +1767,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1806,19 +1812,19 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr ""
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1852,7 +1858,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -1933,7 +1939,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2070,15 +2076,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2174,54 +2180,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr ""
@@ -2324,6 +2330,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2430,16 +2471,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2464,19 +2505,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2529,15 +2570,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2575,8 +2616,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2591,32 +2632,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2633,11 +2674,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2656,25 +2697,25 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
msgstr ""
#: plinth/modules/janus/manifest.py:7
@@ -2687,17 +2728,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2841,7 +2882,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2873,8 +2914,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -2945,12 +2986,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3011,39 +3052,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr ""
@@ -3056,11 +3097,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3105,7 +3146,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3116,15 +3157,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3177,11 +3218,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3223,15 +3264,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3264,27 +3305,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3804,7 +3840,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3824,13 +3860,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3851,7 +3887,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3861,13 +3897,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4050,245 +4086,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4303,20 +4335,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4424,15 +4456,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4538,36 +4570,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4584,7 +4616,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4656,21 +4688,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4694,11 +4727,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4723,12 +4756,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4791,7 +4824,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4799,7 +4832,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4808,7 +4841,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4818,7 +4851,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4833,6 +4866,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4864,15 +4931,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -4992,15 +5059,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5081,7 +5148,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5146,12 +5213,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5165,11 +5232,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5199,11 +5266,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5232,14 +5299,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5287,28 +5354,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5448,7 +5515,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5496,53 +5563,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5554,7 +5621,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5595,7 +5662,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5615,104 +5682,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5846,16 +5913,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5875,40 +5942,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -5918,37 +5985,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -5956,22 +6019,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -5979,18 +6042,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6002,20 +6065,21 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
+#: plinth/modules/tor/views.py:55
+msgid "Updating configuration"
+msgstr ""
+
+#: plinth/modules/tor/views.py:72
+#, python-brace-format
+msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/transmission/__init__.py:23
@@ -6060,7 +6124,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6085,15 +6149,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6114,33 +6174,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6218,6 +6278,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6273,39 +6334,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6321,15 +6400,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -6894,12 +6973,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -6934,11 +7013,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -6972,37 +7051,114 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr ""
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr ""
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr ""
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr ""
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+msgid "Uninstalling app"
+msgstr ""
+
+#: plinth/setup.py:122
+#, python-brace-format
+msgid "Error uninstalling app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:128
+#, python-brace-format
+msgid "Error uninstalling app: {error}"
+msgstr ""
+
+#: plinth/setup.py:131
+msgid "App uninstalled."
+msgstr ""
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7045,7 +7201,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7288,6 +7444,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr ""
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7297,50 +7457,55 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+msgid "Uninstall"
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
diff --git a/plinth/locale/kn/LC_MESSAGES/django.po b/plinth/locale/kn/LC_MESSAGES/django.po
index ea6100156..4379f5c43 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2020-07-16 16:41+0000\n"
"Last-Translator: Yogesh \n"
"Language-Team: Kannada any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1115,7 +1098,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr ""
@@ -1193,43 +1176,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1249,11 +1254,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1275,11 +1280,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1316,17 +1321,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1345,55 +1350,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1440,7 +1445,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1471,11 +1476,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1585,13 +1590,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1663,12 +1669,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1761,7 +1767,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1806,19 +1812,19 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr ""
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1852,7 +1858,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -1933,7 +1939,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2070,15 +2076,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2174,54 +2180,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "ಬಗ್ಗೆ"
@@ -2324,6 +2330,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2430,16 +2471,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2464,19 +2505,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2529,15 +2570,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2575,8 +2616,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2591,32 +2632,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2633,11 +2674,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2656,25 +2697,25 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
msgstr ""
#: plinth/modules/janus/manifest.py:7
@@ -2687,17 +2728,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2841,7 +2882,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2873,8 +2914,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -2945,12 +2986,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3011,39 +3052,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr ""
@@ -3056,11 +3097,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3105,7 +3146,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3116,15 +3157,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3177,11 +3218,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3223,15 +3264,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3264,27 +3305,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3804,7 +3840,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3824,13 +3860,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3851,7 +3887,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3861,13 +3897,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4050,245 +4086,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4303,20 +4335,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4424,15 +4456,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4538,36 +4570,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4584,7 +4616,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4656,21 +4688,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4694,11 +4727,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4723,12 +4756,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4791,7 +4824,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4799,7 +4832,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4808,7 +4841,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4818,7 +4851,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4833,6 +4866,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4864,15 +4931,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -4994,15 +5061,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5083,7 +5150,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5148,12 +5215,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5167,11 +5234,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5201,11 +5268,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5234,14 +5301,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5289,28 +5356,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5498,53 +5565,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5556,7 +5623,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5597,7 +5664,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5617,104 +5684,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5848,16 +5915,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5877,40 +5944,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -5920,37 +5987,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -5958,22 +6021,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -5981,18 +6044,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6004,20 +6067,21 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
+#: plinth/modules/tor/views.py:55
+msgid "Updating configuration"
+msgstr ""
+
+#: plinth/modules/tor/views.py:72
+#, python-brace-format
+msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/transmission/__init__.py:23
@@ -6062,7 +6126,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6087,15 +6151,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6116,33 +6176,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6220,6 +6280,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6275,39 +6336,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6323,15 +6402,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -6896,12 +6975,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -6936,11 +7015,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -6974,37 +7053,114 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr ""
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr ""
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr ""
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr ""
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+msgid "Uninstalling app"
+msgstr ""
+
+#: plinth/setup.py:122
+#, python-brace-format
+msgid "Error uninstalling app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:128
+#, python-brace-format
+msgid "Error uninstalling app: {error}"
+msgstr ""
+
+#: plinth/setup.py:131
+msgid "App uninstalled."
+msgstr ""
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7047,7 +7203,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7290,6 +7446,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr ""
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7299,50 +7459,55 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+msgid "Uninstall"
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
diff --git a/plinth/locale/lt/LC_MESSAGES/django.po b/plinth/locale/lt/LC_MESSAGES/django.po
index b085c2ad5..c18986e27 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-02-22 10:50+0000\n"
"Last-Translator: Kornelijus Tvarijanavičius \n"
"Language-Team: Lithuanian any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1116,7 +1099,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr ""
@@ -1194,43 +1177,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1250,11 +1255,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1276,11 +1281,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1317,17 +1322,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1346,55 +1351,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1441,7 +1446,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1472,11 +1477,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1586,13 +1591,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1664,12 +1670,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1762,7 +1768,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1807,19 +1813,19 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr ""
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1853,7 +1859,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -1934,7 +1940,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2071,15 +2077,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2175,54 +2181,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Apie"
@@ -2325,6 +2331,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2431,16 +2472,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2465,19 +2506,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2530,15 +2571,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2576,8 +2617,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2592,32 +2633,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2634,11 +2675,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2657,25 +2698,25 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
msgstr ""
#: plinth/modules/janus/manifest.py:7
@@ -2688,17 +2729,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2842,7 +2883,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2874,8 +2915,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -2946,12 +2987,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3012,39 +3053,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr ""
@@ -3057,11 +3098,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3106,7 +3147,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3117,15 +3158,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3178,11 +3219,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3224,15 +3265,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3265,27 +3306,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3805,7 +3841,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3825,13 +3861,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3852,7 +3888,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3862,13 +3898,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4051,245 +4087,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4304,20 +4336,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4425,15 +4457,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4539,36 +4571,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4585,7 +4617,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4657,21 +4689,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4695,11 +4728,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4724,12 +4757,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4792,7 +4825,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4800,7 +4833,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4809,7 +4842,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4819,7 +4852,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4834,6 +4867,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4865,15 +4932,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -4993,15 +5060,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5082,7 +5149,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5147,12 +5214,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5166,11 +5233,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5200,11 +5267,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5233,14 +5300,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5288,28 +5355,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5449,7 +5516,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5497,53 +5564,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5555,7 +5622,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5596,7 +5663,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5616,104 +5683,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5847,16 +5914,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5876,40 +5943,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -5919,37 +5986,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -5957,22 +6020,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -5980,18 +6043,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6003,20 +6066,21 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
+#: plinth/modules/tor/views.py:55
+msgid "Updating configuration"
+msgstr ""
+
+#: plinth/modules/tor/views.py:72
+#, python-brace-format
+msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/transmission/__init__.py:23
@@ -6061,7 +6125,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6086,15 +6150,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6115,33 +6175,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6219,6 +6279,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6274,39 +6335,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6322,15 +6401,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -6895,12 +6974,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -6935,11 +7014,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -6973,37 +7052,114 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr ""
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr ""
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr ""
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr ""
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+msgid "Uninstalling app"
+msgstr ""
+
+#: plinth/setup.py:122
+#, python-brace-format
+msgid "Error uninstalling app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:128
+#, python-brace-format
+msgid "Error uninstalling app: {error}"
+msgstr ""
+
+#: plinth/setup.py:131
+msgid "App uninstalled."
+msgstr ""
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7046,7 +7202,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7289,6 +7445,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr ""
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7298,50 +7458,55 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+msgid "Uninstall"
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
diff --git a/plinth/locale/lv/LC_MESSAGES/django.po b/plinth/locale/lv/LC_MESSAGES/django.po
index 1763bc15a..44959840d 100644
--- a/plinth/locale/lv/LC_MESSAGES/django.po
+++ b/plinth/locale/lv/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -20,7 +20,7 @@ msgstr ""
msgid "Page source"
msgstr ""
-#: plinth/context_processors.py:23 plinth/views.py:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr ""
@@ -50,62 +50,60 @@ msgid "Cannot connect to {host}:{port}"
msgstr ""
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+msgid "Repository to backup to"
+msgstr ""
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr ""
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
msgstr ""
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr ""
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
"least one domain with certificates."
msgstr ""
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr ""
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr ""
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr ""
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr ""
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr ""
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr ""
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr ""
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr ""
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr ""
@@ -131,11 +129,11 @@ msgid ""
"network."
msgstr ""
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr ""
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr ""
@@ -143,36 +141,36 @@ msgstr ""
msgid "Backups allows creating and managing backup archives."
msgstr ""
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr ""
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
msgstr ""
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr ""
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr ""
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
"succeed. The latest error is: {error_message}"
msgstr ""
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr ""
@@ -247,7 +245,7 @@ msgstr ""
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr ""
@@ -404,7 +402,7 @@ msgid "{box_name} storage"
msgstr ""
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr ""
@@ -453,7 +451,7 @@ msgid "Create Location"
msgstr ""
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr ""
@@ -509,7 +507,7 @@ msgstr ""
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr ""
@@ -593,99 +591,99 @@ msgstr ""
msgid "Verify Host"
msgstr ""
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr ""
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr ""
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr ""
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr ""
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr ""
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr ""
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr ""
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr ""
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr ""
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr ""
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr ""
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr ""
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr ""
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr ""
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr ""
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr ""
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr ""
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr ""
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr ""
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr ""
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr ""
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr ""
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr ""
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr ""
@@ -713,39 +711,39 @@ msgid ""
"the list."
msgstr ""
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr ""
@@ -836,16 +834,15 @@ msgstr ""
msgid "Admin"
msgstr ""
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr ""
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr ""
@@ -875,11 +872,11 @@ msgid ""
"connection from {box_name}."
msgstr ""
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr ""
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr ""
@@ -931,12 +928,12 @@ msgstr ""
msgid "Refresh IP address and domains"
msgstr ""
-#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
-#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -966,15 +963,15 @@ msgid ""
"app. All users with access can use all the libraries."
msgstr ""
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr ""
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr ""
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr ""
@@ -1034,25 +1031,25 @@ msgstr ""
msgid "Delete library %(library)s"
msgstr ""
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr ""
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr ""
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr ""
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1061,7 +1058,7 @@ msgid ""
"console operations is also available."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1069,37 +1066,23 @@ msgid ""
"management."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1112,7 +1095,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr ""
@@ -1190,43 +1173,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1246,11 +1251,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1272,11 +1277,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1313,17 +1318,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1342,55 +1347,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1437,7 +1442,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1468,11 +1473,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1582,13 +1587,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1660,12 +1666,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1758,7 +1764,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1803,19 +1809,19 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr ""
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1849,7 +1855,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -1930,7 +1936,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2067,15 +2073,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2171,54 +2177,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr ""
@@ -2321,6 +2327,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2427,16 +2468,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2461,19 +2502,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2526,15 +2567,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2572,8 +2613,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2588,32 +2629,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2630,11 +2671,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2653,25 +2694,25 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
msgstr ""
#: plinth/modules/janus/manifest.py:7
@@ -2684,17 +2725,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2838,7 +2879,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2870,8 +2911,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -2942,12 +2983,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3008,39 +3049,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr ""
@@ -3053,11 +3094,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3102,7 +3143,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3113,15 +3154,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3174,11 +3215,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3220,15 +3261,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3261,27 +3302,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3801,7 +3837,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3821,13 +3857,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3848,7 +3884,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3858,13 +3894,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4047,245 +4083,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4300,20 +4332,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4421,15 +4453,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4535,36 +4567,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4581,7 +4613,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4653,21 +4685,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4691,11 +4724,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4720,12 +4753,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4788,7 +4821,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4796,7 +4829,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4805,7 +4838,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4815,7 +4848,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4830,6 +4863,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4861,15 +4928,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -4989,15 +5056,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5078,7 +5145,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5143,12 +5210,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5162,11 +5229,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5196,11 +5263,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5229,14 +5296,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5284,28 +5351,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5445,7 +5512,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5493,53 +5560,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5551,7 +5618,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5592,7 +5659,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5612,104 +5679,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5843,16 +5910,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5872,40 +5939,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -5915,37 +5982,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -5953,22 +6016,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -5976,18 +6039,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -5999,20 +6062,21 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
+#: plinth/modules/tor/views.py:55
+msgid "Updating configuration"
+msgstr ""
+
+#: plinth/modules/tor/views.py:72
+#, python-brace-format
+msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/transmission/__init__.py:23
@@ -6057,7 +6121,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6082,15 +6146,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6111,33 +6171,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6215,6 +6275,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6270,39 +6331,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6318,15 +6397,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -6891,12 +6970,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -6931,11 +7010,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -6969,37 +7048,114 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr ""
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr ""
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr ""
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr ""
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+msgid "Uninstalling app"
+msgstr ""
+
+#: plinth/setup.py:122
+#, python-brace-format
+msgid "Error uninstalling app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:128
+#, python-brace-format
+msgid "Error uninstalling app: {error}"
+msgstr ""
+
+#: plinth/setup.py:131
+msgid "App uninstalled."
+msgstr ""
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7042,7 +7198,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7285,6 +7441,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr ""
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7294,50 +7454,55 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+msgid "Uninstall"
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
diff --git a/plinth/locale/nb/LC_MESSAGES/django.po b/plinth/locale/nb/LC_MESSAGES/django.po
index 8923da944..9ea70bd9f 100644
--- a/plinth/locale/nb/LC_MESSAGES/django.po
+++ b/plinth/locale/nb/LC_MESSAGES/django.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2022-05-16 14:14+0000\n"
"Last-Translator: Petter Reinholdtsen \n"
"Language-Team: Norwegian Bokmål calibre-gruppen vil ha tilgang til "
"programmet. Alle brukere med tilgang kan bruke alle bibliotekene."
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "Bruk calibre ebokbibliotek"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "E-bok-bibliotek"
@@ -1142,27 +1141,27 @@ msgstr "Gå til biblioteket %(library)s"
msgid "Delete library %(library)s"
msgstr "Slett biblioteket %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "Bibliotek opprettet."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "An error occurred while creating the library."
msgstr "En feil oppsto under konfigureringen."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "Slettet {name}."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "Kunne ikke slette {name}: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1175,7 +1174,7 @@ msgstr ""
"mange avanserte funksjoner som ikke kreves normalt. En nettbasert terminal "
"for konsolloperasjoner er også tilgjengelig."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1187,7 +1186,7 @@ msgstr ""
"tilpassede brannmursporter og avansert nettverksoppsett som bonding, "
"bridging og VLAN-administrasjon."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1196,34 +1195,16 @@ msgstr ""
"Den kan brukes av enhver bruker på {box_name} "
"som er medlem i admin-gruppen."
-#: plinth/modules/cockpit/__init__.py:40
-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 krever at du når det gjennom et domenenavn. Det fungerer ikke når "
-"det nås ved bruk av en IP-adresse, eller som del av nettadressen."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Styrhus"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Tjeneradministrasjon"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-#, fuzzy
-#| msgid "Access Point"
-msgid "Access"
-msgstr "Aksesspunkt"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Cockpit fungerer kun når det nås fra følgende nettadresser."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1238,7 +1219,7 @@ msgstr "Generelt oppsett"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Oppsett"
@@ -1331,43 +1312,67 @@ msgstr "Vis avanserte programmer og funksjoner"
msgid "Show apps and features that require more technical knowledge."
msgstr "Vis programmer og funksjoner som krever dypere teknisk innsikt."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Configuration"
+msgid "System-wide logging"
+msgstr "Systemoppsett"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Feil ved setting av vertsnavn: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Vertsnavn satt"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Feil ved innstilling/setting av domenenavn: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Domenenavn satt"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Feil ved setting av nettstedets hjemmeside: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Webtjenerforside satt"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Feil ved bytte til avansert modus: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Viser avanserte programmer og funksjoner"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Viser ikke avanserte programmer og funksjoner"
@@ -1394,11 +1399,11 @@ msgstr ""
"\"{ms_url}\">Matrix Synapse eller ejabberd må "
"settes opp med detaljene herfra."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "VoIP-hjelper"
@@ -1424,11 +1429,11 @@ msgstr ""
"Nettverkstidstjeneren er et program som synkroniserer systemets klokke med "
"tjenere på Internettet."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Dato og tid"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Tid synkronisert til NTP-tjener"
@@ -1469,17 +1474,17 @@ msgstr ""
"Standardpassordet er «deluge», men du bør logge inn og endre det umiddelbart "
"etter at denne tjenesten er aktivert."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Last ned filer ved bruk av BitTorrent-programmer"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "BitTorrent nett-klient"
@@ -1500,59 +1505,59 @@ msgstr ""
"bekreftet at programmer og tjenester fungerer som forventet."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnostikk"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
#, fuzzy
#| msgid "Quassel"
msgid "passed"
msgstr "Quassel"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "feilet"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "feil"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
#, fuzzy
#| msgid "Git"
msgid "GiB"
msgstr "Git"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr "Du bør skru av noen programmer for å redusere minnebruken."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Du bør ikke installere noen nye programmer på dette systemet."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Lite minne"
@@ -1604,7 +1609,7 @@ msgstr "Test"
msgid "Result"
msgstr "Resultat"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Diagnostikktest"
@@ -1656,11 +1661,11 @@ msgstr ""
"baserte oppdateringstjenester her freedns.afraid.org ."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Dynamisk DNS-klient"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Dynamisk domenenavn"
@@ -1794,13 +1799,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1893,12 +1899,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Nettprat-tjener"
@@ -2005,7 +2011,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2053,23 +2059,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Chat Server"
msgid "Email Server"
msgstr "Nettprat-tjener"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Manage Libraries"
msgid "My Email Aliases"
msgstr "Håndter biblioteker"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage Aliases for Mailbox"
@@ -2109,7 +2115,7 @@ msgstr ""
msgid "Aliases"
msgstr "Håndter biblioteker"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2201,7 +2207,7 @@ msgstr ""
"utgående nettverkstrafikk på din {box_name}. Å holde en brannmur aktivert og "
"riktig konfigurert, reduserer risikoen for sikkerhetstrusler fra Internett."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Brannmur"
@@ -2361,16 +2367,16 @@ msgstr ""
"For å lære mer om bruk av Git, besøk Git-veiledningen."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
#, fuzzy
msgid "Read-write access to Git repositories"
msgstr "Lese- og skrivetilgang til Git-kodelagre"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Enkelt Git-vertsskap"
@@ -2482,29 +2488,29 @@ msgstr "Slett Git-kodelager %(name)s"
msgid "Delete this repository permanently?"
msgstr "Slett dette kodelageret for godt?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Kodelager opprettet."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
#, fuzzy
#| msgid "An error occurred during configuration."
msgid "An error occurred while creating the repository."
msgstr "En feil oppsto under konfigureringen."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Kodelager redigert.."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Rediger kodelager"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Dokumentasjon"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
#, fuzzy
#| msgid "Manual"
@@ -2512,28 +2518,28 @@ msgctxt "User guide"
msgid "Manual"
msgstr "Manual"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Få støtte"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Send inn tilbakemeldinger"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Bidra"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Om"
@@ -2668,6 +2674,41 @@ msgstr ""
msgid "Learn more..."
msgstr "Lær mer…"
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2814,16 +2855,16 @@ msgstr ""
"Alle passord og annen personlig informasjon bør fjernes fra loggen før du "
"sender inn feilrapporten."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Dokumentasjon og ofte stilte spørsmål"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "Om {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "{box_name} Manual"
@@ -2856,19 +2897,19 @@ msgstr ""
"Den første til å besøke det oppsatte nettgrensesnittet vil igangsette "
"oppsettsprosessen."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "Håndter I2P-program"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Anonymitetsnettverk"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "I2P-mellomtjener"
@@ -2943,15 +2984,15 @@ msgstr ""
"\"{users_url}\">brukeroppsettet kan du endre disse tilgangene eller "
"legge til nye brukere."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki og Blogg"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Vis og rediger wiki-programmer"
@@ -2989,8 +3030,8 @@ msgstr "Slett nettstedet %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Oppdater oppsett"
@@ -3007,32 +3048,32 @@ msgstr ""
"Denne handlingen vil fjerne alle poster, sider og kommentarer inkludert "
"revisjonshistorien. Skal denne wiki-en eller bloggen slettes for godt?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Opprettet wiki {name}."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Kunne ikke opprette wiki: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Opprettet blogg {name}."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Kunne ikke lage blogg: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} slettet."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "Kunne ikke slette {title}: {error}"
@@ -3052,11 +3093,11 @@ msgstr ""
"skrivebordsklient og installer den. Deretter starter du Gobby og velger "
"«Koble til tjener», og skriver inn domenenavnet til din {box_name} ."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Gobby-tjener"
@@ -3077,28 +3118,26 @@ msgstr ""
"Start Gobby og velge «Koble til tjener», og skriver inn domenenavnet til din "
"{box_name}."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Nett-tjener"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3110,7 +3149,7 @@ msgstr ""
msgid "JavaScript license information"
msgstr "JavaScript lisensinformasjon"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3118,11 +3157,11 @@ msgstr ""
"JSXC er en nettleserklient for XMPP. Typisk brukes den med en XMPP-tjener "
"som kjører lokalt."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Nettpratklient"
@@ -3285,7 +3324,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3320,8 +3359,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Oppsett"
@@ -3422,12 +3461,12 @@ msgstr ""
"Alle med en lenke til denne wiki-en kan lese den. Kun innloggede brukere kan "
"endre innholdet."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3502,41 +3541,41 @@ msgstr ""
"Velg forvalgsdrakt for din MediaWiki-installasjon. Brukere kan velge egen "
"drakt."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Passord oppdatert"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr "Passordoppdatering feilet. Vennligst bruk ett sterkere passord"
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Offentlig registrering aktivert"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Offentlig registrering avskrudd"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Privat modus påskrudd"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Privat modus avskrudd"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Forvalgt drakt endret"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "Domenenavn satt"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3555,11 +3594,11 @@ msgstr ""
"porten (30000). For å koble til tjeneren trengs en Minetest-klient."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Block-sandkassen"
@@ -3609,7 +3648,7 @@ msgstr ""
msgid "Address"
msgstr "Adresse"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3627,15 +3666,15 @@ msgstr ""
"smartelefoner, fjernsynsapparater, og spillkonsoller (som PS3 og Xbox 360) "
"eller programmer som totem og Kodi."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Media-strømmetjener"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
#, fuzzy
msgid "Simple Media Server"
msgstr "Enkel mediatjener"
@@ -3703,11 +3742,11 @@ msgstr ""
"\"http://mumble.info\">Klienter for å koble til Mumble når skrivebordet "
"og/eller Android-enheter er tilgjengelige."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Talenettprat"
@@ -3760,19 +3799,19 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
#, fuzzy
#| msgid "Password changed successfully."
msgid "SuperUser password successfully updated."
msgstr "Vellykket passordbytte."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Upload password updated"
msgid "Join password changed"
msgstr "Oppdaterte opplastingspassord"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3817,7 +3856,7 @@ msgstr "Secure Shell (SSH)"
msgid "Services"
msgstr "Tjeneste"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3825,7 +3864,7 @@ msgstr ""
"Sett opp nettverksenheter. Sett opp Internett via Ethernet, Wi-Fi eller "
"PPPoE. Del den tilkoblingen med andre enheter på nettverket."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3833,15 +3872,10 @@ msgstr ""
"Enheter administrert gjennom andre metoder kan være utilgjengelige for "
"oppsett her."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Nettverk"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "Bruker DNSSEC på IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Oppkoblingstype"
@@ -4405,7 +4439,7 @@ msgid "Create Connection"
msgstr "Lage forbindelse"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Slett tilkobling"
@@ -4425,13 +4459,13 @@ msgstr "Lage mellomrom"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4452,7 +4486,7 @@ msgid "Computer"
msgstr "Datamaskin"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Endre oppkobling"
@@ -4464,13 +4498,13 @@ msgstr "Tilkobling"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Wi-Fi-nettverk i nærheten"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Legg til tilkobling"
@@ -4673,289 +4707,285 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
#, fuzzy
#| msgid "Disabled"
msgid "disabled"
msgstr "Deaktivert"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
#, fuzzy
#| msgid "Automatic"
msgid "automatic"
msgstr "Automatisk"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
#, fuzzy
#| msgid "Manual"
msgid "manual"
msgstr "Manual"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
#, fuzzy
#| msgid "Shared"
msgid "shared"
msgstr "Delt"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "ukjent"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
#, fuzzy
#| msgid "Manage"
msgid "unmanaged"
msgstr "Håndtere"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
#, fuzzy
#| msgid "Available Domains"
msgid "unavailable"
msgstr "Tilgjengelige domener"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
#, fuzzy
#| msgid "cable is connected"
msgid "disconnected"
msgstr "kabel er tilknyttet"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
#, fuzzy
#| msgid "Sharing"
msgid "preparing"
msgstr "Deling"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
#, fuzzy
#| msgid "Connection"
msgid "connecting"
msgstr "Tilkobling"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
#, fuzzy
#| msgid "Use HTTP basic authentication"
msgid "needs authentication"
msgstr "Bruk HTTP-basisgodkjenning"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "sjekker"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
#, fuzzy
#| msgid "Deactivate"
msgid "activated"
msgstr "Deaktivere"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
#, fuzzy
#| msgid "Deactivate"
msgid "deactivating"
msgstr "Deaktivere"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
#, fuzzy
#| msgid "State reason"
msgid "no reason"
msgstr "Grunn til tilstand"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "Enheten er nå håndtert"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "Enheten er nå ikke håndtert"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
#, fuzzy
#| msgid "configuration file: {file}"
msgid "configuration failed"
msgstr "oppsettsfil: {file}"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "DHCP-klientfeil"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "DHCP-klient feilet"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "delt forbindelsestjeneste feilet"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "enhet ble fjernet"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "enhet frakoblet av bruker"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
#, fuzzy
#| msgid "Client not found"
msgid "Wi-Fi network not found"
msgstr "Finner ikke klient"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
#, fuzzy
#| msgid "Generic"
msgid "generic"
msgstr "Generisk"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
#, fuzzy
#| msgid "Network Interface"
msgid "TUN or TAP interface"
msgstr "Nettverksgrensesnitt"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
#, fuzzy
#| msgid "Ad-hoc"
msgid "ad-hoc"
msgstr "Ad-hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
#, fuzzy
#| msgid "Infrastructure"
msgid "infrastructure"
msgstr "Infrastruktur"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
#, fuzzy
#| msgid "Access Point"
msgid "access point"
msgstr "Aksesspunkt"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
#, fuzzy
#| msgid "Access Point"
msgid "mesh point"
msgstr "Aksesspunkt"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Nettverksoppkoblinger"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Kan ikke vise tilkobling: Tilkobling ikke funnet."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Oppkoblingsinformasjon"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Kan ikke redigere tilkobling: Tilkobling ikke funnet."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Denne typen tilkobling er ennå ikke forstått."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "Aktiverte tilkobling {name}."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Kunne ikke aktivere tilkobling: Tilkobling ikke funnet."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"Klarte ikke aktivere tilkoblingen {name}: Ingen passende enhet er "
"tilgjengelig."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Deaktivert tilkobling {name}."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Kunne ikke deaktivere tilkobling: Tilkobling ikke funnet."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Legger til ny generell tilkobling"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Legge til ny Ethernet-tilkobling"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Legge til ny PPPoE-tilkobling"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Legge til ny Wi-Fi-tilkobling"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Tilkobling {name} slettet."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Kunne ikke slette tilkobling: Tilkobling ikke funnet."
@@ -4976,22 +5006,22 @@ msgstr ""
"Du kan også få tilgang til resten av Internettet via {box_name} med utvidet "
"sikkerhet og anonymitet."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
#, fuzzy
#| msgid "Connection Type"
msgid "Connect to VPN services"
msgstr "Oppkoblingstype"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Virtuelt privat nettverk"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5127,15 +5157,15 @@ msgstr ""
"\"https://pagekite.net\">pagekite.net. I fremtiden kan det bli mulig å "
"bruke kameratens {box_name} til dette."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Offentlig synlighet"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "PageKite-domene"
@@ -5258,31 +5288,31 @@ msgstr ""
"alle protokoll-/portkombinasjoner som du kan definere her. For eksempel, "
"HTTPS på andre ting enn 443 er kjent for å forårsake problemer."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Web-tjener (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
"Nettstedet vil være tilgjengelig på http://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Web-tjener (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
"Nettstedet vil bli tilgjengelig på https://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Secure Shell (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5291,7 +5321,7 @@ msgstr ""
"SshOverPageKite/\">instructions (instruksjoner)"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Ytelse"
@@ -5308,7 +5338,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
#, fuzzy
#| msgid "System Configuration"
msgid "System Monitoring"
@@ -5395,12 +5425,19 @@ msgstr ""
"Internett-søppel. "
#: plinth/modules/privoxy/__init__.py:28
-#, python-brace-format
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "You can use Privoxy by modifying your browser proxy settings to your "
+#| "{box_name} hostname (or IP address) with port 8118. While using Privoxy, "
+#| "you can see its configuration details and documentation at http://config.privoxy.org/ or http://p.p."
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Du kan bruke Privoxy ved å endre nettleserens mellomlagerinnstillinger til "
@@ -5409,15 +5446,15 @@ msgstr ""
"\"http://config.privoxy.org\">http://config.privoxy.org/ eller http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Mellomtjener for nettet"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Tilgang {url} med mellomtjener {proxy} på tcp{kind}"
@@ -5451,11 +5488,11 @@ msgstr ""
"downloads\"> desktop , og mobile enheter er tilgjengelig."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "IRC-klient"
@@ -5492,12 +5529,12 @@ msgstr ""
"kalendre og adressebøker. Den tilbyr ikke å legge inn nye hendelser eller "
"kontakter, det må gjøres med en egen klient."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Kalender og adressebok"
@@ -5577,7 +5614,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Tilgangskontrolloppsett oppdatert"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5589,7 +5626,7 @@ msgstr ""
"forventer fra en e-posttjener, medregnet MIME-støtte, adressebok, "
"mappebehandling, søk etter meldinger og stavekontroll."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5602,7 +5639,7 @@ msgstr ""
"som imap.example.com. For IMAP over SSL (anbefalt), fyll "
"feltet for tjeneren, som imaps://imap.example.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5618,7 +5655,7 @@ msgstr ""
"lesssecureapps\">https://www.google.com/settings/security/lesssecureapps"
"a>)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "E-postklient"
@@ -5633,6 +5670,47 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Tiny Tiny RSS er tilgjengelig for enhver bruker med "
+"et {box_name}-brukernavn."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Les og abonner på nyhetsstrømmer"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+#, fuzzy
+#| msgid "Bridge"
+msgid "RSS-Bridge"
+msgstr "Bro"
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5664,15 +5742,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Tilgang til private delinger"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
#, fuzzy
#| msgid "Distributed File Storage"
msgid "Network File Storage"
@@ -5815,15 +5893,15 @@ msgstr ""
"Searx kan brukes for å unngå sporing og profilbygging av søkemotorer. Den "
"lagrer ingen kaker som forvalg."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Søk på nettet"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Nettsøk"
@@ -5915,7 +5993,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
#, fuzzy
#| msgid "Security Notice"
msgid "Security Report"
@@ -5999,12 +6077,12 @@ msgstr "Nei"
msgid "Not running"
msgstr "Kjører ikke"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Feil ved oppsetting av begrenset tilgang: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Oppdaterte sikkerhetsoppsett"
@@ -6020,11 +6098,11 @@ msgstr ""
"Merk at Shaarli kun støtter en enkelt brukerkonto, som du må sette opp ved "
"det første besøket."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Bokmerker"
@@ -6065,11 +6143,11 @@ msgstr ""
"For å bruke Shadowsocks etter oppsett, legg SOCKS5-mellomtjenernettadresen "
"på din enhet, nettleser, eller program til http://freedombox_address:1080/"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "SOCKS5-mellomtjener"
@@ -6098,7 +6176,7 @@ msgstr "Passord brukt for å kryptere data. Må samsvare med tjenerpassord."
msgid "Encryption method. Must match setting on server."
msgstr "Krypteringsmetode. Må samsvare med den brukt på tjeneren."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6107,7 +6185,7 @@ msgstr ""
"Deling lar deg dele filer og mapper på din {box_name} over nettet, med en "
"utvalgt gruppe brukere."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Deling"
@@ -6159,28 +6237,28 @@ msgstr "En deling ved dette navnet finnes allerede."
msgid "Shares should be either public or shared with at least one group"
msgstr "Delte områder bør enten være offentlig eller delt med minst en gruppe"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Legg til deling"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Ingen delte områder er satt opp foreløpig."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Disksti"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Delt over"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Med Grupper"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "Offentlig tilgang"
@@ -6343,7 +6421,7 @@ msgstr "Dato"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Slett avbildninger"
@@ -6402,53 +6480,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "Rull tilbake til øyeblikksbilde #%(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "manuelt opprettet"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "tidslinje"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Behandle avbildninger"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Opprett øyeblikksbilde."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Oppsett for lagringsavbildninger oppdatert"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Handlingsfeil: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Slettet alle valgte avbildninger"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr "Øyeblikksbilde i bruk. Prøv igjen senere."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "Rullet tilbake til øyeblikksbilde #{number}."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "Systemet må startes på nytt for å fullføre tilbakerullingen."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Rull tilbake til øyeblikksbilde"
@@ -6464,7 +6542,7 @@ msgstr ""
"annensteds hen kan utføre administrasjonsoppgaver, kopiere filer eller kjøre "
"andre tjenester ved bruk av slike tilkoblinger."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Secure Shell (SSH) tjener"
@@ -6515,7 +6593,7 @@ msgstr "SSH-identitetsbekreftelse med passord avskrudd."
msgid "SSH authentication with password enabled."
msgstr "SSH-autentisering med passord aktivert."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Engangspålogging"
@@ -6540,92 +6618,92 @@ msgstr ""
"kan vise lagringsmedia som er i bruk, montere og avmontere flyttbare medium, "
"utvide rotpartisjonen, osv."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Lager"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} byte"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "Operasjonen mislyktes."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "Operasjonen ble avbrutt."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Enheten avmonteres allerede."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
"Denne aktiviteten støttes ikke på grunn av manglende driver-/verktøystøtte."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "Tidsavbrudd for operasjon."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr "Operasjonen vil vekke en disk fra en tilstand av dyp søvn."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Prøver å avmontere en opptatt enhet."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "Operasjonen har allerede blitt avbrutt."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "Mangler rettigheter til utførelse av forespurt operasjon."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Denne enheten er allerede montert."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Enheten er ikke montert."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "Mangler rettigheter til bruk av forespurt valg."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Enheten er montert av en annen bruker."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, fuzzy, no-python-format, python-brace-format
#| msgid ""
#| "Warning: Low space on system partition ({percent_used}% used, "
@@ -6635,15 +6713,15 @@ msgstr ""
"Advarsel: Lite plass igjen på systempartisjon ({percent_used}% brukt, "
"{free_space} ledig)."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Lite ledig diskplass"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "Diskfeil nært forestående"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6801,16 +6879,16 @@ msgstr ""
"med sine egne sett med mapper. Webgrensesnittet er bare tilgjengelig for "
"brukere som hører til i «admin»-gruppen."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Administrer Syncthing-programmet"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Filsynkronisering"
@@ -6837,40 +6915,40 @@ msgid ""
msgstr ""
"En Tor SOCKS-port er tilgjengelig på din %(box_name)s på TCP port 9050."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Tor-løktjeneste"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Tor Socks-mellomtjener"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Tor bro-stafettvideresendingsoppsett"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Tor relay-port tilgjengelig"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3-transport registrert"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4-transport registrert"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Adgang til URL {url} på tcp{kind} via Tor"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bekreft Tor-bruk på {url} via tcp{kind}"
@@ -6881,15 +6959,11 @@ msgid ""
msgstr ""
"Angi en gyldig bro med dette formatet: [transport] IP:ORPort [fingerprint]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Aktiver Tor"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Bruk oppstrøms broer til å koble til Tor-nettverket"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6900,11 +6974,11 @@ msgstr ""
"blokkerer eller sensurerer tilkoblingene til Tor-nettverket. Dette vil "
"deaktivere relé-modi."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Oppstrøms broer"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6914,11 +6988,11 @@ msgstr ""
"bridges.torproject.org/ og kopiere/lime inn broinfoen her. For "
"øyeblikket støttes ingen transporter, obfs3, obfs4 og scamblesuit."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Aktiver Tor-videresending"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6929,11 +7003,11 @@ msgstr ""
"båndbredde til Tor-nettverket. Gjør dette hvis båndbredden din for "
"opplasting og nestlasting er mer enn 2 Mbits/s."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Aktiver Tor-bru-videresending"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6943,13 +7017,13 @@ msgstr ""
"stedet for den offentlige databasen over Tor-videresendere, hvilket gjør det "
"vanskeligere å sensurere denne noden. Dette hjelper andre å unngå sensur."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
#, fuzzy
#| msgid "Enable Tor Hidden Service"
msgid "Enable Tor Hidden Service"
msgstr "Aktiver skjulte Tor-tjenester"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6960,11 +7034,11 @@ msgstr ""
"som wiki eller nettprat) uten å avsløre sin beliggenhet. Ikke bruk dette for "
"å oppnå sterk anonymitet enda."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Last ned programpakker via Tor"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6974,7 +7048,7 @@ msgstr ""
"installasjoner og oppgraderinger. Dette legger til en viss grad privatliv "
"(personvern) og sikkerhet under nedlasting av programvare."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Angi minst én oppstrøms bro for å bruke oppstrøms broer."
@@ -6986,21 +7060,25 @@ msgstr "Tor-nettleseren"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Mellomtjener med Tor"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "Tor-oppsettet oppdateres"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Løktjeneste"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Porter"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Oppsett uendret"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "En feil oppsto under konfigureringen."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Feil ved programinstallering: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -7051,7 +7129,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -7090,15 +7168,11 @@ msgstr ""
"Når du bruker et mobilbasert- eller skrivebords-program for Tiny Tiny RSS, "
"bruk nettadressen /tt-rss-appfor å koble til."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Les og abonner på nyhetsstrømmer"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Nyhetstrøm-leser"
@@ -7119,8 +7193,8 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
#, fuzzy
@@ -7128,30 +7202,30 @@ msgstr ""
msgid "Software Update"
msgstr "Programvare-oppgraderinger"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
#| msgid "FreedomBox Foundation"
msgid "FreedomBox Updated"
msgstr "FreedomBox Foundation"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
#, fuzzy
#| msgid "Automatic upgrades disabled"
msgid "Distribution update started"
msgstr "Automatiske oppgraderinger avslått (deaktivert)"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7250,6 +7324,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Avslå"
@@ -7318,44 +7393,68 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Veksle nylige oppdateringslogger"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Automatiske oppgraderinger aktivert"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Test distribution upgrade now"
+msgstr "Automatiske oppgraderinger aktivert"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
"Feil ved oppsett av uoppdaterte oppgraderinger (unattended-upgrades): {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Automatiske oppgraderinger aktivert"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Automatiske oppgraderinger avslått (deaktivert)"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
#, fuzzy
#| msgid "Automatic upgrades enabled"
msgid "Distribution upgrade enabled"
msgstr "Automatiske oppgraderinger aktivert"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
#, fuzzy
#| msgid "Automatic upgrades disabled"
msgid "Distribution upgrade disabled"
msgstr "Automatiske oppgraderinger avslått (deaktivert)"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Oppgraderingsprosessen (upgrade process) har startet."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "Å starte oppgradering (upgrade) mislyktes."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Automatic upgrades enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Automatiske oppgraderinger aktivert"
+
#: plinth/modules/users/__init__.py:29
#, fuzzy
msgid ""
@@ -7378,15 +7477,15 @@ msgstr ""
"liste over programmer som er relevante for dem på hjemmesiden. Dog kan kun "
"brukere av admin-gruppen endre programmer eller systeminnstillinger."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Brukere og grupper"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Tilgang til alle tjenester og systeminnstillinger"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Sjekk LDAP-oppføring «{search_item}»"
@@ -8021,14 +8120,14 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
#, fuzzy
#| msgid "Address"
msgid "WordPress"
msgstr "Adresse"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
#, fuzzy
#| msgid "Wiki and Blog"
msgid "Website and Blog"
@@ -8068,11 +8167,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Foto-organiserer"
@@ -8110,37 +8209,138 @@ msgstr "PPPoE"
msgid "Generic"
msgstr "Generisk"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Feil ved setting av vertsnavn: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, fuzzy, python-brace-format
+#| msgid "Service disabled: {name}"
+msgid "Finished: {name}"
+msgstr "Tjeneste deaktivert: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr "Pakke {expression} er ikke tilgjengelig for installasjon"
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Pakke {package_name} er siste versjon ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Feil under installasjon"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Feil under sikkerhetskopiering"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "installering"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "laster ned"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "mediaendring"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "oppsettsfil: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Installer App-er"
+
+#: plinth/setup.py:42
+#, fuzzy
+#| msgid "Updating..."
+msgid "Updating app"
+msgstr "Oppdaterer…"
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Feil ved programinstallering: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Feil ved programinstallering: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Feil ved programinstallering: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Feil ved programinstallering: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Program installert."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Siste oppdatering"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Installer App-er"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Feil ved programinstallering: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Feil ved programinstallering: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Program installert."
+
+#: plinth/setup.py:451
+#, fuzzy
+#| msgid "Upgrade Packages"
+msgid "Updating app packages"
+msgstr "Oppgrader pakker"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Forbudt"
@@ -8192,7 +8392,7 @@ msgstr ""
msgid "Installation"
msgstr "Installasjon"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Tjenesten %(service_name)s kjører ikke."
@@ -8459,6 +8659,10 @@ msgstr "Fra ruter/WAN-porter"
msgid "To %(box_name)s Ports"
msgstr "Til portene for %(box_name)s"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Program installert."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Installere dette programmet?"
@@ -8468,22 +8672,14 @@ msgid "This application needs an update. Update now?"
msgstr "Dette programmet trenger en oppdatering. Oppdatere nå?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"En annen installasjon eller oppgradering kjører allerede. Vent litt før du "
-"prøver igjen."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Dette programmet er for tiden ikke tilgjengelig for din distribusjon."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Sjekk på nytt"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8493,36 +8689,107 @@ msgstr ""
"systemet er i konflikt med installasjon av dette programmet. Følgende pakker "
"vil bli fjernet om du fortsetter:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Installer"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Oppdater"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Utfører en forhåndsinstallasjon"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Installer"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Utfører en etterinstallasjon"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Rediger bruker %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Installere %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% fullført"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Oppsett uendret"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#~ msgid "Network Connections"
+#~ msgstr "Nettverksoppkoblinger"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Aktiver Tor"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Tor-oppsettet oppdateres"
+
+#~ msgid "Error during installation"
+#~ msgstr "Feil under installasjon"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "Bruker DNSSEC på IPv{kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "En annen installasjon eller oppgradering kjører allerede. Vent litt før "
+#~ "du prøver igjen."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Utfører en forhåndsinstallasjon"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Utfører en etterinstallasjon"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Installere %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% fullført"
+
+#~ 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 krever at du når det gjennom et domenenavn. Det fungerer ikke når "
+#~ "det nås ved bruk av en IP-adresse, eller som del av nettadressen."
+
+#, fuzzy
+#~| msgid "Access Point"
+#~ msgid "Access"
+#~ msgstr "Aksesspunkt"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "Cockpit fungerer kun når det nås fra følgende nettadresser."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Nett-tjener"
+
#, fuzzy
#~| msgid "Server"
#~ msgid "Server URL"
@@ -8947,11 +9214,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Feil ved innstilling/setting av domenenavn: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "En feil oppsto under konfigureringen."
-
#, fuzzy
#~| msgid "Directory does not exist."
#~ msgid "User does not exist"
@@ -9509,9 +9771,6 @@ msgstr "Gujarati"
#~ msgid "Service enabled: {name}"
#~ msgstr "Tjeneste aktivert: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Tjeneste deaktivert: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "PageKite-konto"
@@ -9939,9 +10198,6 @@ msgstr "Gujarati"
#~ msgid "Automatic Upgrades"
#~ msgstr "Automatiske oppgraderinger"
-#~ msgid "Upgrade Packages"
-#~ msgstr "Oppgrader pakker"
-
#~ msgid "No such device - {device_path}"
#~ msgstr "Ingen slik enhet - {device_path}"
@@ -10239,9 +10495,6 @@ msgstr "Gujarati"
#~ msgid "IP Check URL"
#~ msgstr "IP Sjekk URL"
-#~ msgid "Bridge"
-#~ msgstr "Bro"
-
#~ msgid "Enable network time"
#~ msgstr "Aktiver nettverkstid"
diff --git a/plinth/locale/nl/LC_MESSAGES/django.po b/plinth/locale/nl/LC_MESSAGES/django.po
index 68ed02990..9c31762d6 100644
--- a/plinth/locale/nl/LC_MESSAGES/django.po
+++ b/plinth/locale/nl/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
-"PO-Revision-Date: 2022-06-22 17:14+0000\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
+"PO-Revision-Date: 2022-08-03 22:17+0000\n"
"Last-Translator: ikmaak \n"
"Language-Team: Dutch \n"
@@ -17,7 +17,7 @@ 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.13.1-dev\n"
+"X-Generator: Weblate 4.14-dev\n"
"X-Language: nl_NL\n"
"X-Source-Language: C\n"
@@ -25,7 +25,7 @@ msgstr ""
msgid "Page source"
msgstr "Paginabron"
-#: plinth/context_processors.py:23 plinth/views.py:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr "FreedomBox"
@@ -55,10 +55,24 @@ msgid "Cannot connect to {host}:{port}"
msgstr "Kan niet verbinden met {host}:{port}"
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+#, fuzzy
+#| msgid "Repository not found"
+msgid "Repository to backup to"
+msgstr "Repository niet gevonden"
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr "Kies een domeinnaam voor het gebruik van deze toepassing"
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
@@ -66,12 +80,12 @@ msgstr ""
"Waarschuwing! De toepassing werkt mogelijk niet correct als de domeinnaam "
"later wordt gewijzigd."
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr "TLS domein"
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
@@ -80,41 +94,27 @@ msgstr ""
"Selecteer een domein om TLS mee te gebruiken. Als de lijst leeg is, "
"configureer dan ten minste één domein met certificaten."
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr "Taal"
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr "Te gebruiken taal voor de weergave van deze webinterface"
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr "Gebruik de taalvoorkeuren die zijn ingesteld in de browser"
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr "De toepassing is geïnstalleerd."
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr "Fout bij het installeren van de toepassing: {string} {details}"
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr "Fout bij het installeren van de toepassing: {error}"
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr "Apache HTTP Server"
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr "Webserver"
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr "{box_name} Web Interface (Plinth)"
@@ -146,11 +146,11 @@ msgstr ""
"uitgeschakeld worden om de veiligheid te verhogen, zeker in een onbekend en "
"mogelijk vijandig lokaal netwerk."
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr "Service Discovery"
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr "Lokaal netwerkdomein"
@@ -158,12 +158,12 @@ msgstr "Lokaal netwerkdomein"
msgid "Backups allows creating and managing backup archives."
msgstr "Met back-ups kun je back-uparchieven maken en beheren."
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr "Back-ups"
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
@@ -172,18 +172,18 @@ msgstr ""
"verhogen. Gebruik bij voorkeur een versleutelde externe back-uplocatie of "
"een extra aangesloten schijf."
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr "Een back-upschema inschakelen"
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr "Ga naar {app_name}"
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
@@ -192,7 +192,7 @@ msgstr ""
"Een geplande back-up is mislukt. De vorige {error_count} back-up pogingen "
"zijn ook niet gelukt. De laatste fout was: {error_message}"
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr "Fout tijdens back-up"
@@ -278,7 +278,7 @@ msgstr "Repository"
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr "Naam"
@@ -443,7 +443,7 @@ msgid "{box_name} storage"
msgstr "{box_name} opslag"
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr "Maak een nieuwe back-up"
@@ -495,7 +495,7 @@ msgid "Create Location"
msgstr "Locatie maken"
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr "Maak Repository"
@@ -553,7 +553,7 @@ msgstr "Downloaden"
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr "Herstellen"
@@ -657,100 +657,100 @@ msgstr ""
msgid "Verify Host"
msgstr "Host verifiëren"
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr "Back-upschema bijgewerkt."
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr "Back-ups plannen"
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr "Archief aangemaakt."
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr "Archief verwijderen"
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr "Archief verwijderd."
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr "Een back-up uploaden en herstellen"
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr "Herstelde bestanden van de back-up."
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr "Er is geen back-upbestand gevonden."
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr "Herstellen vanuit geüpload bestand"
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr ""
"Er zijn geen extra schijven beschikbaar om een opslagplaats toe te voegen."
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr "Maak een back-up repository"
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr "Maak een back-up repository"
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr "Nieuwe externe SSH-repository toegevoegd."
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr "SSH-hostkey verifiëren"
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr "SSH-host is al geverifieerd."
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr "SSH-host geverifieerd."
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr "De openbare sleutel van de SSH-host kan niet worden geverifieerd."
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr "Authenticatie naar externe server is mislukt."
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr "Fout bij het tot stand brengen van een verbinding met de server: {}"
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr "Repository verwijderd."
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr "Verwijder Repository"
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr "Repository verwijderd. Back-ups zijn niet verwijderd."
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr "Ontkoppelen is mislukt!"
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr "Aankoppelen is mislukt"
@@ -791,39 +791,39 @@ msgstr ""
"manier kan later de toegang voor individuele personen of groepen ingetrokken "
"worden door hun wachtwoord te verwijderen van de lijst."
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr "Een bestand lezen als er een weblink naar het bestand beschikbaar is"
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr "Maak of upload bestanden"
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr "Maak een lijst van alle bestanden en hun weblinks"
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr "Bestanden verwijderen"
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr "Beheer bestanden: vergrendel / ontgrendel bestanden"
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr "Geen, wachtwoord is altijd vereist"
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr "Alle bestanden aanbieden om te lezen"
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr "bepasty"
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr "Delen van bestanden en fragmenten"
@@ -917,16 +917,15 @@ msgstr "Verwijder"
msgid "Admin"
msgstr "Admin"
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr "Configuratie bijgewerkt."
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr "Er is een fout opgetreden tijdens de configuratie."
@@ -961,11 +960,11 @@ msgstr ""
"apparaten op het netwerk te beantwoorden. Het werkt niet in samenspel met "
"het delen van de Internetverbinding vanaf {box_name}."
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr "BIND"
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr "Domeinnaam Server"
@@ -1019,12 +1018,12 @@ msgstr "IP adressen"
msgid "Refresh IP address and domains"
msgstr "IP adressen en domeinen verversen"
-#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
-#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -1066,15 +1065,15 @@ msgstr ""
"tot deze toepassing. Alle gebruikers met toegang kunnen alle bibliotheken "
"gebruiken."
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "Gebruik calibre e-book bibliotheken"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "E-boek bibliotheek"
@@ -1138,25 +1137,25 @@ msgstr "Ga naar bibliotheek %(library)s"
msgid "Delete library %(library)s"
msgstr "Verwijder bibliotheek %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "Bibliotheek aangemaakt."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "Er is een fout opgetreden tijdens het aanmaken van de bibliotheek."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} verwijderd."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "Verwijderen van {name} mislukt: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1169,7 +1168,7 @@ msgstr ""
"beschikbaar voor veel geavanceerde functies die vaak niet gebruikt worden. "
"Er is ook een webgebaseerde terminal beschikbaar voor consoleactiviteiten."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1181,7 +1180,7 @@ msgstr ""
"gebruikt voor het openen van aangepaste firewallpoorten en geavanceerde "
"netwerkentechnieken zoals bonding, bridging en VLAN-beheer."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1190,32 +1189,16 @@ msgstr ""
"Het kan geraadpleegd worden door iedere gebruiker"
"a> op {box_name} die lid is van de systeembeheerdergroep (admin)."
-#: plinth/modules/cockpit/__init__.py:40
-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 vereist dat je toegang krijgt via een domeinnaam. Het zal niet "
-"werken wanneer je toegang krijgt via een IP-adres als onderdeel van de URL."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Serverbeheer"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Toegang"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Cockpit werkt alleen wanneer deze wordt geopend met de volgende URL's."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1230,7 +1213,7 @@ msgstr "Algemene Instellingen"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Configureer"
@@ -1325,44 +1308,68 @@ msgid "Show apps and features that require more technical knowledge."
msgstr ""
"Laat toepassingen en functies zien die meer technische kennis vereisen."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr "Systeembreed logboek"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr "Loggen uitschakelen vanwege privacy"
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr "Houdt wat in het geheugen tot een herstart, verhoogt prestaties"
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr "Schrijven naar schijf, nuttig voor debugging"
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+"Logboeken bevatten informatie over wie toegang heeft gehad tot het systeem "
+"en foutopsporingsinformatie van verschillende services"
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Hostnaam instellen mislukt: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Hostnaam ingesteld"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Domeinnaam instellen mislukt: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Domeinnaam ingesteld"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
"Fout bij het instellen van de startpagina van de webserver: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Startpagina van webserver ingesteld"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Fout bij het wijzigen van de geavanceerde modus: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Geavanceerde toepassingen en functies worden weergeven"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Geavanceerde toepassingen en functies verbergen"
@@ -1390,11 +1397,11 @@ msgstr ""
"href=\"{ms_url}\">Matrix Synapse of ejabberd"
"a>moeten worden geconfigureerd met de hier verstrekte details."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "VoIP helper"
@@ -1418,11 +1425,11 @@ msgstr ""
"Netwerk Tijd Server is een programma dat de systeemtijd synchroniseert met "
"servers op internet."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Datum en Tijd"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Tijd gesynchroniseerd met NTP-server"
@@ -1463,17 +1470,17 @@ msgstr ""
"Het standaardwachtwoord is 'deluge', maar dit moet zo snel mogelijk na "
"activering gewijzigd worden."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Download bestanden met BitTorrent toepassingen"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "BitTorrent-webclient"
@@ -1494,49 +1501,49 @@ msgstr ""
"bevestigen dat de toepassingen en diensten zoals verwacht functioneren."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnose"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "geslaagd"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "mislukt"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "fout"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "waarschuwing"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
"Door toepassingen uit te schakelen kan het geheugengebruik worden verminderd."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Extra toepassingen installeren wordt afgeraden."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1545,7 +1552,7 @@ msgstr ""
"Systeem heeft weinig geheugen beschikbaar: {percent_used}% gebruikt, "
"{memory_available} {memory_available_unit} vrij. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Geheugengebrek"
@@ -1595,7 +1602,7 @@ msgstr "Test"
msgid "Result"
msgstr "Resultaat"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Diagnostische test"
@@ -1642,11 +1649,11 @@ msgstr ""
"diensten van freedns.afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Dynamic DNS Cliënt"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Dynamische domeinnaam"
@@ -1773,13 +1780,14 @@ msgid "This field is required."
msgstr "Dit veld is vereist."
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1861,12 +1869,12 @@ msgstr ""
"Installeer de Coturn toepassing of configureer "
"een externe server."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Chatserver"
@@ -1978,7 +1986,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2042,19 +2050,19 @@ msgstr ""
"Tijdens de installatie worden alle andere e-mailservers in het systeem "
"verwijderd."
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr "Postfix/Dovecot"
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "E-mailserver"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr "Mijn e-mail aliassen"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr "Aliassen voor postvak beheren"
@@ -2090,7 +2098,7 @@ msgstr "Kan geen getal zijn"
msgid "Aliases"
msgstr "Aliassen"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2176,7 +2184,7 @@ msgstr ""
"datastromen van {box_name} stuurt. Een geactiveerde en goed ingestelde "
"firewall vermindert het risico op beveiligingsrisico's vanuit internet."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
@@ -2337,15 +2345,15 @@ msgstr ""
"Bezoek Git tutorial "
"voor meer informatie over het gebruik van Git."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Lees- en schrijftoegang tot Git-repositories"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Eenvoudige Git Hosting"
@@ -2445,54 +2453,54 @@ msgstr "Verwijder Git Repository %(name)s"
msgid "Delete this repository permanently?"
msgstr "Deze repository permanent verwijderen?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Repository aangemaakt."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Er is een fout opgetreden bij het aanmaken van de repository."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Repository gewijzigd."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Wijzig repository"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Documentatie"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Handleiding"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Help"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Feedback indienen"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Bijdragen"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Over ons"
@@ -2632,6 +2640,44 @@ msgstr ""
msgid "Learn more..."
msgstr "Lees meer..."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr "Hoe kan ik helpen?"
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+"Hieronder vindt u een lijst met mogelijkheden om bij te dragen aan Debian. "
+"Het is zo gefilterd dat alleen pakketten worden getoond die op dit systeem "
+"zijn geïnstalleerd."
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr "Toon problemen"
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr "Pakketten die uit Debian Testing zullen worden verwijderd"
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr "bronpakket:"
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr "Pakketten die niet in Debian Testing zijn opgenomen"
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr "Goede eerste problemen voor beginners"
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr "Problemen waarvoor de pakketbeheerder om hulp heeft gevraagd"
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2773,16 +2819,16 @@ msgstr ""
"Verwijder alle wachtwoorden of andere persoonlijke gegevens uit het logboek "
"voor het foutrapport verstuurd wordt."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Documentatie en veelgestelde vragen"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "Over {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "{box_name} Handleiding"
@@ -2815,19 +2861,19 @@ msgstr ""
"Bij het eerste bezoek aan de meegeleverde webinterface wordt het "
"configuratieproces gestart."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "I2P-toepassing beheren"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Anonimiteitsnetwerk"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "I2P proxy"
@@ -2897,15 +2943,15 @@ msgstr ""
"Configuratie kan je deze instellingen wijzigen en nieuwe gebruikers "
"registreren."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki en Blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Bekijken en bewerken van wiki toepassingen"
@@ -2943,8 +2989,8 @@ msgstr "Verwijder site %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Instelling bijwerken"
@@ -2961,32 +3007,32 @@ msgstr ""
"Deze actie zal alle bijdragen, pagina's, en commentaar inclusief revisie-"
"historie. Deze wiki of blog permanent verwijderen?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Wiki {name} gemaakt."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Kan wiki niet aanmaken: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Blog {name} gemaakt."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Kan blog niet aanmaken: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} verwijderd."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "Verwijderen van {title} mislukt: {error}"
@@ -3008,11 +3054,11 @@ msgstr ""
"a> desktop-client en installeer deze. Start Gobby en selecteer vervolgens "
"\"Verbinden met Server\" en voer de {box_name} domeinnaam in."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Gobby Server"
@@ -3033,26 +3079,26 @@ msgstr ""
"Start Gobby en selecteer vervolgens \"Verbinden met Server\" en voer de "
"{box_name} domeinnaam in."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr "Janus is een lichtgewicht WebRTC server."
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr "Er is ook een eenvoudige videoconferentieruimte."
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr "Om Janus te gebruiken is Coturn nodig."
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr "Janus"
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
-msgstr "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr "Video Ruimte"
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3064,7 +3110,7 @@ msgstr "Janus Video Ruimte"
msgid "JavaScript license information"
msgstr "JavaScript licentie-informatie"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3072,11 +3118,11 @@ msgstr ""
"JSXC is een webclient voor XMPP. Het wordt meestal gebruikt met een XMPP-"
"server die lokaal wordt uitgevoerd."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Chat Cliënt"
@@ -3245,7 +3291,7 @@ msgstr ""
"videogesprekken. Installeer de Coturn "
"toepassing of configureer een externe server."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3283,8 +3329,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Configuratie"
@@ -3388,12 +3434,12 @@ msgstr ""
"Iedereen met een link naar deze wiki kan hem lezen. Alleen ingelogde "
"gebruikers kunnen wijzigingen aanbrengen in de inhoud."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3467,39 +3513,39 @@ msgstr ""
"Kies een standaard uiterlijk voor de MediaWiki-installatie. Gebruikers "
"hebben de mogelijkheid om hun favoriete uiterlijk te kiezen."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Wachtwoord bijgewerkt"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr "Wachtwoordupdate mislukt. Kies een sterker wachtwoord"
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Openbare registraties ingeschakeld"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Openbare registraties uitgeschakeld"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Privé-modus ingeschakeld"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Privé-modus uitgeschakeld"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Standaard uiterlijk veranderd"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr "Domeinnaam bijgewerkt"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr "Sitenaam bijgewerkt"
@@ -3516,11 +3562,11 @@ msgstr ""
"standaardpoort (30000). Voor de verbinding met de server is een Minetest client nodig."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Block Sandbox"
@@ -3572,7 +3618,7 @@ msgstr "Indien uitgeschakeld, kunnen spelers niet sterven of schade oplopen."
msgid "Address"
msgstr "Adres"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3590,15 +3636,15 @@ msgstr ""
"mediaspelers, smartphones, televisies en spelsystemen (zoals PS3 en Xbox "
"360) of programma's zoals totem en Kodi."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Mediastreaming server"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Simple Media Server"
@@ -3662,11 +3708,11 @@ msgstr ""
"programma's waarmee de Mumble dienst gebruikt kan worden. Er zijn "
"programma's voor zowel desktop en mobiele apparaten."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Voice Chat"
@@ -3714,15 +3760,15 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "Wachtwoord van de SuperGebruiker succesvol gewijzigd."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr "Deelnamewachtwoord gewijzigd"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr "De naam van het hoofdkanaal is gewijzigd."
@@ -3760,7 +3806,7 @@ msgstr "Secure Shell"
msgid "Services"
msgstr "Diensten"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3768,7 +3814,7 @@ msgstr ""
"Stel netwerkapparaten in. Maak verbinding met internet via Ethernet, Wi-Fi "
"of PPPoE. Deel die verbinding met andere apparaten op het netwerk."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3776,15 +3822,10 @@ msgstr ""
"Apparaten die via andere methoden worden beheerd, zijn hier mogelijk niet "
"beschikbaar voor configuratie."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Netwerken"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "Gebruikt DNSSEC op IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Verbindingssoort"
@@ -4404,7 +4445,7 @@ msgid "Create Connection"
msgstr "Maak Verbinding"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Verwijder verbinding"
@@ -4424,13 +4465,13 @@ msgstr "Verbinding"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4451,7 +4492,7 @@ msgid "Computer"
msgstr "Computer"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Wijzig verbinding"
@@ -4461,13 +4502,13 @@ msgstr "Verbindingen"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Wi-Fi Netwerken dichtbij"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Verbinding toevoegen"
@@ -4691,245 +4732,241 @@ msgstr ""
"handleiding van de router. Daarin wordt de juiste methode van instellen "
"beschreven."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "uitgeschakeld"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "automatisch"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "handleiding"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "gedeeld"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr "link-local"
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "onbekend"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "niet ingesteld"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "niet beschikbaar"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "ontkoppeld"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "voorbereiden"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "verbinden"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "heeft verificatie nodig"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "adres wordt aangevraagd"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "controleren"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr "wachten op secundaire"
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "geactiveerd"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "deactiveren"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "Geen reden"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "Onbekende fout"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "Het apparaat wordt nu beheerd"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "Het apparaat wordt niet meer beheerd"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "configuratie mislukt"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr "geheim vereist"
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "DHCP-client kan niet worden gestart"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "DHCP-clientfout"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "DHCP client mislukt"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr "gedeelde verbindingsservice kan niet worden gestart"
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "gedeelde verbindings-service mislukt"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "Het apparaat werd verwijderd"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "apparaat verwijderd door gebruiker"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr "een afhankelijkheid van de verbinding is mislukt"
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "Wifi netwerk niet gevonden"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "een secundaire verbinding is mislukt"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr "het activeren van de nieuwe verbindings is in de wachtrij gezet"
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "er is een dubbel IP-adres ontdekt"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "de geselecteerde IP-methode wordt niet ondersteund"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "generiek"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "TUN of TAP interface"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "infrastructuur"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "Access Point"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "mesh punt"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Netwerkverbindingen"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Kan verbinding niet weergeven: Verbinding niet gevonden."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Verbindingsgegevens"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Kan verbinding niet wijzigen: Verbinding niet gevonden."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Deze verbindingsmethode is (nog) niet bekend."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "Geactiveerde verbinding {name}."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Kan verbinding niet inschakelen: Verbinding niet gevonden."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr "Kan verbinding {name} niet inschakelen: Verbinding niet gevonden."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Verbinding {name} uitgeschakeld."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Kan verbinding niet uitschakelen: Verbinding niet gevonden."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Toevoegen nieuwe Verbinding"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Toevoegen nieuwe Ethernetverbinding"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Toevoegen nieuwe PPPoE verbinding"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Toevoegen nieuwe W-Fi verbinding"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Verbinding {name} verwijderd."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Kan verbinding niet verwijderen: Verbinding niet gevonden."
@@ -4951,20 +4988,20 @@ msgstr ""
"mogelijk om de rest van het internetgebruik via {box_name} te leiden, voor "
"meer veiligheid en anonimiteit."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "Verbinding maken met VPN-dienst"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Virtual Private Network"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5104,15 +5141,15 @@ msgstr ""
"\">pagekite.net. In de toekomst is het misschien mogelijk om de "
"{box_name} van een van je vrienden te gebruiken."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Openbare zichtbaarheid"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "PageKite domein"
@@ -5226,31 +5263,31 @@ msgstr ""
"bijvoorbeeld bekend dat HTTPS servers die niet op poort 443 worden ingesteld "
"problemen opleveren."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Webserver (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
"De website zal beschikbaar zijn op http://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Webserver (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
"De website zal beschikbaar zijn op https://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Secure Shell (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5259,7 +5296,7 @@ msgstr ""
"SshOverPageKite/\">instructies (Engelstalig)"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Prestaties"
@@ -5282,7 +5319,7 @@ msgstr ""
"Prestatiestatistieken worden verzameld door Performance Co-Pilot en kunnen "
"worden bekeken via de Cockpit-app."
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Systeembewaking"
@@ -5367,26 +5404,28 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Privoxy kan gebruikt worden door de proxy instellingen van je browser te "
-"wijzigen naar {box_name} hostname (of IP adres) met poort 8118. Zodra je "
+"wijzigen naar {box_name} hostname (of IP adres) met poort 8118. Alleen "
+"verbindingen van lokale netwerk-IP-adressen zijn toegestaan. Zodra je "
"Privoxy gebruikt, kan de configuratie en documentatie worden bereikt op http://config.privoxy.org/ of http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Web Proxy"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Gebruik {url} via proxy {proxy} op tcp{kind}"
@@ -5421,11 +5460,11 @@ msgstr ""
"\"http://quassel-irc.org/downloads\">desktop en mobiele apparaten."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "IRC Cliënt"
@@ -5459,12 +5498,12 @@ msgstr ""
"gebeurtenissen of contactpersonen, die moeten worden gedaan met behulp van "
"een aparte client."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Agenda en Adresboek"
@@ -5542,7 +5581,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Configuratie van de toegangsrechten is bijgewerkt"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5554,7 +5593,7 @@ msgstr ""
"een email toepassing verwacht kan worden, inclusief MIME ondersteuning, een "
"adresboek, het beheren van mappen, zoeken in berichten en spellingscontrole."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5568,7 +5607,7 @@ msgstr ""
"example.com. Voor IMAP over SSL (aanbevolen): vul het serverveld in, "
"bijvoorbeeld imaps://imap.example.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5583,7 +5622,7 @@ msgstr ""
"(https://"
"www.google.com/settings/security/lesssecureapps)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "Email Cliënt"
@@ -5601,6 +5640,47 @@ msgstr ""
"inlogpagina en kunnen gebruikers alleen e-mails lezen en verzenden vanaf "
"deze {box_name}."
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+"RSS-Bridge genereert RSS- en Atom-feeds voor websites die er geen hebben. "
+"Gegenereerde feeds kunnen door elke feedlezer worden gebruikt."
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Indien ingeschakeld, kan RSS-Bridge worden geopend door elke gebruiker die tot de feed-reader groep behoort."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+"RSS-Bridge wordt met Tiny Tiny RSS gebruikt om "
+"verschillende websites te volgen. Schakel bij het toevoegen van een feed "
+"authenticatie in en gebruik de {box_name}-inloggegevens."
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Lezen en abonneren op nieuwsfeeds"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr "RSS-Bridge"
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr "RSS Feed Generator"
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5643,15 +5723,15 @@ msgstr ""
"Prive-deelmap - - iedere gebruiker in de freedombox-share-groep kan zijn "
"eigen privéruimte hebben."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Toegang tot de privéshares"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Netwerk bestandenopslag"
@@ -5786,15 +5866,15 @@ msgstr ""
"Searx kan worden gebruikt om tracking en profilering door zoekmachines te "
"voorkomen. Het slaat standaard geen cookies op."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Zoeken op internet"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Zoeken op het Internet"
@@ -5889,7 +5969,7 @@ msgstr ""
"door medewerkers van Debian en de %(box_name)s -community."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Beveiligingsrapport"
@@ -5966,12 +6046,12 @@ msgstr "Nee"
msgid "Not running"
msgstr "Inaktief"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Fout bij beperkte toegang instellen: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Bijgewerkte Beveiligingsconfiguratie"
@@ -5987,11 +6067,11 @@ msgstr ""
"Houd er rekening mee dat Shaarli maar een gebruiker ondersteunt, die moet "
"worden ingesteld bij het eerste gebruik."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Bladwijzers"
@@ -6031,11 +6111,11 @@ msgstr ""
"proxy in op het apparaat, webbrowser of toepassing naar http://"
"adres_van_de_freedombox:1080/"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Socks5 Proxy"
@@ -6066,7 +6146,7 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr "Encryptie methode. Moet overeenkomen met de instelling van de server."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6075,7 +6155,7 @@ msgstr ""
"Delen maakt het mogelijk om bestanden en mappen op {box_name} te delen via "
"het Internet met door jou bepaalde gebruikers."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Delen"
@@ -6127,28 +6207,28 @@ msgstr "Er bestaat reeds een gedeelde map met deze naam."
msgid "Shares should be either public or shared with at least one group"
msgstr "Shares moeten openbaar zijn of gedeeld worden met minimaal één groep"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Gedeelde map toevoegen"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Er zijn momenteel geen bestandsdelingen geconfigureerd."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Schijf pad"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Gedeeld Via"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Met Groepen"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "openbare toegang"
@@ -6307,7 +6387,7 @@ msgstr "Datum"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Snapshots verwijderen"
@@ -6361,54 +6441,54 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "Terugdraaien tot Snapshot #%(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "handmatig gemaakt"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "tijdlijn"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Beheren van Snapshots"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Gemaakte snapshot."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Opslag van Snapshots configuratie is bijgewerkt"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Actiefout: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Verwijderde geselecteerde snapshots"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr "Snapshot is momenteel in gebruik. Probeer het later nog eens."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "Teruggezet naar snapshot #{number}."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
"Het systeem moet opnieuw worden opgestart om het terugdraaien te voltooien."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Terugdraaien naar Snapshot"
@@ -6424,7 +6504,7 @@ msgstr ""
"andere locatie die daarvoor geautoriseerd is, kan beheerdertaken uitvoeren, "
"bestanden kopiëren en andere taken verrichten door zulk een verbinding."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Secure Shell (SSH) Server"
@@ -6470,7 +6550,7 @@ msgstr "SSH-authenticatie met wachtwoord uitgeschakeld."
msgid "SSH authentication with password enabled."
msgstr "SSH-authenticatie met wachtwoord ingeschakeld."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Eenmalige aanmelding"
@@ -6494,109 +6574,109 @@ msgstr ""
"bekijken, verwijderbare media koppelen en ontkoppelen, de rootpartitie "
"uitbreiden enz."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Storage"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} bytes"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "De bewerking is mislukt."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "De bewerking is afgebroken."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Het apparaat is al aan het ontkoppelen."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
"De bewerking wordt niet ondersteund vanwege ontbrekende driver / programma-"
"ondersteuning."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "Er is een time-out opgetreden voor deze bewerking."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
"De operatie zou een schijf wakker maken die in \"diepe slaap\" stand is."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Poging om een apparaat te ontkoppelen dat in gebruik is."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "De bewerking is al geannuleerd."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "Niet gemachtigd om deze handeling uit te voeren."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Het apparaat is al gekoppeld."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Het apparaat is niet ge-mount."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "Het is niet toegestaan de gevraagde optie te gebruiken."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Het apparaat is door een andere gebruiker aangekoppeld."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
"Weinig ruimte op de systeempartitie: {percent_used} % gebruikt, {free_space} "
"vrij."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Weinig schijfruimte"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "Schijffout dreigt"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6751,16 +6831,16 @@ msgstr ""
"{box_name} is alleen beschikbaar voor gebruikers die tot de \"admin\"- of de "
"\"syncthing-access\"-groep behoren."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Beheer Syncthing toepassing"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Bestandssynchronisatie"
@@ -6787,40 +6867,40 @@ msgstr ""
"Een Tor SOCKS poort is beschikbaar op {box_name} voor interne netwerken op "
"TCP poort 9050."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Tor-Onion Dienst"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Tor Socks Proxy"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Tor Bridge Relay"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Tor relay poort beschikbaar"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3 transport geregistreerd"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4 transport geregistreerd"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Gebruik URL {url} op tcp{kind} via Tor"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bevestig Tor gebruik met {url} via tcp{kind}"
@@ -6832,15 +6912,11 @@ msgstr ""
"Voer een geldige Tor-brug in met deze indeling: [transport] IP: ORPort "
"[fingerprint]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Tor Inschakelen"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Gebruik upstream bridges om verbinding te maken met het Tor netwerk"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6851,11 +6927,11 @@ msgstr ""
"optie als je Internet Service Provider (ISP) verbindingen met het Tor-"
"netwerk blokkeert of censureert. Hierdoor worden de relaismodi uitgeschakeld."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Upstream bridges"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6866,11 +6942,11 @@ msgstr ""
"Momenteel worden de volgende transportmethoden ondersteund; geen, obfs3, "
"obfs4 en scamblesuit."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Tor Relay Inschakelen"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6881,11 +6957,11 @@ msgstr ""
"bandbreedte delen met het Tor-netwerk. Doe dit alleen als er meer dan 2 "
"megabit/s upload- en download bandbreedte beschikbaar is."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Tor Bridge Relay inschakelen"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6896,11 +6972,11 @@ msgstr ""
"moeilijker om dit knooppunt te censureren. Dit helpt anderen censuur te "
"omzeilen."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Tor Hidden Service inschakelen"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6911,11 +6987,11 @@ msgstr ""
"(zoals wiki of chat) kan aanbieden zonder de locatie te onthullen. Deze "
"dienst nog niet gebruiken als sterke anonimiteit vereist is."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Download Softwarepakketen via Tor"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6925,7 +7001,7 @@ msgstr ""
"binnengehaald. Dit voegt een mate van privacy en veiligheid tijdens software "
"downloads toe."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Geef ten minste één upstream brug in voor het gebruik van de upstream "
@@ -6939,21 +7015,25 @@ msgstr "Tor Browser"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Proxy met Tor"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "Tor configuratie wordt bijgewerkt"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Onion Service"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Poorten"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Instelling onveranderd"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Er is een fout opgetreden tijdens de configuratie."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Fout bij het installeren van de toepassing: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -7007,7 +7087,7 @@ msgstr ""
"Nadat een download is voltooid, is toegang tot de bestanden ook mogelijk met "
"behulp van de app Sharing."
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -7039,15 +7119,11 @@ msgstr ""
"Gebruik de URL /tt-rss-app in om te verbinden "
"met een mobiele- of desktoptoepassing voor Tiny Tiny RSS."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Lezen en abonneren op nieuwsfeeds"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "News Feed Reader"
@@ -7074,22 +7150,22 @@ 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:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Software bijwerken"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox geaktualiseerd"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "Kan distributie-update niet starten"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
@@ -7099,11 +7175,11 @@ msgstr ""
"te starten. Zorg ervoor dat ten minste 5 GB ruimte vrij is. Als "
"ingeschakeld, wordt de distributie-update na 24 uur opnieuw geprobeerd."
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "Distributie-update gestart"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr "Update naar volgende stabiele release gestart. Dit kan lang duren."
@@ -7198,6 +7274,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Negeren"
@@ -7264,39 +7341,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Recente updateverslagen weergeven"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Distributie bijwerken ingeschakeld"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "Distributie bijwerken ingeschakeld"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "Fout bij het instellen van automatische upgrades: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Automatisch bijwerken ingeschakeld"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Automatisch bijwerken uitgeschakeld"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "Distributie bijwerken ingeschakeld"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Distributie bijwerken uitgeschakeld"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Upgrade-proces gestart."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "Starten van de upgrade is mislukt."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Tussentijdse Software Updates zijn ingeschakeld."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Distributie bijwerken ingeschakeld"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7320,15 +7421,15 @@ msgstr ""
"die lid zijn van de admin -groep mogen toepassings- of "
"systeeminstellingen wijzigen."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Gebruikers en Groepen"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Toegang tot alle diensten en systeeminstellingen"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Zoek LDAP item \"{search_item}\""
@@ -7963,12 +8064,12 @@ msgstr ""
"vanuit de beheerdersinterface. Extra plug-ins of thema's kunnen op eigen "
"risico worden geïnstalleerd en geüpgraded."
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "Website en Blog"
@@ -8018,11 +8119,11 @@ msgstr ""
"Zoph. Voor extra gebruikers moeten zowel in {box_name} als in Zoph accounts "
"worden aangemaakt met dezelfde gebruikersnaam."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Foto Organisator"
@@ -8061,37 +8162,138 @@ msgstr "PPPoE"
msgid "Generic"
msgstr "Generiek"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Hostnaam instellen mislukt: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, fuzzy, python-brace-format
+#| msgid "Service disabled: {name}"
+msgid "Finished: {name}"
+msgstr "Dienst uitgeschakeld: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr "Pakket {expression} is niet beschikbaar voor installatie"
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Pakket {package_name} is de nieuwste versie ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Fout tijdens installatie"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Fout tijdens back-up"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "installeren"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "downloaden"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "media wijzigen"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "configuratiebestand: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Installeer Toepassingen"
+
+#: plinth/setup.py:42
+#, fuzzy
+#| msgid "Updating..."
+msgid "Updating app"
+msgstr "Bezig met bijwerken…"
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Fout bij het installeren van de toepassing: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Fout bij het installeren van de toepassing: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Fout bij het installeren van de toepassing: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Fout bij het installeren van de toepassing: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "De toepassing is geïnstalleerd."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Laatste bijwerking"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Installeer Toepassingen"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Fout bij het installeren van de toepassing: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Fout bij het installeren van de toepassing: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "De toepassing is geïnstalleerd."
+
+#: plinth/setup.py:451
+#, fuzzy
+#| msgid "Upgrade Packages"
+msgid "Updating app packages"
+msgstr "Pakketten Bijwerken"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Verboden"
@@ -8143,7 +8345,7 @@ msgstr ""
msgid "Installation"
msgstr "Installatie"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Service %(service_name)s is niet actief."
@@ -8410,6 +8612,10 @@ msgstr "Van router/WAN-poorten"
msgid "To %(box_name)s Ports"
msgstr "Naar %(box_name)s poorten"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "De toepassing is geïnstalleerd."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Deze toepassing installeren?"
@@ -8419,22 +8625,14 @@ msgid "This application needs an update. Update now?"
msgstr "Deze toepassing heeft een update nodig. Nu bijwerken?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Er wordt al een andere installatie of upgrade uitgevoerd. Wacht even voor je "
-"het opnieuw probeert."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Deze toepassing is momenteel niet beschikbaar in jouw distributie."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Controleer opnieuw"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8444,36 +8642,105 @@ msgstr ""
"systeem geïnstalleerd zijn conflicteren met de installatie van deze app. De "
"volgende pakketten zullen worden verwijderd als deze app wordt geïnstalleerd:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Installeer"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Update"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Pre-Install bewerkingen worden uitvoerd"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Installeer"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Post-install bewerkingen worden uitgevoerd"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Gebruiker %(username)s wijzigen"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Installeren van %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% voltooid"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Instelling onveranderd"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#~ msgid "Network Connections"
+#~ msgstr "Netwerkverbindingen"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Tor Inschakelen"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Tor configuratie wordt bijgewerkt"
+
+#~ msgid "Error during installation"
+#~ msgstr "Fout tijdens installatie"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "Gebruikt DNSSEC op IPv{kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Er wordt al een andere installatie of upgrade uitgevoerd. Wacht even voor "
+#~ "je het opnieuw probeert."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Pre-Install bewerkingen worden uitvoerd"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Post-install bewerkingen worden uitgevoerd"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Installeren van %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% voltooid"
+
+#~ 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 vereist dat je toegang krijgt via een domeinnaam. Het zal niet "
+#~ "werken wanneer je toegang krijgt via een IP-adres als onderdeel van de "
+#~ "URL."
+
+#~ msgid "Access"
+#~ msgstr "Toegang"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr ""
+#~ "Cockpit werkt alleen wanneer deze wordt geopend met de volgende URL's."
+
+#~ msgid "WebRTC server"
+#~ msgstr "WebRTC server"
+
#~ msgid "Server URL"
#~ msgstr "Server-URL"
@@ -8917,11 +9184,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Domeinnaam instellen mislukt: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Er is een fout opgetreden tijdens de configuratie."
-
#~ msgid "The alias was taken"
#~ msgstr "Deze alias is al in gebruik"
@@ -9450,9 +9712,6 @@ msgstr "Gujarati"
#~ msgid "Service enabled: {name}"
#~ msgstr "Dienst ingeschakeld: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Dienst uitgeschakeld: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "PageKite Account"
@@ -9937,9 +10196,6 @@ msgstr "Gujarati"
#~ msgid "Automatic Upgrades"
#~ msgstr "Automatisch bijwerken"
-#~ msgid "Upgrade Packages"
-#~ msgstr "Pakketten Bijwerken"
-
#~ msgid "Path"
#~ msgstr "Pad"
@@ -10256,9 +10512,6 @@ msgstr "Gujarati"
#~ msgid "IP Check URL"
#~ msgstr "IP-Check URL"
-#~ msgid "Bridge"
-#~ msgstr "Bridge"
-
#~ msgid "Enable network time"
#~ msgstr "Netwerktijd Inschakelen"
@@ -10486,9 +10739,6 @@ msgstr "Gujarati"
#~ msgid "The operating system is up to date now. "
#~ msgstr "Het besturingssysteem is nu bijgewerkt. "
-#~ msgid "Show Details"
-#~ msgstr "Toon Details"
-
#~ msgid ""
#~ "This will run unattended-upgrades, which will attempt to upgrade your "
#~ "system with the latest Debian packages. It may take a few minutes to "
diff --git a/plinth/locale/pl/LC_MESSAGES/django.po b/plinth/locale/pl/LC_MESSAGES/django.po
index a979b7045..356b628c5 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2022-05-10 02:10+0000\n"
"Last-Translator: ikmaak \n"
"Language-Team: Polish any user on {box_name} "
@@ -1182,30 +1181,16 @@ msgstr ""
"Dostęp do niego mają użytkownicy {box_name} z do "
"grupy administratorów."
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Administracja serwera"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Dostęp"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1220,7 +1205,7 @@ msgstr "Ustawienia główne"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Konfiguruj"
@@ -1312,43 +1297,65 @@ msgid "Show apps and features that require more technical knowledge."
msgstr ""
"Pokazuje aplikacje i cechy, które wymagają głębszej wiedzy technicznej."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Błąd podczas ustawiania nazwy hosta: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Nazwa hosta ustawiona"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Błąd ustawiania nazwy domeny {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Nazwa domeny ustawiona"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Błąd podczas ustawiania strony domowej serwera web: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Ustawiono stronę domową serwera web"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Błąd podczas zmiany trybu zaawansowanego: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Wyświetlanie zaawansowanych aplikacji i cech"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Ukrywanie zaawansowanych aplikacji i cech"
@@ -1368,11 +1375,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "Asystent VoIP"
@@ -1399,11 +1406,11 @@ msgstr ""
"Serwer czasu jest programem, który utrzymuje czas systemowy w synchronizacji "
"z serwerami w Internecie."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Czas i data"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Zsynchronizowano czas z serwerem NTP"
@@ -1444,17 +1451,17 @@ msgstr ""
"Domyślne hasło to „deluge”, ale należy się zalogować i zmienić je "
"natychmiast po włączeniu tej usługi."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Ściągnij pliki korzystając z aplikacji BitTorrent"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "Klient BitTorrent"
@@ -1475,55 +1482,55 @@ msgstr ""
"dzialają jak należy."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnostyka"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "udało się"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "nie udało się"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "błąd"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1575,7 +1582,7 @@ msgstr "Test"
msgid "Result"
msgstr "Wynik"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Test diagnostyczny"
@@ -1628,11 +1635,11 @@ msgstr ""
"pod adresem freedns."
"afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Klient Dynamic DNS"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Dynamiczna nazwa domeny"
@@ -1764,13 +1771,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1858,12 +1866,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Serwer czatu"
@@ -1966,7 +1974,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2015,23 +2023,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Chat Server"
msgid "Email Server"
msgstr "Serwer czatu"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Create Repository"
msgid "My Email Aliases"
msgstr "Utwórz repozytorium"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Create Repository"
msgid "Manage Aliases for Mailbox"
@@ -2071,7 +2079,7 @@ msgstr ""
msgid "Aliases"
msgstr "Utwórz repozytorium"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2161,7 +2169,7 @@ msgstr ""
"ruch sieciowy na twoim {box_name}. Włączony i poprawnie skonfigurowany "
"firewall redukuje ryzyko zagrożeń z Internetu."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
@@ -2307,15 +2315,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2438,33 +2446,33 @@ msgstr "Usuń wiki lub blog %(name)s"
msgid "Delete this repository permanently?"
msgstr "Usunąć trwale to archiwum?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
#, fuzzy
#| msgid "Repository removed."
msgid "Repository created."
msgstr "Usunięto repozytorium."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
#, fuzzy
#| msgid "Repository removed."
msgid "Repository edited."
msgstr "Usunięto repozytorium."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
#, fuzzy
#| msgid "Create Repository"
msgid "Edit repository"
msgstr "Utwórz repozytorium"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Dokumentacja"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
#, fuzzy
#| msgid "Manual"
@@ -2472,28 +2480,28 @@ msgctxt "User guide"
msgid "Manual"
msgstr "Instrukcja"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "O FreedomBox"
@@ -2605,6 +2613,41 @@ msgstr ""
msgid "Learn more..."
msgstr "Dowiedz się więcej..."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2723,16 +2766,16 @@ msgstr ""
"Usuń wszystkie hasła lub inne informacje osobowe z loga przed zgłoszeniem "
"raportu o błędzie."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "DOkumentacja i FAQ"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "O {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "{box_name} Podręcznik"
@@ -2757,23 +2800,23 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
#, fuzzy
#| msgid "Enable application"
msgid "Manage I2P application"
msgstr "Aktywuj aplikację"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
#, fuzzy
#| msgid "Go to Networks"
msgid "Anonymity Network"
msgstr "Przejdź do sieci"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2826,15 +2869,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki i blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
#, fuzzy
#| msgid "Services and Applications"
msgid "View and edit wiki applications"
@@ -2874,8 +2917,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Aktualizuj ustawienia"
@@ -2892,32 +2935,32 @@ msgstr ""
"Ta akcja spowoduje usunięcie wszystkich postów, stron oraz komentarzy - w "
"tym historii zmian. Trwale usunąć wiki lub blog?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} zostało usunięte."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2934,11 +2977,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2957,28 +3000,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Serwer Web"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2990,7 +3031,7 @@ msgstr ""
msgid "JavaScript license information"
msgstr "Informacje o licencji JavaScript"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -2998,11 +3039,11 @@ msgstr ""
"JSXC jest klientem przeglądarkowym XMPP. Zazwyczaj używany jest z serwerem "
"XMPP uruchomionym lokalnie."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Klient czatu"
@@ -3148,7 +3189,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -3182,8 +3223,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Konfiguracja"
@@ -3254,12 +3295,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3328,53 +3369,53 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
#, fuzzy
#| msgid "Password"
msgid "Password updated"
msgstr "Hasło"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
#, fuzzy
#| msgid "Application installed."
msgid "Public registrations enabled"
msgstr "Aplikacja zainstalowania."
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
#, fuzzy
#| msgid "Application installed."
msgid "Public registrations disabled"
msgstr "Aplikacja zainstalowania."
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
#, fuzzy
#| msgid "Application enabled"
msgid "Private mode enabled"
msgstr "Aplikacja włączona"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
#, fuzzy
#| msgid "Application disabled"
msgid "Private mode disabled"
msgstr "Aplikacja wyłączona"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
#, fuzzy
#| msgid "Setting unchanged"
msgid "Default skin changed"
msgstr "Ustawienie bez zmian"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "Nazwa domeny ustawiona"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3389,11 +3430,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
#, fuzzy
#| msgid "Blocked"
msgid "Block Sandbox"
@@ -3440,7 +3481,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3451,15 +3492,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3512,11 +3553,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3566,17 +3607,17 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Upload password updated"
msgid "Join password changed"
msgstr "Zmieniono hasło do przesyłania"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3611,27 +3652,22 @@ msgstr ""
msgid "Services"
msgstr "Urządzenie"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -4153,7 +4189,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -4173,13 +4209,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -4200,7 +4236,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -4212,13 +4248,13 @@ msgstr "Odmowa dostępu"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4401,265 +4437,261 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
#, fuzzy
#| msgid "Disabled"
msgid "disabled"
msgstr "Wyłączony"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
#, fuzzy
#| msgid "Manual"
msgid "manual"
msgstr "Instrukcja"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
#, fuzzy
#| msgid "Connection refused"
msgid "connecting"
msgstr "Odmowa dostępu"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
#, fuzzy
#| msgid "Use HTTP basic authentication"
msgid "needs authentication"
msgstr "Użyj podstawowej autentyfikacji HTTP"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
#, fuzzy
#| msgid "configuration file: {file}"
msgid "configuration failed"
msgstr "plik konfiguracyjny: {file}"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
#, fuzzy
#| msgid "Archive deleted."
msgid "DHCP client failed"
msgstr "Archiwum zostało usunięte."
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
#, fuzzy
#| msgid "PVP configuration updated"
msgid "shared connection service failed"
msgstr "Zaktualizowano ustawienia PVP"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
#, fuzzy
#| msgid "The requested domain is already registered."
msgid "device was removed"
msgstr "Wnioskowana domena jest już zarejstrowana."
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
#, fuzzy
#| msgid "Repository not found"
msgid "Wi-Fi network not found"
msgstr "Nie odnaleziono repozytorium"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
#, fuzzy
#| msgid "Access"
msgid "access point"
msgstr "Dostęp"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4674,22 +4706,22 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
#, fuzzy
#| msgid "Connection refused"
msgid "Connect to VPN services"
msgstr "Odmowa dostępu"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4797,15 +4829,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4911,36 +4943,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4957,7 +4989,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -5036,21 +5068,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -5074,11 +5107,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -5103,12 +5136,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -5173,7 +5206,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Zaktualizowano ustawienia praw dostępu"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5181,7 +5214,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5190,7 +5223,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5200,7 +5233,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
#, fuzzy
#| msgid "Dynamic DNS Client"
msgid "Email Client"
@@ -5217,6 +5250,45 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Dowolny użytkownik za pomocą {box_name} loginu "
+"może mieć dostęp do Tiny Tiny RSS, gdy ten jest włączony."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5248,15 +5320,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -5386,15 +5458,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5475,7 +5547,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5548,12 +5620,12 @@ msgstr "Nie"
msgid "Not running"
msgstr "Interfejs deluge nie jest uruchomiony"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Błąd ustawienia ograniczonego dostępu: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Zaktualizowano ustawienia bezpieczeństwa"
@@ -5567,11 +5639,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5603,11 +5675,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5638,14 +5710,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5693,28 +5765,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5862,7 +5934,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
#, fuzzy
#| msgid "Delete %(name)s"
msgid "Delete Snapshots"
@@ -5912,61 +5984,61 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
#, fuzzy
#| msgid "Repository removed."
msgid "manually created"
msgstr "Usunięto repozytorium."
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
#, fuzzy
#| msgid "Delete %(name)s"
msgid "Manage Snapshots"
msgstr "Usuń %(name)s"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
#, fuzzy
#| msgid "Access rights configuration updated"
msgid "Storage snapshots configuration updated"
msgstr "Zaktualizowano ustawienia praw dostępu"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
#, fuzzy
#| msgid "Delete %(name)s"
msgid "Deleted selected snapshots"
msgstr "Usuń %(name)s"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5978,7 +6050,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -6025,7 +6097,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr "Nie powiodła się autoryzacja na zdalnym serwerze."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -6047,106 +6119,106 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} bajtów"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
#, fuzzy
#| msgid "The requested domain is already registered."
msgid "The device is already mounted."
msgstr "Wnioskowana domena jest już zarejstrowana."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6290,16 +6362,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6319,40 +6391,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6362,37 +6434,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Włącz przekaźnik Tora"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6400,24 +6468,24 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
#, fuzzy
#| msgid "Enable Tor relay"
msgid "Enable Tor Hidden Service"
msgstr "Włącz przekaźnik Tora"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6425,18 +6493,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6448,23 +6516,27 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
#, fuzzy
#| msgid "Dynamic DNS Service"
msgid "Onion Service"
msgstr "Usługa dynamicznego DNS"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Ustawienie bez zmian"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Podczas konfiguracji wystąpił błąd."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Błąd podczas instalowania aplikacji: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6513,7 +6585,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -6543,15 +6615,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6572,8 +6640,8 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
#, fuzzy
@@ -6581,30 +6649,30 @@ msgstr ""
msgid "Software Update"
msgstr "Archiwum zostało usunięte."
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
#| msgid "FreedomBox Foundation"
msgid "FreedomBox Updated"
msgstr "Fundacja FreedomBox"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
#, fuzzy
#| msgid "User registrations disabled"
msgid "Distribution update started"
msgstr "Rejestracja użytkowników wyłączona"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6690,6 +6758,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6749,41 +6818,65 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "User registrations disabled"
+msgid "Test Distribution Upgrade"
+msgstr "Rejestracja użytkowników wyłączona"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "User registrations disabled"
+msgid "Test distribution upgrade now"
+msgstr "Rejestracja użytkowników wyłączona"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
#, fuzzy
#| msgid "User registrations disabled"
msgid "Distribution upgrade disabled"
msgstr "Rejestracja użytkowników wyłączona"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "User registrations disabled"
+msgid "Starting distribution upgrade test."
+msgstr "Rejestracja użytkowników wyłączona"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6799,15 +6892,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -7433,12 +7526,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
#, fuzzy
#| msgid "Wiki and Blog"
msgid "Website and Blog"
@@ -7475,11 +7568,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7515,37 +7608,133 @@ msgstr "PPPoE"
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Błąd podczas ustawiania nazwy hosta: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr ""
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Existing Backups"
+msgid "Error running apt-get"
+msgstr "Istniejące kopie zapasowe"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "plik konfiguracyjny: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Instaluj aplikacje"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Błąd podczas instalowania aplikacji: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Błąd podczas instalowania aplikacji: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Błąd podczas instalowania aplikacji: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Błąd podczas instalowania aplikacji: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Aplikacja zainstalowania."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Ostatnie uaktualnienie"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Instaluj aplikacje"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Błąd podczas instalowania aplikacji: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Błąd podczas instalowania aplikacji: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Aplikacja zainstalowania."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Dostęp zabroniony"
@@ -7604,7 +7793,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Usługa %(service_name)s nie jest uruchomiona."
@@ -7882,6 +8071,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr "Konfiguracja %(box_name)s"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Aplikacja zainstalowania."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7891,56 +8084,72 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Application installed."
+msgid "Uninstall"
+msgstr "Aplikacja zainstalowania."
+
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Edytuj Użytkownika %(username)s"
+
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
msgstr ""
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr ""
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Ustawienie bez zmian"
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#~ msgid "Access"
+#~ msgstr "Dostęp"
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Serwer Web"
+
#, fuzzy
#~| msgid "Chat Server"
#~ msgid "Server URL"
@@ -8145,11 +8354,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Błąd ustawiania nazwy domeny {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Podczas konfiguracji wystąpił błąd."
-
#, fuzzy
#~| msgid "Disabled"
#~ msgid "Disable selected"
diff --git a/plinth/locale/pt/LC_MESSAGES/django.po b/plinth/locale/pt/LC_MESSAGES/django.po
index fc5f27f66..b97b9733a 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-05-08 22:33+0000\n"
"Last-Translator: ssantos \n"
"Language-Team: Portuguese any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Administração do Servidor"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Aceder"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1195,7 +1180,7 @@ msgstr "Configuração Geral"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Configurar"
@@ -1284,43 +1269,65 @@ msgid "Show apps and features that require more technical knowledge."
msgstr ""
"Mostrar aplicações e funcionalidades que requerem conhecimento mais técnico."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Erro ao definir o nome do hospedeiro: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Nome de hospedeiro definido"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Erro ao definir o nome do domínio: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Nome do domínio definido"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Erro ao definir a página inicial do servidor da Web: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Página inicial do servidor da Web definida"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Erro ao alterar o modo avançado: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "A mostrar as aplicações e funcionalidades avançadas"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1340,11 +1347,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1366,11 +1373,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Data e Hora"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1407,17 +1414,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1436,55 +1443,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1531,7 +1538,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1562,11 +1569,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
#, fuzzy
#| msgid "Domain Name"
msgid "Dynamic Domain Name"
@@ -1680,13 +1687,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1768,12 +1776,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1870,7 +1878,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1915,23 +1923,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Web Server"
msgid "Email Server"
msgstr "Servidor Web"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Create new repository"
msgid "My Email Aliases"
msgstr "Criar novo repositório"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Create new repository"
msgid "Manage Aliases for Mailbox"
@@ -1971,7 +1979,7 @@ msgstr ""
msgid "Aliases"
msgstr "Criar novo repositório"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -2058,7 +2066,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2197,15 +2205,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2320,33 +2328,33 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr "Apagar este arquivo permanentemente?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
#, fuzzy
#| msgid "Repository not found"
msgid "Repository created."
msgstr "Repositório não encontrado"
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
#, fuzzy
#| msgid "Repository not found"
msgid "Repository edited."
msgstr "Repositório não encontrado"
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
#, fuzzy
#| msgid "Create new repository"
msgid "Edit repository"
msgstr "Criar novo repositório"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
#, fuzzy
#| msgid "Manual"
@@ -2354,28 +2362,28 @@ msgctxt "User guide"
msgid "Manual"
msgstr "Manual"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr ""
@@ -2478,6 +2486,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2590,16 +2633,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2624,21 +2667,21 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
#, fuzzy
#| msgid "Enable application"
msgid "Manage I2P application"
msgstr "Ativar aplicação"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2699,17 +2742,17 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
#, fuzzy
#| msgid "Enable network time"
msgid "ikiwiki"
msgstr "Ativar tempo da rede"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
#, fuzzy
#| msgid "Services and Applications"
msgid "View and edit wiki applications"
@@ -2749,8 +2792,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2765,33 +2808,33 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, fuzzy, python-brace-format
#| msgid "Archive deleted."
msgid "{title} deleted."
msgstr "Arquivo apagado."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2808,11 +2851,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2831,28 +2874,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Servidor Web"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2864,17 +2905,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -3020,7 +3061,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -3054,8 +3095,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Configuração"
@@ -3127,12 +3168,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3199,51 +3240,51 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
#, fuzzy
#| msgid "Applications"
msgid "Public registrations enabled"
msgstr "Aplicações"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
#, fuzzy
#| msgid "Applications"
msgid "Public registrations disabled"
msgstr "Aplicações"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
#, fuzzy
#| msgid "Applications"
msgid "Private mode enabled"
msgstr "Aplicações"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
#, fuzzy
#| msgid "Applications"
msgid "Private mode disabled"
msgstr "Aplicações"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
#, fuzzy
#| msgid "Setting unchanged"
msgid "Default skin changed"
msgstr "Definição inalterada"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "Nome do domínio definido"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3258,11 +3299,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3309,7 +3350,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3320,15 +3361,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3381,11 +3422,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3429,17 +3470,17 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Upload password updated"
msgid "Join password changed"
msgstr "Palavra-passe de envio atualizada"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3474,27 +3515,22 @@ msgstr ""
msgid "Services"
msgstr "Descoberta do Serviço"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -4018,7 +4054,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -4038,13 +4074,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -4065,7 +4101,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -4077,13 +4113,13 @@ msgstr "Conexão recusada"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4268,269 +4304,265 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
#, fuzzy
#| msgid "Applications"
msgid "disabled"
msgstr "Aplicações"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
#, fuzzy
#| msgid "Manual"
msgid "manual"
msgstr "Manual"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
#, fuzzy
#| msgid "Archive name"
msgid "shared"
msgstr "Nome do arquivo"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
#, fuzzy
#| msgid "Connection refused"
msgid "connecting"
msgstr "Conexão recusada"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
#, fuzzy
#| msgid "Backup archives"
msgid "activated"
msgstr "Arquivos de backup"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
#, fuzzy
#| msgid "Service discovery server is not running"
msgid "device is now unmanaged"
msgstr "O Servidor da descoberta do serviço não está a correr"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
#, fuzzy
#| msgid "Configuration"
msgid "configuration failed"
msgstr "Configuração"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
#, fuzzy
#| msgid "Archive deleted."
msgid "DHCP client failed"
msgstr "Arquivo apagado."
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
#, fuzzy
#| msgid "Configuration updated"
msgid "shared connection service failed"
msgstr "Configuração atualizada"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
#, fuzzy
#| msgid "Repository not found"
msgid "Wi-Fi network not found"
msgstr "Repositório não encontrado"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
#, fuzzy
#| msgid "Network Time Server"
msgid "TUN or TAP interface"
msgstr "Servidor do Tempo da Rede"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
#, fuzzy
#| msgid "Access"
msgid "access point"
msgstr "Aceder"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4545,22 +4577,22 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
#, fuzzy
#| msgid "Connection refused"
msgid "Connect to VPN services"
msgstr "Conexão recusada"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4668,15 +4700,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4782,36 +4814,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4828,7 +4860,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4900,21 +4932,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4938,11 +4971,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4967,12 +5000,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -5039,7 +5072,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Configuração atualizada"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5047,7 +5080,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5056,7 +5089,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5066,7 +5099,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -5081,6 +5114,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5112,15 +5179,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
#, fuzzy
#| msgid "Network Time Server"
msgid "Network File Storage"
@@ -5254,15 +5321,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5343,7 +5410,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5412,13 +5479,13 @@ msgstr ""
msgid "Not running"
msgstr "O Servidor da descoberta do serviço não está a correr"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, fuzzy, python-brace-format
#| msgid "Error setting domain name: {exception}"
msgid "Error setting restricted access: {exception}"
msgstr "Erro ao definir o nome do domínio: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
#, fuzzy
#| msgid "General Configuration"
msgid "Updated security configuration"
@@ -5434,11 +5501,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5468,11 +5535,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5501,14 +5568,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5556,28 +5623,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5717,7 +5784,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5765,57 +5832,57 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
#, fuzzy
#| msgid "Repository not found"
msgid "manually created"
msgstr "Repositório não encontrado"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
#, fuzzy
#| msgid "Configuration updated"
msgid "Storage snapshots configuration updated"
msgstr "Configuração atualizada"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5827,7 +5894,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5870,7 +5937,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5890,106 +5957,106 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
#, fuzzy
#| msgid "Service discovery server is running"
msgid "The device is already unmounting."
msgstr "O Servidor da descoberta do serviço está a correr"
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr "Esta operação pode ligar um disco que esteja no estado de adormecido."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6128,16 +6195,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6157,40 +6224,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6200,39 +6267,35 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
#, fuzzy
#| msgid "Enable network time"
msgid "Enable Tor relay"
msgstr "Ativar tempo da rede"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6240,24 +6303,24 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
#, fuzzy
#| msgid "Enable service discovery"
msgid "Enable Tor Hidden Service"
msgstr "Permitir descoberta do serviço"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6265,18 +6328,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6288,23 +6351,25 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-#, fuzzy
-#| msgid "Configuration updated"
-msgid "Tor configuration is being updated"
-msgstr "Configuração atualizada"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Definição inalterada"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "General Configuration"
+msgid "Updating configuration"
+msgstr "Configuração Geral"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Erro a instalar a aplicação: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6348,7 +6413,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6373,15 +6438,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6402,8 +6463,8 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
#, fuzzy
@@ -6411,30 +6472,30 @@ msgstr ""
msgid "Software Update"
msgstr "Arquivo apagado."
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
#| msgid "FreedomBox"
msgid "FreedomBox Updated"
msgstr "Freedombox"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
#, fuzzy
#| msgid "Applications"
msgid "Distribution update started"
msgstr "Aplicações"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6516,6 +6577,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6577,41 +6639,65 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Applications"
+msgid "Test Distribution Upgrade"
+msgstr "Aplicações"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Applications"
+msgid "Test distribution upgrade now"
+msgstr "Aplicações"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
#, fuzzy
#| msgid "Applications"
msgid "Distribution upgrade disabled"
msgstr "Aplicações"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Applications"
+msgid "Starting distribution upgrade test."
+msgstr "Aplicações"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6627,15 +6713,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -7241,12 +7327,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -7281,11 +7367,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7319,40 +7405,136 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Erro ao definir o nome do hospedeiro: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr ""
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Existing Backups"
+msgid "Error running apt-get"
+msgstr "Backups existentes"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
#, fuzzy
#| msgid "Setting unchanged"
msgid "media change"
msgstr "Definição inalterada"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, fuzzy, python-brace-format
#| msgid "Configuration"
msgid "configuration file: {file}"
msgstr "Configuração"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install"
+msgid "Installing app"
+msgstr "Instalar"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Erro a instalar a aplicação: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Erro a instalar a aplicação: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Erro a instalar a aplicação: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Erro a instalar a aplicação: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Aplicação instalada."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Name"
+msgid "App updated"
+msgstr "Nome"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstalling app"
+msgstr "Instalar"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Erro a instalar a aplicação: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Erro a instalar a aplicação: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Aplicação instalada."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7395,7 +7577,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, fuzzy, python-format
#| msgid "Service discovery server is not running"
msgid "Service %(service_name)s is not running."
@@ -7644,6 +7826,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Aplicação instalada."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Instalar esta aplicação?"
@@ -7653,58 +7839,98 @@ msgid "This application needs an update. Update now?"
msgstr "Esta aplicação precisa de ser atualizada. Atualizar agora?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Outra instalação ou atualização já está em execução. Por favor, aguarde "
-"alguns instantes antes de tentar novamente."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Atualmente, esta aplicação não está disponível na sua distribuição."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Instalar"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "A executar a operação de pré-instalação"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Instalar"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "A executar a operação de pós-Instalação"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Service discovery server is running"
+msgid "Uninstall App %(app_name)s?"
+msgstr "O Servidor da descoberta do serviço está a correr"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "A instalar %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% concluída"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Definição inalterada"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#, fuzzy
+#~| msgid "Configuration updated"
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Configuração atualizada"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Outra instalação ou atualização já está em execução. Por favor, aguarde "
+#~ "alguns instantes antes de tentar novamente."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "A executar a operação de pré-instalação"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "A executar a operação de pós-Instalação"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "A instalar %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% concluída"
+
+#~ msgid "Access"
+#~ msgstr "Aceder"
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Servidor Web"
+
#, fuzzy
#~| msgid "Web Server"
#~ msgid "Server URL"
@@ -7800,11 +8026,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Erro ao definir o nome do domínio: {exception}"
-#, fuzzy
-#~| msgid "General Configuration"
-#~ msgid "Error updating configuration"
-#~ msgstr "Configuração Geral"
-
#, fuzzy
#~| msgid "Applications"
#~ msgid "Enable selected"
diff --git a/plinth/locale/ru/LC_MESSAGES/django.po b/plinth/locale/ru/LC_MESSAGES/django.po
index 752025023..bf1fe6e70 100644
--- a/plinth/locale/ru/LC_MESSAGES/django.po
+++ b/plinth/locale/ru/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
-"PO-Revision-Date: 2022-06-29 21:17+0000\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
+"PO-Revision-Date: 2022-07-12 03:04+0000\n"
"Last-Translator: Nikita Epifanov \n"
"Language-Team: Russian \n"
@@ -18,13 +18,13 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.13.1-dev\n"
+"X-Generator: Weblate 4.14-dev\n"
#: doc/dev/_templates/layout.html:11
msgid "Page source"
msgstr "Исходный код страницы"
-#: plinth/context_processors.py:23 plinth/views.py:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr "FreedomBox"
@@ -54,10 +54,24 @@ msgid "Cannot connect to {host}:{port}"
msgstr "Невозможно подключиться к {host}:{port}"
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+#, fuzzy
+#| msgid "Repository not found"
+msgid "Repository to backup to"
+msgstr "Репозиторий не найден"
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr "Выберите доменное имя, которое будет использоваться этим приложением"
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
@@ -65,12 +79,12 @@ msgstr ""
"Предупреждение! Приложение может не работать должным образом, если доменное "
"имя будет изменено."
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr "Домен TLS"
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
@@ -79,41 +93,27 @@ msgstr ""
"Выберите домен для использования TLS. Если список пуст, настройте хотя бы "
"один домен с сертификатами."
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr "Язык"
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr "Язык, используемый для представления данного веб-интерфейса"
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr "Использовать языковые настройки браузера"
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr "Приложение установлено."
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr "Ошибка при установке пакетов: {string}{details}"
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr "Ошибка при установке приложения: {error}"
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr "Apache HTTP сервер"
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr "Веб-сервер"
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr "{box_name} Веб-интерфейс (Plinth)"
@@ -145,11 +145,11 @@ msgstr ""
"Она может быть отключена в целях повышения безопасности, особенно при "
"подключении к вражеской сети."
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr "Обнаружение служб"
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr "Домен локальной сети"
@@ -158,12 +158,12 @@ msgid "Backups allows creating and managing backup archives."
msgstr ""
"Резервное копирование позволяет создавать и управлять резервными архивами."
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr "Резервные копии"
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
@@ -172,18 +172,18 @@ msgstr ""
"данных. Предпочтительно зашифрованное удаленное место резервного копирования "
"или дополнительный подключенный диск."
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr "Включить расписание резервного копирования"
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr "Перейти в {app_name}"
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
@@ -193,7 +193,7 @@ msgstr ""
"попытки резервного копирования не увенчались успехом. Последняя ошибка: "
"{error_message}"
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr "Ошибка во время резервного копирования"
@@ -211,7 +211,7 @@ msgid ""
"If enabled, a backup is taken every day, every week and every month. Older "
"backups are removed."
msgstr ""
-"Если эта функция включена, резервное копирование выполняется каждый день, "
+"Если эта опция включена, резервное копирование выполняется каждый день, "
"каждую неделю и каждый месяц. Более старые резервные копии удаляются."
#: plinth/modules/backups/forms.py:58
@@ -279,7 +279,7 @@ msgstr "Репозиторий"
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr "Имя"
@@ -293,7 +293,7 @@ msgstr "Выберите приложения, которые вы хотите
#: plinth/modules/backups/forms.py:137
msgid "Upload File"
-msgstr "Скачать файл"
+msgstr "Загрузить файл"
#: plinth/modules/backups/forms.py:139
msgid "Backup files have to be in .tar.gz format"
@@ -395,7 +395,8 @@ msgid ""
"Password of the SSH Server. SSH key-based authentication is not yet "
"possible."
msgstr ""
-"Пароль SSH сервера. SSH key-based authentication is not yet possible."
+"Пароль для сервера SSH. Аутентификация на основе SSH-ключа пока не "
+"поддерживается."
#: plinth/modules/backups/forms.py:267
msgid "Remote backup repository already exists."
@@ -445,7 +446,7 @@ msgid "{box_name} storage"
msgstr "Сохранение данных {box_name}"
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr "Создать новую резервную копию"
@@ -455,11 +456,11 @@ msgstr "Создать резервную копию"
#: plinth/modules/backups/templates/backups.html:24
msgid "Upload and restore a backup archive"
-msgstr "Выгрузить и резервировать архив бэкапа"
+msgstr "Загрузить и восстановить архив резервной копии"
#: plinth/modules/backups/templates/backups.html:28
msgid "Upload and Restore"
-msgstr "Выгрузить и восстановить"
+msgstr "Загрузить и восстановить"
#: plinth/modules/backups/templates/backups.html:31
msgid "Add a backup location"
@@ -475,7 +476,7 @@ msgstr "Создать удаленный репозиторий резервн
#: plinth/modules/backups/templates/backups.html:42
msgid "Add Remote Backup Location"
-msgstr "Добавить расположение удаленного резервного копирования"
+msgstr "Добавить удаленное хранилище резервных копий"
#: plinth/modules/backups/templates/backups.html:46
msgid "Existing Backups"
@@ -497,7 +498,7 @@ msgid "Create Location"
msgstr "Создание расположения"
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr "Создать репозиторий"
@@ -554,7 +555,7 @@ msgstr "Загрузка"
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr "Восстановить"
@@ -657,99 +658,99 @@ msgstr ""
msgid "Verify Host"
msgstr "Проверить хост"
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr "Расписание резервного копирования обновлено."
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr "Расписание резервного копирования"
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr "Архив создан."
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr "Удалить архив"
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr "Архив удалён."
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr "Загрузить и восстановить резервную копию"
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr "Восстановленные файлы из резервного копирования."
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr "Резервных копий не найдено."
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr "Восстановить из загруженного файла"
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr "Нет дополнительных дисков, чтобы добавить репозиторий."
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr "Создать репозиторий резервных копий"
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr "Создать удаленный репозиторий резервного сохранения"
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr "Добавлен новый удалённый SSH-репозиторий."
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr "Проверить ключ SSH хоста"
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr "SSH хост уже проверен."
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr "SSH хост проверен."
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr "Открытый ключ SSH хоста не может быть проверен."
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr "Аутентификация на удалённый сервер не прошла."
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr "Ошибка при установке соединения с сервером: {}"
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr "Репозиторий удалён."
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr "Удалить репозиторий"
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr "Репозиторий удален. Бэкапы не удалялись."
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr "Размонтирование не удалось!"
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr "Монтирование не удалась"
@@ -789,39 +790,39 @@ msgstr ""
"раздать их разным людям или группам. Это позволит вам позже отозвать доступ "
"для отдельного человека или группы, удалив их пароль из списка."
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr "Прочитать файл, если имеется веб-ссылка на файл"
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr "Создавать или загружать файлы"
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr "Список всех файлов и их веб-ссылок"
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr "Удалить файлы"
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr "Администрирование файлов: блокировка/разблокировка файлов"
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr "Нет, пароль требуется всегда"
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr "Список и чтение всех файлов"
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr "bepasty"
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr "Обмен файлами и фрагментами"
@@ -915,16 +916,15 @@ msgstr "Удалить"
msgid "Admin"
msgstr "Админ"
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr "Конфигурация обновлена."
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr "Произошла ошибка во время настройки."
@@ -959,11 +959,11 @@ msgstr ""
"разрешения запросов DNS для другой машины в локальной сети. Оно также "
"несовместимо с общим доступом к подключению интернета от {box_name}."
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr "BIND"
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr "Сервер доменных имен"
@@ -1016,12 +1016,12 @@ msgstr "IP-адреса"
msgid "Refresh IP address and domains"
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:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -1064,15 +1064,15 @@ msgstr ""
"получить доступ к приложению. Все пользователи с доступом могут использовать "
"все библиотеки."
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "Использовать библиотеки электронных книг calibre"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "Электронная библиотека"
@@ -1136,25 +1136,25 @@ msgstr "Перейти в библиотеку %(library)s"
msgid "Delete library %(library)s"
msgstr "Удалить библиотеку %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "Библиотека создана."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "Ошибка при создании библиотеки."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} удален."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "Не удалось удалить {name}: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1167,7 +1167,7 @@ msgstr ""
"многих продвинутых функций, которые, как правило, не требуется. Веб-терминал "
"на основе консоли управления также доступен."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1179,7 +1179,7 @@ msgstr ""
"использовать для открытия настраиваемых портов брандмауэра и расширенных "
"сетей, таких как связывание, мостовое соединение и управление VLAN."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1188,32 +1188,16 @@ msgstr ""
"Доступ к нему может получить любой пользователь "
"на {box_name}, принадлежащий группе администраторов."
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-"Доступ в Кокпит возможен только через доменное имя. Доступ невозможен, если "
-"использовать IP-адрес как часть URL."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Администрирование сервера"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Доступ"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Кокпит будет работать, только если использовать следующие адреса."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1228,7 +1212,7 @@ msgstr "Общие настройки"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Настроить"
@@ -1322,43 +1306,67 @@ msgid "Show apps and features that require more technical knowledge."
msgstr ""
"Показать приложения и функции, которые требуют больше технических знаний."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Monitoring"
+msgid "System-wide logging"
+msgstr "Системный мониторинг"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Ошибка параметра hostname: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Смена имени хоста"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Ошибка параметра имени домена: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Смена доменного имени"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Ошибка параметра домашней страницы веб-сервера: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Установка домашней страницы веб-сервера"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Ошибка при изменении расширенного режима: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Показать продвинутые приложения и функции"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Скрыть продвинутые приложения и функции"
@@ -1385,11 +1393,11 @@ msgstr ""
"серверы, как Matrix Synapse или ejabberd, должны быть настроены с указанными здесь деталями."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "VoIP-помощник"
@@ -1415,11 +1423,11 @@ msgstr ""
"Сервер сетевого времени это программа позволяющая системе синхронизировать "
"время с серверами в Интернете."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Дата и Время"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Время синхронизируется с NTP сервером"
@@ -1460,19 +1468,19 @@ msgstr ""
"Пароль по умолчанию - 'deluge', но вы должны войти в систему и изменить его "
"сразу после включения этой службы."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Загружать файлы используя приложения BitTorrent"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Delugе"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
-msgstr "BitTorrent Веб Клиент"
+msgstr "Веб-клиент BitTorrent"
#: plinth/modules/deluge/forms.py:20 plinth/modules/transmission/forms.py:20
msgid "Download directory"
@@ -1487,54 +1495,54 @@ 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:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Диагностика"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "успешно"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "сбой"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "ошибка"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "предупреждение"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "МБ"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "ГБ"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
"Вы должны отключить некоторые приложения, чтобы уменьшить использование "
"памяти."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Вы не должны устанавливать никаких новых приложений в этой системе."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1543,14 +1551,14 @@ msgstr ""
"В системе мало памяти: использовано {percent_used}%, свободно "
"{memory_available} {memory_available_unit}. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
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"
@@ -1593,7 +1601,7 @@ msgstr "Тест"
msgid "Result"
msgstr "Результат"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Диагностический тест"
@@ -1604,9 +1612,9 @@ msgid ""
"24h), it may be hard for others to find you on the Internet. This will "
"prevent others from finding services which are provided by this {box_name}."
msgstr ""
-"Если ваш Интернет-провайдер меняет ваш IP-адрес периодически,(например, раз "
-"в 24 часа) это может стать препятствиям, чтобы найти вас в Интернете. Это "
-"так-же может сделать недоступными предоставляемые {box_name} услуги."
+"Если ваш интернет-провайдер периодически (т.е. каждые 24 часа) меняет ваш IP-"
+"адрес, другим может быть трудно найти вас в Интернете. Это помешает другим "
+"найти службы, предоставляемые {box_name}."
#: plinth/modules/dynamicdns/__init__.py:33
msgid ""
@@ -1638,11 +1646,11 @@ msgstr ""
"обновления URL-адреса на freedns.afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Клиент динамического DNS"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Динамическое доменное имя"
@@ -1768,13 +1776,14 @@ msgid "This field is required."
msgstr "Это поле обязательно."
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1841,9 +1850,9 @@ msgid ""
"any user with a {box_name} login."
msgstr ""
"Для общения вы можете использовать веб-клиент или "
-"любой другой "
-"XMPP клиент. Когда включено, ejabberd доступен всем пользователям {box_name} ."
+"любой другой XMPP клиент. Когда включен, ejabberd доступен всем пользователям {box_name}."
#: plinth/modules/ejabberd/__init__.py:42
#, python-brace-format
@@ -1854,12 +1863,12 @@ msgstr ""
"ejabberd необходим сервер STUN/TURN для аудио/видео звонков. Установите "
"приложение Coturn или настройте внешний сервер."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "еjabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Чат-сервер"
@@ -1926,7 +1935,7 @@ msgstr "Общий секрет, используемый для вычисле
#: plinth/modules/ejabberd/manifest.py:10
msgid "Conversations"
-msgstr "Беседы"
+msgstr "Conversations"
#: plinth/modules/ejabberd/manifest.py:24
msgid "Xabber"
@@ -1968,7 +1977,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2034,19 +2043,19 @@ msgstr ""
"Во время установки все другие почтовые серверы в системе будут "
"деинсталлированы."
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr "Postfix/Dovecot"
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "Сервер электронной почты"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr "Переадресация"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr "Управление переадресацией"
@@ -2082,7 +2091,7 @@ msgstr "Не может быть числом"
msgid "Aliases"
msgstr "Псевдонимы"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2125,7 +2134,6 @@ msgid "DNS Records"
msgstr "Записи DNS"
#: plinth/modules/email/templates/email.html:25
-#, fuzzy
msgid ""
"The following DNS records must be added manually on your primary domain for "
"the mail server to work properly."
@@ -2138,7 +2146,6 @@ msgid "TTL"
msgstr "TTL"
#: plinth/modules/email/templates/email.html:37
-#, fuzzy
msgid "Class"
msgstr "Класс"
@@ -2171,7 +2178,7 @@ msgstr ""
"правильно настроенным, чтобы уменьшить риск информационной опасности из "
"Интернета."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Брандмауэр"
@@ -2301,7 +2308,7 @@ msgstr ""
#: plinth/modules/first_boot/templates/firstboot_welcome.html:29
msgid "Start Setup"
-msgstr "Запуск программы установки"
+msgstr "Начать установку"
#: plinth/modules/first_boot/views.py:50
msgid "Setup Complete"
@@ -2334,15 +2341,15 @@ msgstr ""
"Чтобы узнать больше о том, как использовать Git, посетите Git tutorial."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Доступ к Git-репозиторию с возможностью чтения и записи"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Простой хостинг Git"
@@ -2440,54 +2447,54 @@ msgstr "Удалить репозиторий Git %(name)s"
msgid "Delete this repository permanently?"
msgstr "Удалить этот репозиторий навсегда?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Репозиторий создан."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Ошибка при создании репозитория."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Репозиторий отредактирован."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Редактировать репозиторий"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Документация"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Руководство"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Получить поддержку"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Отправить отзыв"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Помощь проекту"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "О проекте"
@@ -2621,6 +2628,41 @@ msgstr ""
msgid "Learn more..."
msgstr "Подробнее..."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2763,16 +2805,16 @@ msgstr ""
"Удалите любые пароли или другую личную информацию из журнала перед отправкой "
"отчета об ошибке."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Документация и FAQ"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "О {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "Руководство {box_name}"
@@ -2804,19 +2846,19 @@ msgid ""
msgstr ""
"При первом посещении веб-интерфейса будет запущен процесс конфигурации."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "Управление приложением I2P"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Анонимная сеть"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "I2P Прокси"
@@ -2827,7 +2869,7 @@ msgstr "Прокси и туннели I2P"
#: plinth/modules/i2p/templates/i2p.html:21
#: plinth/modules/i2p/templates/i2p.html:34 plinth/templates/clients.html:28
msgid "Launch"
-msgstr "Запуск"
+msgstr "Запустить"
#: plinth/modules/i2p/templates/i2p.html:25
msgid "Anonymous Torrents"
@@ -2885,15 +2927,15 @@ msgstr ""
"href=\"{users_url}\">Конфигурация пользователей вы можете изменить "
"разрешения или добавить новых пользователей."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Вики и Блог"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Просмотр и редактирование приложений Wiki"
@@ -2931,8 +2973,8 @@ msgstr "Удаление узла %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Обновить настройки"
@@ -2949,32 +2991,32 @@ msgstr ""
"Это действие приведет к удалению всех постов, страниц и комментариев, "
"включая историю изменений. Окончательно удалить этот вики или блог?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Создать вики {name}."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Не удалось создать вики: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Созданный блог {name}."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Не удалось создать блог: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} удалён."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "Не удалось удалить {title}: {error}"
@@ -2994,11 +3036,11 @@ msgstr ""
"a>, настольный клиент и установите его. Затем запустите Gobby и выберите "
"«Подключиться к серверу» и введите доменное имя вашего {box_name}."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Сервер Gobby"
@@ -3019,26 +3061,28 @@ msgstr ""
"Запустите Gobby, выберите \"Подключиться к серверу\" и введите доменное имя "
"вашего {box_name}."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr "Janus - это лёгкий сервер WebRTC."
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr "Включает в себя простую комнату видеоконференций."
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr "Coturn необходим для использования Janus."
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr "Janus"
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
-msgstr "Сервер WebRTC"
+#: plinth/modules/janus/__init__.py:43
+#, fuzzy
+#| msgid "Janus Video Room"
+msgid "Video Room"
+msgstr "Видеокомната Janus"
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3050,7 +3094,7 @@ msgstr "Видеокомната Janus"
msgid "JavaScript license information"
msgstr "Информация о лицензии JavaScript"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3058,11 +3102,11 @@ msgstr ""
"JSXC является веб-клиентом для XMPP. Обычно он используется с XMPP сервером "
"работающим локально."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Чат-клиент"
@@ -3229,7 +3273,7 @@ msgstr ""
"Установите приложение Coturn или настройте "
"внешний сервер."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3268,8 +3312,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Конфигурация"
@@ -3373,12 +3417,12 @@ msgstr ""
"Кто угодно, имея ссылку на wiki, может читать её. Только зарегистрированные "
"пользователи могут вносить изменения."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3387,10 +3431,6 @@ msgid "Administrator Password"
msgstr "Пароль администратора"
#: plinth/modules/mediawiki/forms.py:27
-#, fuzzy
-#| msgid ""
-#| "Set a new password for MediaWiki's administrator account (admin). Leave "
-#| "this field blank to keep the current password."
msgid ""
"Set a new password for MediaWiki's administrator account (admin). The "
"password cannot be a common one and the minimum required length is "
@@ -3457,39 +3497,39 @@ msgstr ""
"Выберите скин по умолчанию для вашей установки MediaWiki. Пользователи могут "
"выбрать предпочитаемый скин."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Пароль обновлен"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr "Не удалось обновить пароль. Пожалуйста, выберите более надежный пароль"
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Публичная регистрация включена"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Публичная регистрация отключена"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Режим приватности включен"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Режим приватности выключен"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Скин по умолчанию изменен"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr "Доменное имя обновлено"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr "Название сайта обновлено"
@@ -3501,16 +3541,16 @@ msgid ""
"(30000). To connect to the server, a Minetest client is needed."
msgstr ""
-"Minetest это многопользовательская песочница с бесконечным миром. Этот "
-"модуль позволяет серверу Minetest работать на {box_name}, на стандартном "
-"порту (30000). Для подключения к серверу требуется Minetest клиент."
+"Minetest - это многопользовательская песочница с бесконечным миром. Этот "
+"модуль позволяет запустить сервер Minetest на этом {box_name}, с портом по "
+"умолчанию (30000). Для подключения к серверу необходим клиент Minetest."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Песочница"
@@ -3562,7 +3602,7 @@ msgstr ""
msgid "Address"
msgstr "Адрес"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3580,15 +3620,15 @@ msgstr ""
"медиаплеерами, смартфонами, телевизорами и игровыми системами (такими как "
"PS3 и Xbox 360) или такими приложениями, как totem и Kodi."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Сервер потоковой передачи мультимедиа"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Простой медиа-сервер"
@@ -3651,11 +3691,11 @@ msgstr ""
"href=\"http://mumble.info\">Клиенты для подключения к Mumble с "
"настольных и мобильных устройств так же доступны."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Голосовой чат"
@@ -3676,10 +3716,6 @@ msgid "Set a password to join the server"
msgstr "Установите пароль для подключения к серверу"
#: plinth/modules/mumble/forms.py:42
-#, fuzzy
-#| msgid ""
-#| "Set a new upload password for Coquelicot. Leave this field blank to keep "
-#| "the current password."
msgid ""
"Set a password that is required to join the server. Leave empty to use the "
"current password."
@@ -3707,15 +3743,15 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "Пароль суперпользователя успешно обновлён."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr "Пароль для подключения обновлён"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr "Имя корневого канала изменено."
@@ -3734,7 +3770,7 @@ msgstr ""
#: plinth/modules/names/__init__.py:43
msgid "Name Services"
-msgstr "Название услуги"
+msgstr "Службы имён"
#: plinth/modules/names/components.py:12
msgid "All"
@@ -3752,7 +3788,7 @@ msgstr "Sеcure Shell"
msgid "Services"
msgstr "Службы"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3760,7 +3796,7 @@ msgstr ""
"Настроить сетевые устройства. Подключайтесь к Интернету через Ethernet, Wi-"
"Fi или PPPoE. Поделитесь этим подключением с другими устройствами в сети."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3768,15 +3804,10 @@ msgstr ""
"Устройства, администрируемые другими методами, могут быть недоступны для "
"настройки здесь."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Сети"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "Использовать DNSSEC на IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Тип подключения"
@@ -4104,7 +4135,7 @@ msgstr ""
"Интернете могут связаться с вами, когда вы подключены к Интернету. Каждый "
"раз, когда вы подключаетесь к Интернету через вашего интернет-провайдера "
"(ISP), вы всегда получаете один и тот же IP-адрес. Это наиболее "
-"беспроблемная установка для многих {box_name} сервисов, но очень немногие "
+"беспроблемная установка для многих служб {box_name}, но очень немногие "
"интернет-провайдеры предлагают это. Вы можете получить эту услугу у своего "
"интернет-провайдера, внеся дополнительную плату.
"
@@ -4392,7 +4423,7 @@ msgid "Create Connection"
msgstr "Создание подключения"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Удаление подключения"
@@ -4412,13 +4443,13 @@ msgstr "Интервал"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4439,7 +4470,7 @@ msgid "Computer"
msgstr "Компьютер"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Редактирование подключения"
@@ -4449,13 +4480,13 @@ msgstr "Подключения"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Соседние сети Wi-Fi"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Добавить подключение"
@@ -4635,10 +4666,10 @@ msgid ""
"configured to forward all traffic it receives so that %(box_name)s provides "
"the services."
msgstr ""
-"При такой настройке любое устройство в Интернете, пытающееся подключиться к "
-"вашему %(box_name)s, должно будет проходить через ваш маршрутизатор. "
-"Маршрутизатор необходимо настроить для пересылки всего получаемого трафика, "
-"чтобы %(box_name)s предоставлял услуги."
+"При такой настройке любое устройство в Интернете, пытающееся связаться с "
+"вашим %(box_name)s, должно будет пройти через маршрутизатор. Маршрутизатор "
+"должен быть настроен на пересылку всего трафика, который он получает, чтобы "
+"%(box_name)s предоставлял службы."
#: plinth/modules/networks/templates/router_configuration_content.html:32
msgid ""
@@ -4681,245 +4712,241 @@ msgstr ""
"маршрутизатору. Это предоставит полные инструкции о том, как выполнить эту "
"задачу."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "выключено"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "автоматически"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "вручную"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "совместно"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr "локальная ссылка"
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "неизвестно"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "неуправляемый"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "недоступно"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "отключено"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "подготовка"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "подключение"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "требуется аутентификация"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "запрашиваемый адрес"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "проверка"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr "ожидание вторичного"
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "активировано"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "деактивировано"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "без причины"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "неизвестная ошибка"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "устройство теперь управляется"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "устройство теперь не управляется"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "конфигурация не удалась"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr "требуются секреты"
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "Клиент DHCP не смог запуститься"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "Ошибка клиента DHCP"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "Сбой клиента DHCP"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr "не удалось запустить службу общего подключения"
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "сбой общей службы подключений"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "устройство было удалено"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "устройство отключено пользователем"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr "не удалось установить зависимость соединения"
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "Сеть Wi-Fi не найдена"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "вторичное соединение не удалось"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr "активация нового соединения поставлена в очередь"
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "обнаружен дубликат IP-адреса"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "выбранный метод IP не поддерживается"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "универсальный"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "Интерфейс TUN или TAP"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad-hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "инфраструктура"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "точка доступа"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "точка mesh"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Сетевые подключения"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Не удается показать подключение: соединение не найдено."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Сведения о подключении"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Нельзя редактировать подключение: подключение не найдено."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Этот тип подключения еще не понятен."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "Установленное подключение {name}."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Невозможно установить подключение: Подключение не найдено."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr "Не удалось установить подключение {name}: Нет подходящего устройства."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Разорвано подключение {name}."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Не удалось разорвать подключение: соединение не найдено."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Добавление нового общего подключения"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Добавление нового подключения Ethernet"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Добавление нового подключения PPPoE"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Добавление нового подключения Wi-Fi"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Подключение {name} удалено."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Не удалось удалить подключение: соединение не найдено."
@@ -4941,20 +4968,20 @@ msgstr ""
"также получить доступ к остальной части Интернет через {box_name} для "
"дополнительной безопасности и анонимности."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "Подключение к службам VPN"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Виртуальная частная сеть"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5094,15 +5121,15 @@ msgstr ""
"услуг pagekite, например pagekite.net. "
"В будущем, для этого возможно будет использовать {box_name} вашего приятеля."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PаgeKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Публичная видимость"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "PageKite Домен"
@@ -5215,29 +5242,29 @@ msgstr ""
"все комбинации протокол/порт, которые вы можете здесь задать. Например, "
"HTTPS на портах, отличных от 443, может вызывать проблемы."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Веб-сервер (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "Сайт будет доступен на http://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Веб-сервер (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "Сайт будет доступен на https://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Sеcure Shell (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5246,7 +5273,7 @@ msgstr ""
"по настройке клиента SSH"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Производительность"
@@ -5256,10 +5283,10 @@ msgid ""
"utilization of the hardware. This can give you basic insights into usage "
"patterns and whether the hardware is overloaded by users and services."
msgstr ""
-"Приложение Performance позволяет собирать, хранить и просматривать "
-"информацию об использовании оборудования. Это может дать вам базовое "
-"представление о шаблонах использования и о том, перегружено ли оборудование "
-"пользователями и службами."
+"Приложение \"Производительность\" позволяет собирать, хранить и "
+"просматривать информацию об использовании оборудования. Это может дать вам "
+"базовую информацию об особенностях использования и о том, не перегружено ли "
+"оборудование пользователями и службами."
#: plinth/modules/performance/__init__.py:23
msgid ""
@@ -5269,7 +5296,7 @@ msgstr ""
"Метрики производительности собираются Performance Co-Pilot и могут быть "
"просмотрены с помощью приложения Cockpit."
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Системный мониторинг"
@@ -5279,7 +5306,7 @@ msgstr "Перезагрузка или завершение работы сис
#: plinth/modules/power/__init__.py:31
msgid "Power"
-msgstr "Pоwer"
+msgstr "Питание"
#: plinth/modules/power/templates/power.html:13
msgid ""
@@ -5352,12 +5379,19 @@ msgstr ""
"интернете. "
#: plinth/modules/privoxy/__init__.py:28
-#, python-brace-format
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "You can use Privoxy by modifying your browser proxy settings to your "
+#| "{box_name} hostname (or IP address) with port 8118. While using Privoxy, "
+#| "you can see its configuration details and documentation at http://config.privoxy.org/ or http://p.p."
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Вы можете использовать Privoxy, изменив настройки прокси в вашем браузере на "
@@ -5366,15 +5400,15 @@ msgstr ""
"config.privoxy.org\">http://config.privoxy.org или http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Web-прокси"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Доступ к {url} с прокси {proxy} на tcp{kind}"
@@ -5408,11 +5442,11 @@ msgstr ""
"downloads\">для десктопов и мобильных устройств."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "IRC-клиент"
@@ -5445,12 +5479,12 @@ msgstr ""
"создание новых календарей и адресных книг. Он не поддерживает добавление "
"событий или контактов, для этого требуется отдельный клиент."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Календарь и Адресная книга"
@@ -5492,9 +5526,9 @@ msgid ""
"address>) and your user name. DAVx5 will show all existing calendars and "
"address books and you can create new."
msgstr ""
-"Введите URL сервера Radicale (e.g. https://) и ваше "
-"имя пользователя. DAVx5 покажет все существующие календари и адресные книги. "
-"Вы можете создать новые."
+"Введите URL-адрес сервера Radicale (например, https://your.freedombox."
+"address) и ваше имя пользователя. DAVx5 покажет все существующие календари и "
+"адресные книги, и вы сможете создать новые."
#: plinth/modules/radicale/manifest.py:28
msgid "GNOME Calendar"
@@ -5528,7 +5562,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Конфигурация прав доступа обновлена"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5540,7 +5574,7 @@ msgstr ""
"которую вы ожидаете от почтового клиента, включая поддержку MIME, адресную "
"книгу, управление папками, поиск сообщений и проверку орфографии."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5554,7 +5588,7 @@ msgstr ""
"example.com. Для IMAP через SSL (рекомендуется) заполните поле "
"сервера, например imaps://imap.example.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5563,14 +5597,14 @@ msgid ""
"lesssecureapps\">https://www.google.com/settings/security/lesssecureapps"
"a>)."
msgstr ""
-"Для Gmail имя пользователя будет ваш адрес Gmail, пароль будет пароль "
-"учетной записи Google, и сервер будет imaps://imap.gmail.com. "
-"Обратите внимание, что вам также нужно включить \"Less secure apps\" в в "
-"настройках аккаунта Google (https://www.google.com/settings/security/"
-"lesssecureapps)."
+"Для Gmail именем пользователя будет ваш адрес Gmail, паролем - пароль вашего "
+"аккаунта Google, а сервером - imaps://imap.gmail.com. Обратите "
+"внимание, что вам также необходимо включить опцию \"Менее безопасные "
+"приложения\" в настройках вашего аккаунта Google (https://www.google.com/"
+"settings/security/lesssecureapps)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "Почтовый клиент"
@@ -5584,9 +5618,50 @@ msgid ""
"When enabled, text box for server input is removed from login page and users "
"can only read and send mails from this {box_name}."
msgstr ""
-"Если эта функция включена, текстовое поле для ввода данных с сервера "
-"удаляется со страницы входа, и пользователи могут читать и отправлять письма "
-"только из {box_name}."
+"Если эта опция включена, текстовое поле для ввода данных с сервера удаляется "
+"со страницы входа, и пользователи могут читать и отправлять письма только из "
+"{box_name}."
+
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Tiny Tiny RSS can be accessed by any user belonging to the feed-reader group."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Когда Tiny Tiny RSS включен, доступ к нему может получить любой пользователь, принадлежащий к группе feed-reader."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Чтение и подписка на ленты новостей"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+#, fuzzy
+#| msgid "Bridge"
+msgid "RSS-Bridge"
+msgstr "Мост"
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
#: plinth/modules/samba/__init__.py:27
msgid ""
@@ -5629,15 +5704,15 @@ msgstr ""
"Домашняя папка - каждый пользователь в группе Freedombox-share может иметь "
"собственное личное пространство."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Доступ к частным общим ресурсам"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Сетевое хранилище файлов"
@@ -5772,15 +5847,15 @@ msgstr ""
"Searx может быть использован, чтобы избежать отслеживания и профилирования "
"поисковыми системами. Она не хранит никаких файлов cookie по умолчанию."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Поиск в интернете"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Веб-поиск"
@@ -5836,7 +5911,7 @@ msgid ""
"services."
msgstr ""
"Когда эта опция включена, Fail2Ban ограничит попытки взлома перебором SSH-"
-"сервера и других защищенных паролем интернет услуг, которые включены."
+"сервера и других включенных защищенных паролем интернет-служб."
#: plinth/modules/security/templates/security.html:12
#: plinth/modules/security/templates/security.html:14
@@ -5876,7 +5951,7 @@ msgstr ""
"участниками Debian и сообществом %(box_name)s."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Отчёт о безопасности"
@@ -5887,7 +5962,7 @@ msgid ""
"which provides the core services and user interface for a FreedomBox server."
msgstr ""
"Имеются %(count)s сообщений об уязвимостях безопасности в приложении "
-"FreedomBox, которое предоставляет основные услуги и пользовательский "
+"FreedomBox, которое предоставляет основные службы и пользовательский "
"интерфейс для сервера FreedomBox."
#: plinth/modules/security/templates/security_report.html:19
@@ -5908,7 +5983,7 @@ msgid ""
"sandboxing features are in use. Sandboxing mitigates the impact of a "
"potentially compromised app to the rest of the system."
msgstr ""
-"Для приложений, которые предоставляют услуги, столбец \"Песочница\" "
+"Для приложений, которые предоставляют службы, столбец \"Песочница\" "
"показывает, используются ли функции песочницы. Песочница смягчает влияние "
"потенциально скомпрометированного приложения на остальную систему."
@@ -5954,12 +6029,12 @@ msgstr "Нет"
msgid "Not running"
msgstr "Не запущен"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Ошибка настройки ограничения доступа: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Обновлена настройка безопасности"
@@ -5975,11 +6050,11 @@ msgstr ""
"Обратите внимание, что Shaarli поддерживает только одну учетную запись "
"пользователя, которую вам нужно будет настроить при первом посещении."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shаarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Закладки"
@@ -5993,8 +6068,8 @@ msgid ""
"your Internet traffic. It can be used to bypass Internet filtering and "
"censorship."
msgstr ""
-"Shadowsocks это легкий и безопасный socks5 прокси, разработанный, чтобы "
-"защитить ваш интернет-трафик. Он может использоваться для обхода Интернет-"
+"Shadowsocks - это легкий и безопасный SOCKS5-прокси, предназначенный для "
+"защиты вашего интернет-трафика. Его можно использовать для обхода интернет-"
"фильтрации и цензуры."
#: plinth/modules/shadowsocks/__init__.py:25
@@ -6005,25 +6080,27 @@ msgid ""
"connect to this proxy, and their data will be encrypted and proxied through "
"the Shadowsocks server."
msgstr ""
-"Ваш {box_name} может запускать клиент Shadowsocks, который может подключатся "
-"к серверу Shadowsocks. Он также запускать SOCKS5 прокси.Локальные устройства "
-"могут подключиться к этому прокси, и их данные будут зашифрованы."
+"Ваш {box_name} может запускать клиент Shadowsocks, который может "
+"подключаться к серверу Shadowsocks. Он также будет запускать прокси-сервер "
+"SOCKS5. Локальные устройства могут подключаться к этому прокси, и их данные "
+"будут шифроваться и передаваться через сервер Shadowsocks."
#: plinth/modules/shadowsocks/__init__.py:30
msgid ""
"To use Shadowsocks after setup, set the SOCKS5 proxy URL in your device, "
"browser or application to http://freedombox_address:1080/"
msgstr ""
-"Чтобы использовать Shadowsocks после установки, смените URL-адрес SOCKS5 "
-"прокси в браузере или ином приложении на http://freedombox_address:1080/"
+"Чтобы использовать Shadowsocks после настройки, установите URL прокси SOCKS5 "
+"в вашем устройстве, браузере или приложении на http://"
+"freedombox_address:1080/"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
-msgstr "Socks5 Прокси"
+msgstr "Прокси Socks5"
#: plinth/modules/shadowsocks/forms.py:12
#: plinth/modules/shadowsocks/forms.py:13
@@ -6052,7 +6129,7 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr "Метод шифрования. Должен соответствовать параметру на сервере."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6061,7 +6138,7 @@ msgstr ""
"Общий доступ позволяет обмениваться файлами и папками на вашем {box_name} "
"через сеть с выбранными группами пользователей."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Общий доступ"
@@ -6113,28 +6190,28 @@ msgstr ""
"Общий доступ должны быть публично доступным или доступными хотя бы для одной "
"группы"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Добавить общий ресурс"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Нет настроенных общих ресурсов."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Путь на диске"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Общий ресурс через"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "С группами"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "публичный доступ"
@@ -6293,7 +6370,7 @@ msgstr "Дата"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Удалить снапшот"
@@ -6345,53 +6422,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "Откат к снимку %(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "создано вручную"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "временная шкала"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Управление снапшотами"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Создан снимок."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Настройки хранения снапшотов обновлены"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Ошибка действий: {0}[{1}][{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Удалить выбранные снапшоты"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr "Снимок сейчас используется. Попробуйте позже."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "Откат к снимку #{number}."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "Необходимо перезагрузить систему для завершения отката."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Откат к снимку"
@@ -6405,9 +6482,9 @@ msgstr ""
"Secure Shell сервер использует протокол безопасной оболочки на прием "
"подключений с удаленных компьютеров. Уполномоченный удаленный компьютер "
"может выполнять задачи администрирования, копировать файлы или запускать "
-"другие услуги с использованием таких соединений."
+"другие службы с использованием таких соединений."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Secure Shell (SSH) сервер"
@@ -6453,7 +6530,7 @@ msgstr "SSH-аутентификация с отключенным пароле
msgid "SSH authentication with password enabled."
msgstr "SSH-аутентификация с включённым паролем."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Единый вход"
@@ -6476,107 +6553,107 @@ msgstr ""
"{box_name}. Вы можете видеть, какие носители используются, монтировать и "
"размонтировать подключаемые носители, увеличивать корневой раздел итп."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Хранилище"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} байт"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} КиБ"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} Миб"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} Гиб"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} Тиб"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "Операция не удалась."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "Операция была отменена."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Устройство уже отключается."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
"Операция не поддерживается из-за отсутствия поддержки драйвера или утилиты."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "Время операции вышло."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr "Операция пробудит диск, находящийся в режиме глубокого сна."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Попытка отключения устройства, которое используется."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "Операция уже отменена."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "Отсутствует авторизация для выполнения запрошенной операции."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Устройство уже подключено."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Устройство не подключено."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "Использование запрошенной опции не разрешено."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Устройство подключено другим пользователем."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
"Недостаточно места в системном разделе: использовано {percent_used}%, "
"свободно {free_space}."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Недостаточно места на диске"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "Неизбежный сбой диска"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6733,16 +6810,16 @@ msgstr ""
"собственный набор папок. Веб-интерфейс доступен только для пользователей, "
"принадлежащих к группе «admin» или «syncthing-access»."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Администрирование приложения Syncthing"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Синхронизация файлов"
@@ -6768,40 +6845,40 @@ msgid ""
msgstr ""
"Порт Tor SOCKS доступен на {box_name} для внутренних сетей на TCP-порту 9050."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Сервис Tor Onion"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Tor Socks прокси"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Ретранслятор Tor типа мост"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Доступен порт трансляции Tor"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3 транспорт зарегестрирован"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4 транспорт зарегистрирован"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Доступ к {url} по tcp{kind} через Tor"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Подтверждение использования Tor в {url} по tcp {kind}"
@@ -6813,29 +6890,26 @@ msgstr ""
"Введите действительный мост с этим форматом: [transport] IP:ORPort "
"[fingerprint]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Включить Tor"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Использовать upstream bridges для подключения к сети Tor"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-"Когда включен, мосты, настроенные ниже будет использоваться для подключения "
-"к сети Tor. Используйте эту опцию, если ваш поставщик услуг Интернета (ISP) "
-"блокирует или цензурирует подключения к сети Tor. Это отключит режим relay."
+"Если опция включена, для подключения к сети Tor будут использоваться "
+"настроенные ниже мосты. Используйте эту опцию, если ваш поставщик интернет-"
+"услуг (ISP) блокирует или цензурирует соединения с сетью Tor. Это отключит "
+"режим ретрансляции."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Upstream мосты"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6845,11 +6919,11 @@ msgstr ""
"org/\">https://bridges.torproject.org/и скопировать/вставить информацию "
"сюда. В данное время поддерживаются «none», «obfs3», «obfs4» и «scamblesuit»."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Включить ретранслятор Tor"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6860,11 +6934,11 @@ msgstr ""
"часть пропускной способности сети Tor. Сделайте это, если у вас более ширина "
"канала более 2Мбит/c."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Ретранслятор Tor типа мост"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6874,26 +6948,26 @@ msgstr ""
"общественной базы данных ретрансляции Tor. Это помогает другим обойти "
"цензуру."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Включить скрытый сервис Tor"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
"wiki or chat) without revealing its location. Do not use this for strong "
"anonymity yet."
msgstr ""
-"Скрытый сервис позволит {box_name} предоставлять услуги, (например, wiki или "
-"чат) не раскрывая его расположение. Не используйте это для повышения "
-"анонимности."
+"Скрытый сервис позволит {box_name} предоставлять выбранные службы (такие как "
+"wiki или чат), не раскрывая своего местоположения. Не используйте это для "
+"повышения анонимности."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Скачать пакеты программного обеспечения через Tor"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6903,7 +6977,7 @@ msgstr ""
"установки и обновления. Это добавляет определенную степень безопасности и "
"конфиденциальности во время загрузки программного обеспечения."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Укажите по крайней мере один upstream bridge чтобы использовать их."
@@ -6915,21 +6989,25 @@ msgstr "Tor Browser"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Прокси с Tor"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "В настоящее время обновляется конфигурация Tor"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Onion сервис"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Порты"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Настройки без изменений"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Произошла ошибка во время настройки."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Ошибка при установке приложения: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6983,7 +7061,7 @@ msgstr ""
"После завершения загрузки вы также можете получить доступ к файлам с помощью "
"приложения Общий доступ."
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmissiоn"
@@ -7015,15 +7093,11 @@ msgstr ""
"Tiny RSS используйте URL / tt-rss-app для "
"подключения."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Чтение и подписка на ленты новостей"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Чтение ленты новостей"
@@ -7050,22 +7124,22 @@ msgstr ""
"выполняется автоматически в 02:00, в результате чего все приложения на "
"короткое время становятся недоступными."
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Обновление программного обеспечения"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox обновлён"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "Не удалось запустить обновление дистрибутива"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
@@ -7075,11 +7149,11 @@ msgstr ""
"дистрибутива. Пожалуйста, убедитесь, что свободно не менее 5 ГБ. Обновление "
"дистрибутива будет повторно запущено через 24 часа, если это включено."
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "Началось обновление дистрибутива"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7104,7 +7178,7 @@ msgid ""
"When enabled, FreedomBox will update to the next stable distribution release "
"when it is available."
msgstr ""
-"Если эта функция включена, FreedomBox будет обновляться до следующего "
+"Если эта опция включена, FreedomBox будет обновляться до следующего "
"стабильного выпуска дистрибутива, когда он будет доступен."
#: plinth/modules/upgrades/forms.py:34
@@ -7174,6 +7248,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Отклонить"
@@ -7239,39 +7314,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Показать журналы последних обновлений"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Обновление дистрибутива включено"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "Обновление дистрибутива включено"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "Ошибка при настройке автоматического обновления: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Автоматические обновления включены"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Автоматические обновления отключены"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "Обновление дистрибутива включено"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Обновление дистрибутива отключено"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Начался процесс обновления."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
-msgstr "Сбой при запуске обновления."
+msgstr "Не удалось запустить обновление."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Активированы частые обновления функций."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Обновление дистрибутива включено"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7296,15 +7395,15 @@ msgstr ""
"пользователи группы admin могут изменять приложения или системные "
"настройки."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Пользователи и группы"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Доступ ко всем сервисам и настройкам системы"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Проверьте запись LDAP \"{search_item}\""
@@ -7347,11 +7446,11 @@ msgid ""
"able to log in to all services. They can also log in to the system through "
"SSH and have administrative privileges (sudo)."
msgstr ""
-"Выберите, какие службы должны быть доступны для нового пользователя. "
-"Пользователь сможет войти в службы, которые поддерживают единый вход через "
-"LDAP, если они находятся в соответствующих группах.
"
-"Пользователи в группе администратора имеют доступ ко всем службам. Они также "
-"могут войти в систему через SSH и иметь административные привилегии (sudo)."
+"Выберите, какие службы должны быть доступны новому пользователю. "
+"Пользователь сможет войти в службы, поддерживающие единый вход через LDAP, "
+"если он входит в соответствующую группу.
Пользователи в группе \"admin"
+"\" смогут войти во все службы. Они также могут входить в систему через SSH и "
+"иметь привилегии администратора (sudo)."
#: plinth/modules/users/forms.py:155 plinth/modules/users/forms.py:399
#, python-brace-format
@@ -7937,12 +8036,12 @@ msgstr ""
"базы данных из интерфейса администратора. Дополнительные плагины или темы "
"могут быть установлены и обновлены на ваш страх и риск."
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "Сайт и блог"
@@ -7993,11 +8092,11 @@ msgstr ""
"Zoph. Для дополнительных пользователей необходимо создать учетные записи как "
"в {box_name}, так и в Zoph с тем же именем пользователя."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Организатор фотографий"
@@ -8010,8 +8109,8 @@ msgid ""
"When enabled, requests will be made to OpenStreetMap servers from user's "
"browser. This impacts privacy."
msgstr ""
-"Если эта функция включена, запросы к серверам OpenStreetMap будут "
-"выполняться из браузера пользователя. Это влияет на конфиденциальность."
+"Если эта опция включена, запросы к серверам OpenStreetMap будут выполняться "
+"из браузера пользователя. Это влияет на конфиденциальность."
#: plinth/modules/zoph/templates/zoph-pre-setup.html:15
#: plinth/modules/zoph/templates/zoph-pre-setup.html:28
@@ -8035,37 +8134,138 @@ msgstr "PPPоE"
msgid "Generic"
msgstr "Универсальный"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Ошибка параметра hostname: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, fuzzy, python-brace-format
+#| msgid "Service disabled: {name}"
+msgid "Finished: {name}"
+msgstr "Служба выключена: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr "Пакет {expression} недоступен для установки"
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Пакет {package_name} последней версией ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Ошибка во время установки"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Ошибка во время резервного копирования"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "Установка"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "Загрузка"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "изменение медиа"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "Файл настроек: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Установка приложений"
+
+#: plinth/setup.py:42
+#, fuzzy
+#| msgid "Updating..."
+msgid "Updating app"
+msgstr "Обновляется..."
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Ошибка при установке пакетов: {string}{details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Ошибка при установке пакетов: {string}{details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Ошибка при установке приложения: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Ошибка при установке приложения: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Приложение установлено."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Последнее обновление"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Установка приложений"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Ошибка при установке пакетов: {string}{details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Ошибка при установке приложения: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Приложение установлено."
+
+#: plinth/setup.py:451
+#, fuzzy
+#| msgid "Upgrade Packages"
+msgid "Updating app packages"
+msgstr "Обновление пакетов"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Доступ запрещён"
@@ -8117,7 +8317,7 @@ msgstr ""
msgid "Installation"
msgstr "Установка"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Служба %(service_name)s не запущена."
@@ -8178,7 +8378,7 @@ msgstr "Запустить веб-клиент"
#: plinth/templates/clients-button.html:25
msgid "Client Apps"
-msgstr "Клиентские Приложения"
+msgstr "Клиентские приложения"
#: plinth/templates/clients.html:17
msgid "Web"
@@ -8385,6 +8585,10 @@ msgstr "С Роутера/WAN портов"
msgid "To %(box_name)s Ports"
msgstr "В %(box_name)s Порты"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Приложение установлено."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Установить это приложение?"
@@ -8394,22 +8598,14 @@ msgid "This application needs an update. Update now?"
msgstr "Это приложение нуждается в обновлении. Обновить сейчас?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Другая установка или обновление уже запущенны. Пожалуйста, подождите "
-"несколько минут перед повторной попыткой."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Это приложение в настоящее время недоступно для вашего дистрибутива."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Проверить еще раз"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8419,36 +8615,103 @@ msgstr ""
"системе, конфликтуют с установкой этого приложения. Следующие пакеты будут "
"удалены, если вы продолжите установку:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Установка"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Обновление"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Выполнение операции предварительной установки"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Установка"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Выполнение операции после установки"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Редактировать пользователя %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Установка %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% завершено"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Настройки без изменений"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Гуджарати"
+#~ msgid "Network Connections"
+#~ msgstr "Сетевые подключения"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Включить Tor"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "В настоящее время обновляется конфигурация Tor"
+
+#~ msgid "Error during installation"
+#~ msgstr "Ошибка во время установки"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "Использовать DNSSEC на IPv{kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Другая установка или обновление уже запущенны. Пожалуйста, подождите "
+#~ "несколько минут перед повторной попыткой."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Выполнение операции предварительной установки"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Выполнение операции после установки"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Установка %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% завершено"
+
+#~ 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 ""
+#~ "Доступ в Кокпит возможен только через доменное имя. Доступ невозможен, "
+#~ "если использовать IP-адрес как часть URL."
+
+#~ msgid "Access"
+#~ msgstr "Доступ"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "Кокпит будет работать, только если использовать следующие адреса."
+
+#~ msgid "WebRTC server"
+#~ msgstr "Сервер WebRTC"
+
#~ msgid "Server URL"
#~ msgstr "URL сервера"
@@ -8883,11 +9146,6 @@ msgstr "Гуджарати"
#~ msgid "Postfix domain name config"
#~ msgstr "Ошибка параметра имени домена: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Произошла ошибка во время настройки."
-
#, fuzzy
#~| msgid "Directory does not exist."
#~ msgid "User does not exist"
@@ -9395,9 +9653,6 @@ msgstr "Гуджарати"
#~ msgid "Service enabled: {name}"
#~ msgstr "Включена служба: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Служба выключена: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "Учетная запись PageKite"
@@ -9804,9 +10059,6 @@ msgstr "Гуджарати"
#~ msgid "Automatic Upgrades"
#~ msgstr "Автоматические обновления"
-#~ msgid "Upgrade Packages"
-#~ msgstr "Обновление пакетов"
-
#~ msgid "No such device - {device_path}"
#~ msgstr "Нет такого устройства - {device_path}"
@@ -10120,9 +10372,6 @@ msgstr "Гуджарати"
#~ msgid "IP Check URL"
#~ msgstr "IP проверка URL-адреса"
-#~ msgid "Bridge"
-#~ msgstr "Мост"
-
#~ msgid "Enable network time"
#~ msgstr "Включить сетевое время"
diff --git a/plinth/locale/si/LC_MESSAGES/django.po b/plinth/locale/si/LC_MESSAGES/django.po
index daaa33cdf..098390620 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-04-27 13:32+0000\n"
"Last-Translator: HelaBasa \n"
"Language-Team: Sinhala any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1115,7 +1098,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr ""
@@ -1193,43 +1176,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1249,11 +1254,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1275,11 +1280,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1316,17 +1321,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1345,55 +1350,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1440,7 +1445,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1471,11 +1476,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1585,13 +1590,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1663,12 +1669,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1761,7 +1767,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1806,19 +1812,19 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr ""
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1852,7 +1858,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -1933,7 +1939,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2070,15 +2076,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2174,54 +2180,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "පිළිබඳව"
@@ -2324,6 +2330,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2430,16 +2471,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2464,19 +2505,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2529,15 +2570,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2575,8 +2616,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2591,32 +2632,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2633,11 +2674,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2656,25 +2697,25 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
msgstr ""
#: plinth/modules/janus/manifest.py:7
@@ -2687,17 +2728,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2841,7 +2882,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2873,8 +2914,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -2945,12 +2986,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3011,39 +3052,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr ""
@@ -3056,11 +3097,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3105,7 +3146,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3116,15 +3157,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3177,11 +3218,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3223,15 +3264,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3264,27 +3305,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3804,7 +3840,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3824,13 +3860,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3851,7 +3887,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3861,13 +3897,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4050,245 +4086,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4303,20 +4335,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4424,15 +4456,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4538,36 +4570,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4584,7 +4616,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4656,21 +4688,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4694,11 +4727,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4723,12 +4756,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4791,7 +4824,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4799,7 +4832,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4808,7 +4841,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4818,7 +4851,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4833,6 +4866,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4864,15 +4931,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -4992,15 +5059,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5081,7 +5148,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5146,12 +5213,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5165,11 +5232,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5199,11 +5266,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5232,14 +5299,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5287,28 +5354,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5448,7 +5515,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5496,53 +5563,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5554,7 +5621,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5595,7 +5662,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5615,104 +5682,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5846,16 +5913,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5875,40 +5942,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -5918,37 +5985,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -5956,22 +6019,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -5979,18 +6042,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6002,20 +6065,21 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
+#: plinth/modules/tor/views.py:55
+msgid "Updating configuration"
+msgstr ""
+
+#: plinth/modules/tor/views.py:72
+#, python-brace-format
+msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/transmission/__init__.py:23
@@ -6060,7 +6124,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6085,15 +6149,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6114,33 +6174,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6218,6 +6278,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6273,39 +6334,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6321,15 +6400,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -6894,12 +6973,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -6934,11 +7013,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -6972,37 +7051,114 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr ""
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr ""
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr ""
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr ""
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+msgid "Uninstalling app"
+msgstr ""
+
+#: plinth/setup.py:122
+#, python-brace-format
+msgid "Error uninstalling app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:128
+#, python-brace-format
+msgid "Error uninstalling app: {error}"
+msgstr ""
+
+#: plinth/setup.py:131
+msgid "App uninstalled."
+msgstr ""
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7045,7 +7201,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7288,6 +7444,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr ""
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7297,50 +7457,55 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+msgid "Uninstall"
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
diff --git a/plinth/locale/sl/LC_MESSAGES/django.po b/plinth/locale/sl/LC_MESSAGES/django.po
index 75f0ae355..adc65ee16 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-01-18 12:32+0000\n"
"Last-Translator: ikmaak \n"
"Language-Team: Slovenian /"
@@ -1216,30 +1215,16 @@ msgstr ""
"\"{users_url}\">katerikoli uporabnik na {box_name}, ki je član skupine "
"skrbnikov."
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Skrbništvo strežnika"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1252,7 +1237,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Nastavitve"
@@ -1340,43 +1325,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1396,11 +1403,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1422,11 +1429,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1463,17 +1470,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1492,55 +1499,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1590,7 +1597,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1621,11 +1628,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
#, fuzzy
#| msgid "Domain Name"
msgid "Dynamic Domain Name"
@@ -1737,13 +1744,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1817,12 +1825,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1917,7 +1925,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1962,23 +1970,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Domain Name Server"
msgid "Email Server"
msgstr "Strežnik z imenom domene"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Create new repository"
msgid "My Email Aliases"
msgstr "Ustvari novo skladišče"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Create new repository"
msgid "Manage Aliases for Mailbox"
@@ -2016,7 +2024,7 @@ msgstr ""
msgid "Aliases"
msgstr "Ustvari novo skladišče"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -2103,7 +2111,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2240,15 +2248,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2363,60 +2371,60 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr "Želite ta arhiv trajno izbrisati?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
#, fuzzy
#| msgid "Repository not found"
msgid "Repository created."
msgstr "Ne najdem skladišča"
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
#, fuzzy
#| msgid "Repository not found"
msgid "Repository edited."
msgstr "Ne najdem skladišča"
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
#, fuzzy
#| msgid "Create new repository"
msgid "Edit repository"
msgstr "Ustvari novo skladišče"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr ""
@@ -2519,6 +2527,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2625,16 +2668,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2659,19 +2702,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2724,15 +2767,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2770,8 +2813,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2786,33 +2829,33 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, fuzzy, python-brace-format
#| msgid "Archive deleted."
msgid "{title} deleted."
msgstr "Arhiv je izbrisan."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2829,11 +2872,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2852,25 +2895,25 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
msgstr ""
#: plinth/modules/janus/manifest.py:7
@@ -2883,17 +2926,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -3037,7 +3080,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -3069,8 +3112,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -3141,12 +3184,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3209,41 +3252,41 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain Name"
msgid "Domain name updated"
msgstr "Ime domene"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain Name"
msgid "Site name updated"
@@ -3258,11 +3301,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3307,7 +3350,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3318,15 +3361,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3379,11 +3422,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3427,15 +3470,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3470,27 +3513,22 @@ msgstr ""
msgid "Services"
msgstr "Odkrivanje storitev"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -4010,7 +4048,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -4030,13 +4068,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -4057,7 +4095,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -4069,13 +4107,13 @@ msgstr "Povezava je zavrnjena"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4258,255 +4296,251 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
#, fuzzy
#| msgid "Connection refused"
msgid "connecting"
msgstr "Povezava je zavrnjena"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
#, fuzzy
#| msgid "Configuration updated"
msgid "configuration failed"
msgstr "Konfiguracija je posodobljena"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
#, fuzzy
#| msgid "Archive deleted."
msgid "DHCP client failed"
msgstr "Arhiv je izbrisan."
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
#, fuzzy
#| msgid "Configuration updated"
msgid "shared connection service failed"
msgstr "Konfiguracija je posodobljena"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
#, fuzzy
#| msgid "Repository not found"
msgid "Wi-Fi network not found"
msgstr "Ne najdem skladišča"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4521,22 +4555,22 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
#, fuzzy
#| msgid "Connection refused"
msgid "Connect to VPN services"
msgstr "Povezava je zavrnjena"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4644,15 +4678,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4758,36 +4792,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4804,7 +4838,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4876,21 +4910,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4914,11 +4949,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4943,12 +4978,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -5011,7 +5046,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5019,7 +5054,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5028,7 +5063,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5038,7 +5073,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -5053,6 +5088,48 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Cockpit will be available from /"
+#| "_cockpit/ path on the web server. It can be accessed by any user on {box_name} belonging to the admin group."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Ko je omogočen, je Cockpit na voljo na naslovu /"
+"_cockpit/ spletnega strežnika. Do njega lahko dostopa katerikoli uporabnik na {box_name}, ki je član skupine "
+"skrbnikov."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5084,15 +5161,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -5218,15 +5295,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5307,7 +5384,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5374,12 +5451,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5393,11 +5470,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5427,11 +5504,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5460,14 +5537,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5515,28 +5592,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5676,7 +5753,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5724,55 +5801,55 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
#, fuzzy
#| msgid "Repository not found"
msgid "manually created"
msgstr "Ne najdem skladišča"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5784,7 +5861,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5827,7 +5904,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5847,104 +5924,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6080,16 +6157,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6109,40 +6186,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6152,37 +6229,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6190,22 +6263,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6213,18 +6286,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6236,21 +6309,25 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr ""
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "Configuration updated"
+msgid "Updating configuration"
+msgstr "Konfiguracija je posodobljena"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Napaka ob nameščanju aplikacije: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6302,7 +6379,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6335,15 +6412,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6364,8 +6437,8 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
#, fuzzy
@@ -6373,28 +6446,28 @@ msgstr ""
msgid "Software Update"
msgstr "Arhiv je izbrisan."
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
#, fuzzy
#| msgid "FreedomBox"
msgid "FreedomBox Updated"
msgstr "FreedomBox"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6472,6 +6545,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6529,39 +6603,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6577,15 +6669,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -7186,12 +7278,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -7226,11 +7318,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7264,37 +7356,131 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Napaka ob nameščanju aplikacije: {error}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr ""
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Existing backups"
+msgid "Error running apt-get"
+msgstr "Obstoječe rezervne kopije"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Napaka ob nameščanju aplikacije: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Napaka ob nameščanju aplikacije: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Napaka ob nameščanju aplikacije: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Napaka ob nameščanju aplikacije: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Aplikacija je nameščena."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Name"
+msgid "App updated"
+msgstr "Ime"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Error installing application: {error}"
+msgid "Uninstalling app"
+msgstr "Napaka ob nameščanju aplikacije: {error}"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Napaka ob nameščanju aplikacije: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Napaka ob nameščanju aplikacije: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Aplikacija je nameščena."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7337,7 +7523,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7582,6 +7768,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Aplikacija je nameščena."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7591,50 +7781,58 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Application installed."
+msgid "Uninstall"
+msgstr "Aplikacija je nameščena."
+
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "App: %(app_name)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Aplikacija: %(app_name)s"
+
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
msgstr ""
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+#: plinth/views.py:221
+msgid "Setting unchanged"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
diff --git a/plinth/locale/sq/LC_MESSAGES/django.po b/plinth/locale/sq/LC_MESSAGES/django.po
index 3ffe3e6f7..70cfc0d0b 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2022-02-06 23:23+0000\n"
"Last-Translator: Besnik Bleta \n"
"Language-Team: Albanian any user on {box_name} "
@@ -1186,33 +1185,16 @@ msgstr ""
"Mund të përdoret nga cilido përdorues në "
"{box_name} që është pjesë e grupit të përgjegjësve."
-#: plinth/modules/cockpit/__init__.py:40
-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 lyp përdorim që nga një emër përkatësie. S’do të funksionojë, nëse "
-"provohet duke përdorur një adresë IP, si pjesë e URL-së."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Administrim Shërbyesi"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Hyrje"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-"Cockpit do të funksionojë vetëm kur në të hyhet duke përdorur URL-të vijuese."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1227,7 +1209,7 @@ msgstr "Formësim i Përgjithshëm"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Formësoni"
@@ -1322,43 +1304,67 @@ msgstr "Shfaq aplikacione dhe veçori të thelluara"
msgid "Show apps and features that require more technical knowledge."
msgstr "Shfaq aplikacione dhe veçori që lypin dije më teknike."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Monitoring"
+msgid "System-wide logging"
+msgstr "Mbikëqyrje Sistemi"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Gabim në caktim strehëemri: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Strehëemri u caktua"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Gabim në caktimin e emrin të përkatësisë: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Emri i përkatësisë u caktua"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Gabim në caktim faqeje hyrëse shërbyesi: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Faqja hyrëse e shërbyesit u caktua"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Gabim në ndryshimin e mënyrës së thelluar: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Me aplikacione dhe veçori të thelluara shfaqur"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Me aplikacione dhe veçori të thelluara fshehur"
@@ -1386,11 +1392,11 @@ msgstr ""
"tillë si Matrix Synapse, ose ejabberd duhen formësuar me hollësitë e dhëna këtu."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "Ndihmës VoIP"
@@ -1415,11 +1421,11 @@ msgstr ""
"Shërbyesi i kohës së rrjetit është një program që kujdeset që koha e "
"sistemit të jetë e njëkohshme me shërbyes në Internet."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Datë & Kohë"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Kohë e njëkohësuar me shërbyes NTP"
@@ -1460,17 +1466,17 @@ msgstr ""
"Fjalëkalimi parazgjedhje është “deluge”, por duhet të bëni hyrjen me të dhe "
"ta ndryshoni menjëherë pas aktivizimit të këtij shërbimi."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Shkarkoni kartela duke përdorur aplikacione BitTorrent"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "Klient Web BitTorrent"
@@ -1492,49 +1498,49 @@ msgstr ""
"siç pritet."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnostikime"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "kaloi"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "dështoi"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "gabim"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "kujdes"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
"Duhet të çaktivizoni disa aplikacione, për të zvogëluar përdorim kujtese."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "S’duhet të instaloni çfarëdo aplikacioni të ri në këtë sistem."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1543,7 +1549,7 @@ msgstr ""
"Ka pak kujtesë për sistemin: {percent_used}% të përdorur, {memory_available} "
"{memory_available_unit} të lirë. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Kujtesë e Pakët"
@@ -1593,7 +1599,7 @@ msgstr "Provë"
msgid "Result"
msgstr "Përfundim"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Test Diagnostikimesh"
@@ -1647,11 +1653,11 @@ msgstr ""
"lira me bazë përditësim URL-je, te <a href=\" target=\"_blank\"> freedns."
"afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Klient DNS Dinamik"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Emër Dinamik Përkatësie"
@@ -1784,13 +1790,14 @@ msgid "This field is required."
msgstr "lyp të fshehta"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1886,12 +1893,12 @@ msgstr ""
"aplikacionin Coturn, ose formësoni një shërbyes "
"të jashtëm."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Shërbyes Fjalosjesh"
@@ -2003,7 +2010,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2055,21 +2062,21 @@ msgid ""
msgstr ""
"Gjatë instalimit, çfarëdo shërbyesi tjetër email në sistem do të çinstalohet."
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "Shërbyes Email-i"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Manage Aliases"
msgid "My Email Aliases"
msgstr "Administroni Aliase"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage Aliases for Mailbox"
@@ -2107,7 +2114,7 @@ msgstr "S’mund të jetë një numër"
msgid "Aliases"
msgstr "Aliase"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2191,7 +2198,7 @@ msgstr ""
"në rrjet te {box_name} juaj. Mbajta e një firewall-i të aktivizuar dhe të "
"formësuar si duhet ul rrezikun e kërcënimeve të sigurisë nga Interneti."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Firewall"
@@ -2353,15 +2360,15 @@ msgstr ""
"Për të mësuar më tepër se si të përdoret Git, vizitoni përkujdesore Git-i."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Hyrje për shkrim-lexim në depo Git"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Strehim i Thjeshtë Git"
@@ -2457,54 +2464,54 @@ msgstr "Fshi Depon Git %(name)s"
msgid "Delete this repository permanently?"
msgstr "Të fshihet kjo depo përgjithmonë?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Depoja u krijua."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Ndodhi një gabim teksa krijohej depoja."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Depoja u përpunua."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Përpunoni depon"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Dokumentim"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Doracak"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Merrni Asistencë"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Parashtroni Përshtypjet"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Jepni Ndihmesë"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Mbi"
@@ -2642,6 +2649,41 @@ msgstr ""
msgid "Learn more..."
msgstr "Mësoni më tepër…"
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2785,16 +2827,16 @@ msgstr ""
"Ju lutemi, hiqni çfarëdo fjalëkalimi apo hollësi të tjera personale prej "
"regjistrit, përpara se të parashtroni njoftimin për të metën."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Dokumentim dhe PBR"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "Mbi {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "Doracak për {box_name}"
@@ -2826,19 +2868,19 @@ msgid ""
msgstr ""
"Vizita e parë te ndërfaqja web e dhënë do të fillojë procesin e formësimit."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "Administroni aplikacion I2P"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Rrjet Anonimiteti"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "Ndërmjetës I2P"
@@ -2908,15 +2950,15 @@ msgstr ""
"ekzistueset. Te Formësim Përdoruesish mund të "
"ndryshoni këto leje ose të shtoni përdorues të rinj."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki dhe Blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Shihni dhe përpunoni aplikacione wiki"
@@ -2954,8 +2996,8 @@ msgstr "Fshije sajtin %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Përditësoni ujdisjen"
@@ -2972,32 +3014,32 @@ msgstr ""
"Ky veprim do të heqë krejt postimet, faqet dhe komentet, përfshi historik "
"rishikimesh. Të fshihet përgjithmonë kjo wiki ose ky blog?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "U krijua wiki {name}."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "S’u krijua dot wiki: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "U krijua blogu {name}."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "S’u krijua dot blogu: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} u fshi."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "S’u fshi dot {title}: {error}"
@@ -3019,11 +3061,11 @@ msgstr ""
"klientin desktop, dhe instalojeni. Mandej nisni Gobby-n dhe përzgjidhni "
"“Lidhu me Shërbyes” dhe jepni emrin e përkatësisë së {box_name} tuaj."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Shërbyes Gobby"
@@ -3044,28 +3086,26 @@ msgstr ""
"Niseni Gobby-n dhe përzgjidhni “Lidhu me Shërbyes” dhe jepni emrin e "
"përkatësisë tuaj {box_name}."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Shërbyes"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3077,7 +3117,7 @@ msgstr ""
msgid "JavaScript license information"
msgstr "Hollësi licence JavaScript"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3085,11 +3125,11 @@ msgstr ""
"JSXC është një klient web për XMPP-në. Zakonisht përdoret me një shërbyes "
"XMPP që xhiron lokalisht."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Klient Fjalosjesh"
@@ -3257,7 +3297,7 @@ msgstr ""
"aplikacionin Coturn, ose formësoni një shërbyes "
"të jashtëm."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3295,8 +3335,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Formësim"
@@ -3401,12 +3441,12 @@ msgstr ""
"Cilido me një lidhje për te kjo wiki mund ta lexojë atë. Ndryshime te lënda "
"mund të bëjnë vetëm përdorues që kanë bërë hyrjen në llogaritë e tyre."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3488,11 +3528,11 @@ msgstr ""
"Zgjidhni një lëkurçe parazgjedhje për instalimin tuaj MediaWiki. Përdoruesit "
"kanë mundësi të përzgjedhin lëkurçen e tyre të parapëlqyer."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Fjalëkalimi u përditësua"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
#, fuzzy
#| msgid "Password used to encrypt data. Must match server password."
msgid "Password update failed. Please choose a stronger password"
@@ -3500,33 +3540,33 @@ msgstr ""
"Fjalëkalim i përdorur për të fshehtëzuar të dhëna. Duhet të përputhet me "
"fjalëkalimin e shërbyesit."
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Regjistrimet publike u aktivizuan"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Regjistrimet publike u çaktivizuan"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Mënyra private u aktivizua"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Mënyra private u çaktivizua"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Lëkurçja parazgjedhje u ndryshua"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "Emri i përkatësisë u caktua"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3546,11 +3586,11 @@ msgstr ""
"lypset një klient Minetest"
"a>."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Bankëprovë Blloqesh"
@@ -3603,7 +3643,7 @@ msgstr ""
msgid "Address"
msgstr "Adresë"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3621,15 +3661,15 @@ msgstr ""
"telefona të mençur, televizorë, dhe sisteme lojërash (të tillë si PS3 dhe "
"Xbox 360), ose aplikacione të tillë si totem dhe Kodi."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Shërbyes transmetimi mediash"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Shërbyes i Thjeshtë Mediash"
@@ -3692,11 +3732,11 @@ msgstr ""
"64738. Ka klientë klientë të gatshëm për "
"t’u lidhur me Mumble-in që nga desktopi apo pajisjet tuaja celulare."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Fjalosje Me Zë"
@@ -3741,17 +3781,17 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "Fjalëkalimi i superpërdoruesit u përditësua me sukses."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Password added."
msgid "Join password changed"
msgstr "U shtua fjalëkalim."
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3789,7 +3829,7 @@ msgstr "Shell i Sigurt"
msgid "Services"
msgstr "Shërbime"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3797,7 +3837,7 @@ msgstr ""
"Formësoni pajisje rrjeti. Lidhuni në Internet përmes Ethernet-i, Wi-Fi ose "
"PPPoE. Ndajeni atë lidhje me pajisje të tjera në rrjet."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3805,15 +3845,10 @@ msgstr ""
"Pajisjet e administruara përmes metodash të tjera mund të mos jenë të "
"pranishme për formësim këtu."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Rrjete"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "Po përdoret DNSSEC në IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Lloj Lidhjeje"
@@ -4431,7 +4466,7 @@ msgid "Create Connection"
msgstr "Krijoni Lidhje"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Fshije Lidhjen"
@@ -4451,13 +4486,13 @@ msgstr "Hapësirë"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4478,7 +4513,7 @@ msgid "Computer"
msgstr "Kompjuter"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Përpunoni Lidhje"
@@ -4488,13 +4523,13 @@ msgstr "Lidhje"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Rrjete Wi-Fi Atypari"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Shtoni Lidhje"
@@ -4718,246 +4753,242 @@ msgstr ""
"numrin e modelit të rrugëzuesit tuaj dhe kërkoni në internet për doracakun e "
"rrugëzuesit. Kjo do t’ju japë udhëzimet e plota se si të kryhet kjo punë."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "i çaktivizuar"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "automatik"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "dorazi"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "e përbashkët"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "e panjohur"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "e paadministruar"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "jo i passhëm"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "i shkëputur"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "po përgatitet"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "po lidhet"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "lyp mirëfilltësim"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "po kërkohet adresë"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "po kontrollohet"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr "po pritet për dytësor"
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "e aktivizuar"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "po çaktivizohet"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "pa arsye"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "gabim i panjohur"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "pajisja tani administrohet"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "pajisja tani është e paadministruar"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "formësimi dështoi"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr "lyp të fshehta"
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "Klienti DHCP s’arriti të niset"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "Gabim klienti DHCP"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "Klienti DHCP dështoi"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr "dështoi nisja e shërbimit për lidhje të përbashkët"
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "dështoi shërbimi për lidhje të përbashkët"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "pajisja u hoq"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "pajisja u shkëput nga përdoruesi"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr "dështoi plotësimi i një varësie të lidhjes"
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "S’u gjet rrjet Wi-Fi"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "dështoi një lidhje dytësore"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr "u vu në radhë aktivizim lidhjeje të re"
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "u pikas adresë IP e përsëdytur"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "metoda e përzgjedhur për IP nuk mbulohet"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "elementare"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "Ndërfaqe TUN ose TAP"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad-hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "infrastrukturë"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "pikë hyrjeje"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "pikë mesh"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Lidhje Rrjeti"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "S’shfaqet dot lidhje: S’u gjet lidhje."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Hollësi Lidhjeje"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "S’përpunohet dot lidhje: S’u gjet lidhje."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Ky lloj lidhjesh nuk kuptohet ende."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "U aktivizua lidhja {name}."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "S’u arrit të aktivizohet lidhje: S’u gjet lidhje."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"S’u arrit të aktivizohet lidhja {name}: S’u gjet pajisje e përshtatshme."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "U çaktivizua lidhja {name}."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Dështoi çaktivizimi i lidhjes: S’u gjet lidhje."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Po Shtohet Lidhje e Re Elementare"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Po Shtohet Lidhje e Re Ethernet"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Po Shtohet Lidhje e Re PPPoE"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Po Shtohet Lidhje e Re Wi-Fi"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Lidhja {name} u fshi."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "S’u arrit të fshihet lidhje: S’u gjet lidhje."
@@ -4978,20 +5009,20 @@ msgstr ""
"brendshme të dhëna nga {box_name}. Mund të hyni edhe në Internet përmes "
"{box_name}-it, për më tepër siguri dhe anonimitet."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "Lidhuni me shërbime VPN"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Rrjet Virtual Privat"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5132,15 +5163,15 @@ msgstr ""
"të ardhmen mund të jetë e mundshme të përdorni {box_name}-in e një shokut "
"tuaj për këtë."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "E dukshme Publikisht"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "Përkatësi PageKite"
@@ -5256,29 +5287,29 @@ msgstr ""
"përcaktoni këtu. Për shembull, HTTPS në porta të tjera nga 443 dihet se "
"shkakton probleme."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Shërbyes (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "Sajti do të gjendet në http://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Shërbyes (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "Sajti do të gjendet në https://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Shell i Sigurt (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5287,7 +5318,7 @@ msgstr ""
"\">udhëzime ujdisjeje klienti SSH"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Funksionim"
@@ -5310,7 +5341,7 @@ msgstr ""
"Matjet mbi funksionimin grumbullohen nga Performance Co-Pilot dhe mund të "
"shihen duke përdorur aplikacionin Cockpit."
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Mbikëqyrje Sistemi"
@@ -5393,12 +5424,19 @@ msgstr ""
"tjera hedhurina të papëlqyeshme Internet. "
#: plinth/modules/privoxy/__init__.py:28
-#, python-brace-format
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "You can use Privoxy by modifying your browser proxy settings to your "
+#| "{box_name} hostname (or IP address) with port 8118. While using Privoxy, "
+#| "you can see its configuration details and documentation at http://config.privoxy.org/ or http://p.p."
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Privoxy-në mund ta përdorni duke ndryshuar rregullimet e shfletuesit tuaj "
@@ -5407,15 +5445,15 @@ msgstr ""
"për të mund të shihni te http://config."
"privoxy.org/ ose http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Ndërmjetës Web"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Hapni {url} me ndërmjetësin {proxy} në tcp{kind}"
@@ -5449,11 +5487,11 @@ msgstr ""
"\"http://quassel-irc.org/downloads\">desktopi dhe celulari juaj."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "Klient IRC"
@@ -5487,12 +5525,12 @@ msgstr ""
"të ri dhe librash adresash. Nuk mbulon shtim veprimtarish ose kontaktesh, "
"çka duhen bërë duke përdorur një tjetër klient."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Kalendar dhe Libër adresash"
@@ -5570,7 +5608,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Formësimi i të drejtave për hyrje u përditësua"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5583,7 +5621,7 @@ msgstr ""
"për MIME, libër adresash, manipulim dosjesh, kërkim në mesazhe dhe kontroll "
"drejtshkrimi."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5597,7 +5635,7 @@ msgstr ""
"IMAP përmes SSL (e rekomanduar), plotësoni fushën e shërbyesit, bie fjala, "
"imaps://imap.shembull.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5613,7 +5651,7 @@ msgstr ""
"Google (https://www.google.com/settings/security/lesssecureapps)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "Klient Email"
@@ -5631,6 +5669,45 @@ msgstr ""
"kundrejt shërbyesit dhe përdoruesit mund të lexojnë dhe dërgojnë email-e "
"vetëm prej këtij {box_name}."
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Kur aktivizohet, Tiny Tiny RSS mund të përdoret nga cilido përdorues me kredenciale hyrjeje në {box_name}."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Lexoni dhe pajtohuni te prurje lajmesh"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5673,15 +5750,15 @@ msgstr ""
"Pjesë Home - cilido përdorues në grupin freedombox-share mund të ketë "
"hapësirën e vet private."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Hyrje te ndarje private"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Depozitë Kartelash Në Rrjet"
@@ -5815,15 +5892,15 @@ msgstr ""
"Searx mund të përdoret për të shmangur gjurmim dhe profilizim nga motorë "
"kërkimesh. Si parazgjedhje, nuk depoziton cookies."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Kërkoni në internet"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Kërkim në Web"
@@ -5920,7 +5997,7 @@ msgstr ""
"kontribues te Debian dhe bashkësia %(box_name)s."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Raport Sigurie"
@@ -5998,12 +6075,12 @@ msgstr "Jo"
msgid "Not running"
msgstr "S’xhiron"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Gabim në ujdisje hyrjeje të kufizuar: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "U përditësua formësim sigurie"
@@ -6019,11 +6096,11 @@ msgstr ""
"Mbani parasysh se Shaarli mbulon vetëm një llogari të vetme përdoruesi, të "
"cilën duhet ta ujdisni gjatë vizitës fillestare."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Faqerojtës"
@@ -6063,11 +6140,11 @@ msgstr ""
"pajisjen, shfletuesin ose aplikacionin tuaj caktoni http://"
"freedombox_address:1080/"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Ndërmjetës SOCKS5"
@@ -6098,7 +6175,7 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr "Metodë fshehtëzimi. Duhet të përputhet me atë të caktuar te shërbyesi."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6107,7 +6184,7 @@ msgstr ""
"Dhënia ju lejon të ndani nëpër internet kartela dhe dosje në {box_name}-in "
"tuaj me grupe dhe përdorues të zgjedhur nga ju."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Dhënie"
@@ -6161,28 +6238,28 @@ msgstr "Ka tashmë një pjesë me këtë emër."
msgid "Shares should be either public or shared with at least one group"
msgstr "Pjesët duhet të jenë ose publike, ose të ndara me të paktën një grup"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Shtoni pjesë"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Aktualisht s’ka pjesë të formësuar."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Shteg Disku"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Ndarë Përmes"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Me Grupe"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "hyrje publike"
@@ -6341,7 +6418,7 @@ msgstr "Datë"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Fshi Fotografime"
@@ -6395,54 +6472,54 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "Prapaktheje te Fotografimi #%(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "krijuar dorazi"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "rrjedhë kohore"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Administroni Fotografime"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "U krijua fotografim."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "U përditësua formësim për depozitim fotografimesh"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Gabim veprimi: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "U fshinë fotografimet e përzgjedhur"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
"Fotografimi është aktualisht në përdorim. Ju lutemi, riprovoni më vonë."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "U kthye prapa te fotografimi #{number}."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "Që të plotësohet prapakthimi, duhet rinisur sistemi."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Prapaktheje te Fotografim"
@@ -6458,7 +6535,7 @@ msgstr ""
"një kompjuter i largët i autorizuar mund të kryejë punë administrimi, të "
"kopjojë kartela ose të xhirojë shërbime të tjera."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Shërbyes Shelli të Sigurt (SSH)"
@@ -6504,7 +6581,7 @@ msgstr "Mirëfilltësimi SSH me fjalëkalim u çaktivizua."
msgid "SSH authentication with password enabled."
msgstr "Mirëfilltësimi SSH me fjalëkalim u aktivizua."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Hyrje Njëshe"
@@ -6528,107 +6605,107 @@ msgstr ""
"përdorim, të montoni dhe çmontoni media të heqshme, të zgjeroni pjesën "
"rrënjë, etj."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Depozitë"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} bajte"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "Veprimi dështoi."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "Veprimi u anulua."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Pajisja po çmontohet tashmë."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
"Veprimi nuk mbulohet, për shkak se mungon mbulimi për përudhësin/mjetin."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "Veprimit i mbaroi koha."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr "Veprimi do të zgjonte një disk që është në gjendjen “deep-sleep”."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Po përpiqet të çmontohet një pajisje që është e zënë."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "Veprimi është anuluar tashmë."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "I paautorizuar për kryerjen e veprimit të kërkuar."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Pajisja është e çmontuar tashmë."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Pajisja s’është e montuar."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "S’i lejohet të përdorë mundësinë e kërkuar."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Pajisja është montuar nga tjetër përdorues."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
"Hapësirë e ulët në pjesë sistemi: {percent_used}% të përdorura, {free_space} "
"të lira."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Hapësirë disku e pamjaftueshme"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "Shumë afër dështimi disku"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6783,16 +6860,16 @@ msgstr ""
"Ndërfaqja web te {box_name} është e përdorshme vetëm nga përdorues që i "
"përkasin grupit “përgjegjës”, ose atij “syncthing-access”."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Administroni aplikacionin Syncthing"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Njëkohësim Kartelash"
@@ -6818,40 +6895,40 @@ msgid ""
"TCP port 9050."
msgstr "Një portë SOCKS Tor-i në %(box_name)s tuaj gjendet në portën TCP 9050."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Shërbim Onion Tor"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Ndërmjetës SOCKS Tor"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Rele Ure Tor"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Portë releje Tor e gatshme"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "U regjistruar transport Obfs3"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "U regjistruar transport Obfs3"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "URL hyrjesh {url} në tcp{kind} përmes Tor-i"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Ripohoni përdorim Tor-i te {url} në tcp{kind}"
@@ -6862,15 +6939,11 @@ msgid ""
msgstr ""
"Jepni një urë të vlefshme me këtë format: [transport] IP:ORPort [fingerprint]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Aktivizo Tor-in"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Përdorni ura “upstream” që të lidheni në rrjetin Tor"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6881,11 +6954,11 @@ msgstr ""
"Internet (ISP) bllokon ose censuron lidhjet në Rrjetin Tor. Kjo do të "
"çaktivizojë mënyrat rele."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Ura “upstream”"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6897,11 +6970,11 @@ msgstr ""
"em>obfs3</em>, <em>obfs4</em> dhe <em>"
"scamblesuit</em>."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Aktivizo rele Tor"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6912,11 +6985,11 @@ msgstr ""
"dhurojë gjerësi bande për rrjetin Tor. Bëjeni këtë nëse keni gjerësi bande "
"ngarkimesh dhe shkarkimesh më tepër se 2 megabite/s."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Aktivizo rele ure Tor"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6927,11 +7000,11 @@ msgstr ""
"më të vështirë censurimin e kësaj nyjeje. Kjo i ndihmon të tjerët të "
"anashkalojnë censurimin."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Aktivizo Shërbim Tor të Fshehur"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6942,11 +7015,11 @@ msgstr ""
"përzgjedhura (bie fjala, wiki, ose fjalosje) pa treguar vendndodhjen e tyre. "
"Mos e përdorni këtë ende për anonimitet të fortë."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Shkarkoni paketa software përmes Tor-i"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6956,7 +7029,7 @@ msgstr ""
"përmes rrjeti Tor. Kjo shton një shkallë privatësie dhe sigurie gjatë "
"shkarkimit të software-it."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Që të përdoren ura “upstream”, përcaktoni të paktën një urë “upstream”."
@@ -6969,21 +7042,25 @@ msgstr "Shfletuesi Tor"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Ndërmjetës me Tor"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "Formësimi i Tor-it po përditësohet"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Shërbim Onion"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Porta"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Rregullim i pandryshuar"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Ndodhi një gabim gjatë formësimit."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Gabim në instalimin e aplikacionit: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -7034,7 +7111,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -7070,15 +7147,11 @@ msgstr ""
"dekstop, përdorni URL /tt-rss-app për t’u "
"lidhur."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Lexoni dhe pajtohuni te prurje lajmesh"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Lexues Prurjesh Lajmesh"
@@ -7105,22 +7178,22 @@ msgstr ""
"rinisja e sistemit shihet si e domosdoshme, bëhet automatikisht më 02:00, "
"duke bërë që krejt aplikacionet të jenë jashtë funksionimi për ca çaste."
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Përditësim Software-i"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox-i u Përditësua"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "S’u fillua dot përditësim shpërndarjeje"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
@@ -7131,11 +7204,11 @@ msgstr ""
"Përditësimi i shpërndarjes do të riprovohet pas 24 orësh, nëse kjo është "
"aktivizuar."
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "Përditësimi i shpërndarjes filloi"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7230,6 +7303,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Hidhe tej"
@@ -7297,40 +7371,64 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Shfaq regjistra të freskët përditësimesh"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Me përmirësim shpërndarjeje të aktivizuar"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "Me përmirësim shpërndarjeje të aktivizuar"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
"Gabim teksa formësohej <em>unattended-upgrades</em>: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "U aktivizuan përmirësime të automatizuara"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Përmirësimet e vetvetishme janë çaktivizuar"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "Me përmirësim shpërndarjeje të aktivizuar"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Me përmirësim shpërndarjeje të çaktivizuar"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Procesi i përmirësimit filloi."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "Nisja e përmirësimi dështoi."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Përditësime të shpeshta veçorish të aktivizuara."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Me përmirësim shpërndarjeje të aktivizuar"
+
#: plinth/modules/users/__init__.py:29
#, fuzzy
#| msgid ""
@@ -7359,15 +7457,15 @@ msgstr ""
"vetëm përdoruesit e grupit përgjegjës mund të ndryshojnë "
"aplikacionet, apo rregullimet e sistemit."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Përdorues dhe Grupe"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Hyrje te krejt shërbimet dhe rregullime të sistemit"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Kontrolloni zërin LDAP \"{search_item}\""
@@ -8003,12 +8101,12 @@ msgstr ""
"ose tema shtesë mund të instalohet dhe përmirësohen duke e marrë ju përsipër "
"rrezikun."
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "Sajt dhe Blog"
@@ -8058,11 +8156,11 @@ msgstr ""
"Zoph. Për përdorues të tjerë, llogaritë mund të krijohen si në {box_name}, "
"ashtu edhe në Zoph, me të njëjtin emër përdoruesi."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Sistemues Fotografish"
@@ -8100,38 +8198,136 @@ msgstr "PPPoE"
msgid "Generic"
msgstr "Elementar"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Gabim në caktim strehëemri: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
"Paketa {package_name} gjendet nën versionin më të ri ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Gabim gjatë instalimit"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Gabim Gjatë Kopjeruajtjes"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "po instalohet"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "po shkarkohet"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "ndryshim media"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "kartelë formësimi: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Instaloni Aplikacione"
+
+#: plinth/setup.py:42
+#, fuzzy
+#| msgid "Updating..."
+msgid "Updating app"
+msgstr "Po përditësohet…"
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Gabim në instalimin e aplikacionit: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Gabim në instalimin e aplikacionit: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Gabim në instalimin e aplikacionit: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Gabim në instalimin e aplikacionit: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Aplikacioni u instalua."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Përditësimi i fundit më"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Instaloni Aplikacione"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Gabim në instalimin e aplikacionit: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Gabim në instalimin e aplikacionit: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Aplikacioni u instalua."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 E ndaluar"
@@ -8182,7 +8378,7 @@ msgstr ""
msgid "Installation"
msgstr "Instalim"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Shërbimi %(service_name)s s’po xhiron."
@@ -8451,6 +8647,10 @@ msgstr "Nga Porta Rrugëzuesi/WAN-i"
msgid "To %(box_name)s Ports"
msgstr "Te Porta të %(box_name)s"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Aplikacioni u instalua."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Të instalohet aplikacionin?"
@@ -8460,22 +8660,14 @@ msgid "This application needs an update. Update now?"
msgstr "Ky aplikacion lyp një përditësim. Të përditësohet tani?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Po xhirohet tashmë një tjetër instalim ose përmirësim. Ju lutemi, pritni pak "
-"çaste, përpara se të riprovoni."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Ky aplikacion aktualisht s’mund të kihet në shpërndarjen tuaj."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Rikontrollo"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8485,36 +8677,107 @@ msgstr ""
"kanë përplasje me instalimin e këtij aplikacioni. Paketa vijuese do të "
"hiqen, nëse vazhdoni më tej:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Instaloje"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Përditësoje"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Po kryhet veprim para-instalimi"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Instaloje"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Po kryhet veprim pas-instalimi"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Përpunoni Përdoruesin %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Po instalohet %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% e plotësuar"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Rregullim i pandryshuar"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujaratase"
+#~ msgid "Network Connections"
+#~ msgstr "Lidhje Rrjeti"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Aktivizo Tor-in"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Formësimi i Tor-it po përditësohet"
+
+#~ msgid "Error during installation"
+#~ msgstr "Gabim gjatë instalimit"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "Po përdoret DNSSEC në IPv{kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Po xhirohet tashmë një tjetër instalim ose përmirësim. Ju lutemi, pritni "
+#~ "pak çaste, përpara se të riprovoni."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Po kryhet veprim para-instalimi"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Po kryhet veprim pas-instalimi"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Po instalohet %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% e plotësuar"
+
+#~ 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 lyp përdorim që nga një emër përkatësie. S’do të funksionojë, "
+#~ "nëse provohet duke përdorur një adresë IP, si pjesë e URL-së."
+
+#~ msgid "Access"
+#~ msgstr "Hyrje"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr ""
+#~ "Cockpit do të funksionojë vetëm kur në të hyhet duke përdorur URL-të "
+#~ "vijuese."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Shërbyes"
+
#~ msgid "Server URL"
#~ msgstr "URL shërbyesi"
@@ -8948,11 +9211,6 @@ msgstr "Gujaratase"
#~ msgid "Postfix domain name config"
#~ msgstr "Gabim në caktimin e emrin të përkatësisë: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Ndodhi një gabim gjatë formësimit."
-
#, fuzzy
#~| msgid "Directory does not exist."
#~ msgid "User does not exist"
diff --git a/plinth/locale/sr/LC_MESSAGES/django.po b/plinth/locale/sr/LC_MESSAGES/django.po
index 67cab624b..4ed56b3cd 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-01-18 12:32+0000\n"
"Last-Translator: ikmaak \n"
"Language-Team: Serbian any user on {box_name} "
@@ -1158,32 +1157,16 @@ msgstr ""
"Pristup moguć korisnik na {box_name} koja "
"pripada admin grupi."
-#: plinth/modules/cockpit/__init__.py:40
-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-u se pristupa isključivo preko domena. Neće raditi preko IP adrese "
-"kao URL."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Kokpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Administracija Servera"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Pristup"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Kokpit radi samo preko sledećih URL-ova."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1196,7 +1179,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr ""
@@ -1274,43 +1257,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1330,11 +1335,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1356,11 +1361,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1397,17 +1402,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1426,55 +1431,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1521,7 +1526,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1552,11 +1557,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1666,13 +1671,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1750,12 +1756,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1850,7 +1856,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1895,21 +1901,21 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Domain Name Server"
msgid "Email Server"
msgstr "Domain Name Server"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1943,7 +1949,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -2026,7 +2032,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2163,15 +2169,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2267,54 +2273,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr ""
@@ -2417,6 +2423,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2523,16 +2564,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2557,19 +2598,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2622,15 +2663,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2668,8 +2709,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2684,32 +2725,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2726,11 +2767,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2749,28 +2790,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Web Server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2782,17 +2821,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2936,7 +2975,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2968,8 +3007,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -3040,12 +3079,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3108,41 +3147,41 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain Name Server"
msgid "Domain name updated"
msgstr "Domain Name Server"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain Name Server"
msgid "Site name updated"
@@ -3157,11 +3196,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3206,7 +3245,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3217,15 +3256,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3278,11 +3317,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3324,15 +3363,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3367,27 +3406,22 @@ msgstr ""
msgid "Services"
msgstr "Služi"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3907,7 +3941,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3927,13 +3961,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3954,7 +3988,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3964,13 +3998,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4153,253 +4187,249 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
#, fuzzy
#| msgid "Configuration updated"
msgid "configuration failed"
msgstr "Konfiguracija sačuvana"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
#, fuzzy
#| msgid "Connection refused"
msgid "shared connection service failed"
msgstr "Veza odbijena"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
#, fuzzy
#| msgid "Repository not found"
msgid "Wi-Fi network not found"
msgstr "Repozitorijum nije pronađen"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
#, fuzzy
#| msgid "Access"
msgid "access point"
msgstr "Pristup"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4414,20 +4444,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4535,15 +4565,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4649,36 +4679,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4695,7 +4725,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4767,21 +4797,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4805,11 +4836,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4834,12 +4865,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4904,7 +4935,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4912,7 +4943,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4921,7 +4952,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4931,7 +4962,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4946,6 +4977,45 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "It can be accessed by any user on {box_name} "
+#| "belonging to the admin group."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Pristup moguć korisnik na {box_name} koja "
+"pripada admin grupi."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4977,15 +5047,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -5107,15 +5177,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5196,7 +5266,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5261,12 +5331,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5280,11 +5350,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5314,11 +5384,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5347,14 +5417,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5402,28 +5472,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5563,7 +5633,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5611,55 +5681,55 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
#, fuzzy
#| msgid "Archive created."
msgid "manually created"
msgstr "Arhiva kreirana."
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5671,7 +5741,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5712,7 +5782,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5732,104 +5802,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5963,16 +6033,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5992,40 +6062,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6035,37 +6105,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6073,22 +6139,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6096,18 +6162,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6119,21 +6185,25 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr ""
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "Configuration updated"
+msgid "Updating configuration"
+msgstr "Konfiguracija sačuvana"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Greška prilikom instaliranja aplikacije: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6182,7 +6252,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6212,15 +6282,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6241,33 +6307,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6345,6 +6411,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6400,39 +6467,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6448,15 +6533,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -7021,12 +7106,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -7061,11 +7146,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7099,37 +7184,128 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr ""
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr ""
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Existing Backups"
+msgid "Error running apt-get"
+msgstr "Postojeće rezervne kopije"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Greška prilikom instaliranja aplikacije: {string}{details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Greška prilikom instaliranja aplikacije: {string}{details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Greška prilikom instaliranja aplikacije: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Greška prilikom instaliranja aplikacije: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Aplikacija instalirana."
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Error installing application: {error}"
+msgid "Uninstalling app"
+msgstr "Greška prilikom instaliranja aplikacije: {error}"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Greška prilikom instaliranja aplikacije: {string}{details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Greška prilikom instaliranja aplikacije: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Aplikacija instalirana."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7172,7 +7348,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7417,6 +7593,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Aplikacija instalirana."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7426,56 +7606,81 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr ""
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Application installed."
+msgid "Uninstall"
+msgstr "Aplikacija instalirana."
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr ""
+#~ 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-u se pristupa isključivo preko domena. Neće raditi preko IP "
+#~ "adrese kao URL."
+
+#~ msgid "Access"
+#~ msgstr "Pristup"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "Kokpit radi samo preko sledećih URL-ova."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Web Server"
+
#, fuzzy
#~| msgid "Web Server"
#~ msgid "Server URL"
diff --git a/plinth/locale/sv/LC_MESSAGES/django.po b/plinth/locale/sv/LC_MESSAGES/django.po
index 86736d1b5..b70894a1d 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2022-05-27 17:17+0000\n"
"Last-Translator: Michael Breidenbach \n"
"Language-Team: Swedish calibre -gruppen kan komma åt appen. "
"Alla användare med åtkomst kan använda alla bibliotek."
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "Använd calibre e-bokbibliotek"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "E-bok Bibliotek"
@@ -1133,25 +1132,25 @@ msgstr "Gå till biblioteket %(library)s"
msgid "Delete library %(library)s"
msgstr "Ta bort bibliotek %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "Bibliotek skapat."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "Ett fel uppstod när biblioteket skulle skapas."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} borttagen."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "Kunde inte ta bort {name}: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1164,7 +1163,7 @@ msgstr ""
"tillgängliga för många avancerade funktioner som vanligtvis inte krävs. En "
"webbaserad terminal för konsoloperationer är också tillgänglig."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1176,7 +1175,7 @@ msgstr ""
"anpassade brandväggsportar och avancerade nätverk som bindning, bryggning "
"och VLAN-hantering."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1185,32 +1184,16 @@ msgstr ""
"Den kan nås genom att alla användar på "
"{box_name} som hör till administratörsgruppen."
-#: plinth/modules/cockpit/__init__.py:40
-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 kräver att du öppnar den via ett domännamn. Det kommer inte att "
-"fungera när de nås med en IP-adress som en del av webbadressen."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Server administrering"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Tillgång"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Cockpit fungerar bara vid åtkomst med följande webbadresser."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1225,7 +1208,7 @@ msgstr "Allmän Konfiguration"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Konfigurera"
@@ -1318,43 +1301,67 @@ msgstr "Visa avancerade appar och funktioner"
msgid "Show apps and features that require more technical knowledge."
msgstr "Visa appar och funktioner som kräver mer teknisk kunskap."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Monitoring"
+msgid "System-wide logging"
+msgstr "Systemövervakning"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Fel inställning av värdnamn: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Värdnamn inställt"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Fel inställning av domännamn: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Domännamn inställt"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Fel vid inställning av webbserverns hemsida: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Webbserverns hemsida är inställt"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Fel vid ändring av avancerat läge: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Visar avancerade appar och funktioner"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Dölja avancerade appar och funktioner"
@@ -1381,11 +1388,11 @@ msgstr ""
"\"{ms_url}\">Matrix Synapse eller ejabberd måste "
"konfigureras med de uppgifter som tillhandahålls här."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "VoIP-hjälpare"
@@ -1410,11 +1417,11 @@ msgstr ""
"Network time server är ett program som upprätthåller synkronisering av "
"systemtiden med servrar på Internet."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Datum och Tid"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Tid synkroniserad till NTP-server"
@@ -1457,17 +1464,17 @@ msgstr ""
"Standardlösenordet är \"deluge\", men du bör logga in och ändra det "
"omedelbart efter att du har aktiverat den här tjänsten."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Ladda ner filer med BitTorrent-applikationer"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "BitTorrent Webbklient"
@@ -1488,48 +1495,48 @@ msgstr ""
"bekräfta att program och tjänster fungerar som de ska."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Diagnostik"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "passerade"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "misslyckades"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "fel"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "varning"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr "Du bör inaktivera vissa appar för att minska minnesanvändningen."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Du bör inte installera några nya appar på det här systemet."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1538,7 +1545,7 @@ msgstr ""
"Systemet är ont om minne: {percent_used}% används, {memory_available}"
"·{memory_available_unit} ledig. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Låg minne"
@@ -1588,7 +1595,7 @@ msgstr "Test"
msgid "Result"
msgstr "Resultat"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Diagnostiktest"
@@ -1633,11 +1640,11 @@ msgstr ""
"baserade tjänster på freedns.afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Klient för Dynamisk DNS"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Dynamiskt Domännamn"
@@ -1763,13 +1770,14 @@ msgid "This field is required."
msgstr "Detta fält krävs."
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1850,12 +1858,12 @@ msgstr ""
"ejabberd behöver en STUN/TURN-server för ljud-/videosamtal. Installera appen "
"Coturn eller konfigurera en extern server."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabbert"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Chat-Server"
@@ -1964,7 +1972,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2024,19 +2032,19 @@ msgid ""
msgstr ""
"Under installationen avinstalleras alla andra e-postservrar i systemet."
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr "Postfix/Dovecot"
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "E-postserver"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr "Mina E-postalias"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr "Hantera alias för Brevlåda"
@@ -2072,7 +2080,7 @@ msgstr "Kan inte vara ett nummer"
msgid "Aliases"
msgstr "Aliasnamn"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2158,7 +2166,7 @@ msgstr ""
"nätverkstrafiken på din {box_name}. Att ha en brandvägg aktiverad och "
"korrekt konfigurerad minskar risken för säkerhetshot från Internet."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Brandvägg"
@@ -2318,15 +2326,15 @@ msgstr ""
"För att lära dig mer om hur du använder Git besökGit handledning."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Läs-skrivåtkomst till Git-respositories"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Enkelt Git hosting"
@@ -2423,54 +2431,54 @@ msgstr "Ta bort Git-respository %(name)s"
msgid "Delete this repository permanently?"
msgstr "Radera detta arkiv permanent?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Respository skapat."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Ett fel uppstod medan skapa ett repository."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Respository redigerad."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Redigera respository"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Dokumentation"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Handbok"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Få support"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Skicka feedback"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Bidrar"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Om"
@@ -2607,6 +2615,41 @@ msgstr ""
msgid "Learn more..."
msgstr "Läs mer..."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2747,16 +2790,16 @@ msgstr ""
"Ta bort lösenord eller annan personlig information från loggen innan du "
"skickar felrapporten."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Dokumentation och Vanliga Frågor"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "Om {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "{box_name} Manual"
@@ -2789,19 +2832,19 @@ msgstr ""
"Det första besöket i det medföljande webbgränssnittet kommer att initiera "
"konfigurationsprocessen."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "Hantera I2P appen"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Anonymitetsnätverk"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "I2P proxy"
@@ -2869,15 +2912,15 @@ msgstr ""
"redigera befindliga. I Användarkonfiguration"
"a> kan du ändra dessa behörigheter eller lägga till nya användare."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "Ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki och Blogg"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Visa och redigera wiki-applikationer"
@@ -2915,8 +2958,8 @@ msgstr "Ta bort webbsida %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Uppdatera inställningar"
@@ -2933,32 +2976,32 @@ msgstr ""
"Den här åtgärden tar bort alla inlägg, sidor och kommentarer, även "
"versionshistorik. Ta bort denna wiki eller blogg permanent?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Skapade wiki {name}."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Kunde inte skapa wiki: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Blogg skapad {name}."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Kunde inte skapa blogg: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} borttagen."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "Kunde inte ta bort {title}: {error}"
@@ -2978,11 +3021,11 @@ msgstr ""
", desktop client och installera det. Starta sedan Gobby och välj "
"\"Anslut till server\" och ange ditt {box_name} domännamn."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "Infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Gobby-Server"
@@ -3003,28 +3046,26 @@ msgstr ""
"Starta Gobby och välj \"Anslut till server\" och ange ditt {box_name} "
"domännamn."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Webbserver"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3036,7 +3077,7 @@ msgstr ""
msgid "JavaScript license information"
msgstr "JavaScript-licensinformation"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3044,11 +3085,11 @@ msgstr ""
"JSXC är en webbklient för XMPP. Vanligtvis används den med en XMPP-server "
"som körs lokalt."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Chat klient"
@@ -3214,7 +3255,7 @@ msgstr ""
"Matrix Synapse behöver en STUN/TURN-server för ljud-/videosamtal. Installera "
"Coturn-appen eller konfigurera en extern server."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3252,8 +3293,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Konfiguration"
@@ -3353,12 +3394,12 @@ msgstr ""
"Alla som har en länk till denna wiki kan läsa den. Endast användare som är "
"inloggade kan göra ändringar i innehållet."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Wiki"
@@ -3435,39 +3476,39 @@ msgstr ""
"Välj ett standardskal för din MediaWiki-installation. Användare har "
"möjlighet att välja önskad utseendet."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Lösenord uppdaterad"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr "Lösenordsuppdateringen misslyckades. Välj ett starkare lösenord"
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Offentliga registreringar aktiverade"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Offentliga registreringar avaktiverad"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Privat läge aktiverat"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Privat läge inaktiverat"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Standardskal ändrat"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr "Domännamnet uppdaterat"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name updated"
msgid "Site name updated"
@@ -3486,11 +3527,11 @@ msgstr ""
"(30000). För att ansluta till servern, en Minetest klient behövs."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Block sandbox"
@@ -3540,7 +3581,7 @@ msgstr "Om inaktiverat kan spelare inte dö eller få skador av något slag."
msgid "Address"
msgstr "Adress"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3557,15 +3598,15 @@ msgstr ""
"certifiering som bärbara mediaspelare, smartphones, TV-apparater och "
"spelsystem (såsom PS3 och Xbox 360) eller applikationer som totem och Kodi."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Media Streaming Server"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Enkel mediaserver"
@@ -3628,11 +3669,11 @@ msgstr ""
"\"http://mumble.info\"> Appar finns för att ansluta till Mumble från din "
"dator- och Android-enheter."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Röstchatt"
@@ -3683,17 +3724,17 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "SuperUser lösenord har uppdaterats."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Upload password updated"
msgid "Join password changed"
msgstr "Ladda upp lösenordet uppdaterat"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3730,7 +3771,7 @@ msgstr "Secure Shell"
msgid "Services"
msgstr "Tjänster"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3738,7 +3779,7 @@ msgstr ""
"Konfigurera nätverksenheter. Anslut till Internet via Ethernet, Wi-Fi eller "
"PPPoE. Dela den anslutningen med andra enheter i nätverket."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3746,15 +3787,10 @@ msgstr ""
"Enheter som administreras via andra metoder kanske inte är tillgängliga för "
"konfiguration här."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Nätverk"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "Använder DNSSEC på IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Anslutningstyp"
@@ -4370,7 +4406,7 @@ msgid "Create Connection"
msgstr "Skapa anslutning"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Ta Bort Anslutning"
@@ -4390,13 +4426,13 @@ msgstr "Avstånd"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4417,7 +4453,7 @@ msgid "Computer"
msgstr "Dator"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Redigera Anslutning"
@@ -4427,13 +4463,13 @@ msgstr "Anslutningar"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Wi-Fi-nätverk i närheten"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Lägg till Anslutning"
@@ -4655,247 +4691,243 @@ msgstr ""
"din router modellnummer och sök online för routerns manual. Detta ger "
"fullständiga instruktioner om hur du utför den här uppgiften."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "inaktiverad"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "automatisk"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "manual"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "delad"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr "länk-lokal"
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "okänd"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "ohanterad"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "otillgängligt"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "ifrånkopplat"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "förbereder"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "ansluter"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "behöver autentisering"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "begära adress"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "kontrallera"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr "väntar på sekundär"
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "aktiverat"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "avaktivera"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "ingen anledning"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "okänd fel"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "enheten hanteras nu"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "enheten är nu ohanterad"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "konfigurationen misslyckades"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr "hemligheter krävs"
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "DHCP-klienten kunde inte startas"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "DHCP-klientfel"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "DHCP-klienten misslyckades"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr "delad anslutningstjänst kunde inte startas"
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "tjänsten delad anslutning misslyckades"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "enheten togs bort"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "enheten frånkopplad av användare"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr "ett beroende av anslutningen misslyckades"
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "Wi-Fi-nätverket hittades inte"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "en sekundär anslutning misslyckades"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr "ny anslutningsaktivering inleddes"
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "en duplicerad IP-adress upptäcktes"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "vald IP-metod stöds inte"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "generisk"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "TUN- eller TAP-gränssnitt"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad-hoc-"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "infrastruktur"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "åtkomstpunkt"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "mesh point"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Nätverksanslutningar"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Kan inte visa anslutning: Ingen anslutning hittades."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Anslutningsinformation"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Kan inte redigera anslutning: Ingen anslutning hittades."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Denna typ av anslutning är inte förstådd ännu."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "Aktiverad anslutning {name}."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Det gick inte att aktivera anslutning: Ingen anslutning hittades."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"Det gick inte att aktivera anslutningen {name}: Ingen lämplig enhet är "
"tillgänglig."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Inaktiverade anslutning {name}."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Kunde inte de-aktivera anslutning: Anslutning hittades inte."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Lägga till ny generiska anslutning"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Lägg Till Ny Ethernet-Anslutning"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Lägg Till Ny PPPoE-Anslutning"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Lägg Till Ny Wi-Fi-Anslutning"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Anslutning {name} borttagen."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Det gick inte att ta bort anslutning: Anslutning hittades inte."
@@ -4916,20 +4948,20 @@ msgstr ""
"tillhandahålls av {box_name}. Du kan också komma åt resten av Internet via "
"{box_name} för ökad säkerhet och anonymitet."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "Ansluta till VPN-tjänster"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Virtuellt privat nätverk"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5068,15 +5100,15 @@ msgstr ""
"pagekite. net . I framtiden kan det vara möjligt att använda din kompis "
"{box_name} för detta."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Offentlig Synlighet"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "PageKite domän"
@@ -5189,33 +5221,33 @@ msgstr ""
"de protokoll/port kombinationer som du kan definiera här. Till exempel, "
"HTTPS på andra portar än 443 är kända för att orsaka problem."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Webb server (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
"Webbplatsen kommer att finnas tillgänglig på http://"
"{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Webb server (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
"Webbplatsen kommer att finnas tillgänglig på https://"
"{0} "
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Secure Shell (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5224,7 +5256,7 @@ msgstr ""
"SshoverPageKite/\">instruktioner"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Prestanda"
@@ -5247,7 +5279,7 @@ msgstr ""
"Prestandamätvärden samlas in av Performance Co-Pilot och kan visas med "
"Cockpit-appen."
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Systemövervakning"
@@ -5329,12 +5361,19 @@ msgstr ""
"kontrollera åtkomst och ta bort annonser och andra avskyvärda Internet Junk. "
#: plinth/modules/privoxy/__init__.py:28
-#, python-brace-format
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "You can use Privoxy by modifying your browser proxy settings to your "
+#| "{box_name} hostname (or IP address) with port 8118. While using Privoxy, "
+#| "you can see its configuration details and documentation at http://config.privoxy.org/ or http://p.p."
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Du kan använda Privoxy genom att ändra webbläsarens proxyinställningar till "
@@ -5343,15 +5382,15 @@ msgstr ""
"\"http://config.privoxy.org\">http://config.privoxy.org/ eller http://p.p."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Webbproxy"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Anslut till {url} med proxy {proxy} på TCP {kind}"
@@ -5385,11 +5424,11 @@ msgstr ""
"downloads\" >Desktop och mobila-enheter är tillgängliga."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "IRC-klient"
@@ -5422,12 +5461,12 @@ msgstr ""
"skapandet av nya kalendrar och adressböcker. Det stöder inte att lägga till "
"händelser eller kontakter, som måste göras med hjälp av en separat klient."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Kalender och adressbok"
@@ -5504,7 +5543,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Konfiguration av åtkomsträttigheter uppdaterat"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5516,7 +5555,7 @@ msgstr ""
"förväntar dig från en e-postklient, inklusive MIME-stöd, adressbok, "
"mappmanipulering, meddelande sökning och stavningskontroll."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5530,7 +5569,7 @@ msgstr ""
"kryptering (rekommenderas), fyll server fält som imaps://imap.exempel."
"kom."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5546,7 +5585,7 @@ msgstr ""
"security/lesssecureapps\" >https://www.Google.com/settings/Security/"
"lesssecureapps)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "E-postklient"
@@ -5564,6 +5603,45 @@ msgstr ""
"inloggningssidan och användarna kan endast läsa och skicka e-postmeddelanden "
"från denna {box_name}."
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Tiny Tiny RSS can be accessed by any user belonging to the feed-reader group."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"När aktiverat kan Tiny Tiny RSS nås av alla "
+"användare som tillhör gruppen feed-reader."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Läsa och prenumerera på nyhetsflöden"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5605,15 +5683,15 @@ msgstr ""
"Hemdelning - varje användare i gruppen freedombox-share kan ha sitt eget "
"privata utrymme."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Tillgång till privata delningar"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Nätverk För Fillagring"
@@ -5745,15 +5823,15 @@ msgstr ""
"Searx kan användas för att undvika spårning och profilering av sökmotorer. "
"Den lagrar inga cookies som standard."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Sök på webben"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Webbsökning"
@@ -5847,7 +5925,7 @@ msgstr ""
"%(box_name)s community."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Säkerhetsrapport"
@@ -5924,12 +6002,12 @@ msgstr "Nej"
msgid "Not running"
msgstr "Körs inte"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Fel vid inställning av begränsad åtkomst: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Uppdaterad säkerhetskonfiguration"
@@ -5945,11 +6023,11 @@ msgstr ""
"Observera att Shaarli endast stöd för ett enskilt användarkonto, som du "
"behöver för att ställa den första besök."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Bokmärken"
@@ -5988,11 +6066,11 @@ msgstr ""
"Till använda Shadowsocks efter setup, sätta den SOCKS5 genom fullmakt URL i "
"din anordning, beter eller applicering till http://freedombox_address: 1080/"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Socks5 proxy"
@@ -6022,7 +6100,7 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr "Krypteringsmetod. Måste matcha inställningen på servern."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6031,7 +6109,7 @@ msgstr ""
"Med Sharing kan du dela filer och mappar på din {box_name} över webben med "
"utvalda grupper av användare."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Sharing"
@@ -6083,28 +6161,28 @@ msgstr "Det finns redan en share med det här namnet."
msgid "Shares should be either public or shared with at least one group"
msgstr "Shares ska antingen vara offentliga eller delas med minst en grupp"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Lägg till share"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Inga shares har konfigurerats."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Disk Sök väg"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Delas över"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Med grupper"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "Publik tillgång"
@@ -6263,7 +6341,7 @@ msgstr "Datum"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Ta bort ögonblicksbilder"
@@ -6317,53 +6395,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "Återställning till ögonblicksbild #%(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "manuellt skapad"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "Tidslinjen"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Hantera ögonblicksbilder"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Skapade ögonblicksbild."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Lagring ögonblicksbildkonfiguration uppdaterad"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Åtgärdsfel: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Borttagna markerade ögonblicksbilder"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr "Ögonblicksbild används för närvarande. Vänligen försök igen senare."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "Återställs till Snapshot #{number}."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "Systemet måste startas om för att slutföra återställningen."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Återställning till ögonblicksbild"
@@ -6379,7 +6457,7 @@ msgstr ""
"administrativa uppgifter, kopiera filer eller köra andra tjänster med sådana "
"anslutningar."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Secure Shell-Server (SSH)"
@@ -6425,7 +6503,7 @@ msgstr "SSH-autentisering med lösenord inaktiverat."
msgid "SSH authentication with password enabled."
msgstr "SSH-autentisering med lösenord aktiverat."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Enkel inloggning på"
@@ -6448,106 +6526,106 @@ msgstr ""
"{box_name}. Du kan visa lagringsmedia som för närvarande används, montera "
"och demontera flyttbara media, expandera rotpartitionen etc."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Lagring"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} byte"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} Kib"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} Mib"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} Gib"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} Tib"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "Åtgärden misslyckades."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "Operationen avbröts."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Enheten lossnar redan."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr "Åtgärden stöds inte på grund av saknade drivrutiner/verktygsstöd."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "Åtgärden orsakade timeout."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr "Åtgärden skulle väcka en disk som är i ett djupviloläge."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Försöker avmontera en enhet som är upptagen."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "Operationen har redan avbrutits."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "Inte behörig att utföra den begärda åtgärden."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Enheten är redan monterad."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Enheten är inte monterad."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "Inte tillåtet att använda det begärda alternativet."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Enheten monteras av en annan användare."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
"Lågt utrymme på systempartitionen: {percent_used}% används, {free_space} "
"fritt."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Lågt diskutrymme"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "Diskfel förestående"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6702,16 +6780,16 @@ msgstr ""
"{box_name} är endast tillgängligt för användare som tillhör gruppen \"admin"
"\" eller \"syncthing-access\"."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Administrera Syncthing-program"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Filsynkronisering"
@@ -6738,40 +6816,40 @@ msgstr ""
"En Tor SOCKS-port finns tillgängligt på din {box_name} för interna nätverk "
"på TCP-port 9050."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Tor Onion service"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Tor SOCKS-proxy"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Tor Bridge Relay"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Tor relä port tillgänglig"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3 transport registrerad"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4 transport registrerad"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Tillgång URL {url} på TCP {kind} via Tor"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Bekräfta Tor-användning vid {url} på TCP {kind}"
@@ -6783,15 +6861,11 @@ msgstr ""
"Ange en giltig brygga med det här formatet: [transport] IP:ORPort "
"[fingerprint]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Aktivera Tor"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Använda uppströms broar för att ansluta till Tor-nätverket"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6802,11 +6876,11 @@ msgstr ""
"leverantören blockerar eller censurerar anslutningar till Tor-nätverket. "
"Detta kommer att avaktivera relä lägen."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Uppströms broar"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6817,11 +6891,11 @@ msgstr ""
"informationen här. För närvarande stöds transporter är ingen, obfs3, obfs4 "
"och scamblesuit."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Aktivera Tor Relay"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6832,11 +6906,11 @@ msgstr ""
"bandbredd till Tor-nätverket. Gör detta om du har mer än 2 megabits/s av "
"uppladdning och nedladdning bandbredd."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Aktivera Tor Bridge Relay"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6846,11 +6920,11 @@ msgstr ""
"stället för public Tor Relay-databasen, vilket gör det svårare att censurera "
"den här noden. Detta hjälper andra att kringgå censur."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Aktivera Tor Hidden service"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6861,11 +6935,11 @@ msgstr ""
"tjänster (till exempel wiki eller chatt) utan att avslöja dess plats. Använd "
"inte detta för stark anonymitet ännu."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Ladda ner mjukvarupaket över Tor"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6875,7 +6949,7 @@ msgstr ""
"installationer och uppgraderingar. Detta ger en viss grad av integritet och "
"säkerhet under Programnedladdningar."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "Ange minst en uppströms bro för att använda uppströms broar."
@@ -6887,21 +6961,25 @@ msgstr "TOR Browser"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: proxy med Tor"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "Konfigurationen av Tor uppdateras"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Onion tjänst"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Portar"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Instänllningar oförändrade"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "Error updating configuration"
+msgid "Updating configuration"
+msgstr "Fel vid uppdatering av konfiguration"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Installationen misslyckades: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6957,7 +7035,7 @@ msgstr ""
"När en nedladdning har slutförts kan du också komma åt dina filer med hjälp "
"av Sharing appen."
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -6989,15 +7067,11 @@ msgstr ""
"När du använder en mobil eller stationär applikation för Tiny Tiny RSS, "
"Använd URL/tt-rss-app/\" för att ansluta."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Läsa och prenumerera på nyhetsflöden"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Läsare för nyhetsflödet"
@@ -7024,22 +7098,22 @@ 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:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Mjukvaruuppdatering"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox uppdaterad"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "Det gick inte att starta distributionsuppdatering"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
@@ -7050,11 +7124,11 @@ msgstr ""
"Distributionsuppdateringen kommer att göras ett nytt behov efter 24 timmar, "
"om det är aktiverat."
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "Distributionsuppdateringen har startats"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7148,6 +7222,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Avfärda"
@@ -7213,39 +7288,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Visa senaste uppdatering av loggar"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Distributionsuppgradering aktiverad"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "Distributionsuppgradering aktiverad"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "Fel vid konfigurering av obevakad uppgraderingar: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Automatiska uppgraderingar aktiverade"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Automatiska uppgraderingar inaktiverade"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "Distributionsuppgradering aktiverad"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Distributionsuppgradering inaktiverad"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Uppgraderingsprocessen påbörjades."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "Det gick inte att starta uppgraderingen."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Frekventa funktionsuppdateringar aktiverade."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Distributionsuppgradering aktiverad"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7268,15 +7367,15 @@ msgstr ""
"över appar som är relevanta för dem på startsidan. Endast användare av "
"gruppen admin kan dock ändra appar eller Systeminställningar."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Användare och grupper"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Tillgång till alla tjänster och systeminställningar"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Kontrollera LDAP-posten \"{search_item}\""
@@ -7910,12 +8009,12 @@ msgstr ""
"databasuppgradering från administratörsgränssnittet. Ytterligare plugins "
"eller teman kan installeras och uppgraderas på egen risk."
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "Webbplats och blogg"
@@ -7964,11 +8063,11 @@ msgstr ""
"i Zoph. För ytterligare användare måste konton skapas både i {box_name} och "
"i Zoph med samma användarnamn."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Foto Organizer"
@@ -8006,37 +8105,136 @@ msgstr "Pppoe"
msgid "Generic"
msgstr "Generiska"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Fel inställning av värdnamn: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, fuzzy, python-brace-format
+#| msgid "Service disabled: {name}"
+msgid "Finished: {name}"
+msgstr "Tjänsten är inaktiverad: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr "Paket {expression} är inte tillgänglig för installation"
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Paketet {package_name} är den senaste versionen ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Fel vid installation"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Fel under säkerhetskopiering"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "Installera"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "ladda ner"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "Mediabyte"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "konfigurationsfil: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Installera appar"
+
+#: plinth/setup.py:42
+#, fuzzy
+#| msgid "Updating..."
+msgid "Updating app"
+msgstr "Uppdatera..."
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Installation misslyckades: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Installation misslyckades: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Installationen misslyckades: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Installationen misslyckades: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Applikation installerad."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Senaste uppdatering"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Installera appar"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Installation misslyckades: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Installationen misslyckades: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Applikation installerad."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 förbjuden"
@@ -8087,7 +8285,7 @@ msgstr ""
msgid "Installation"
msgstr "Installation"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Tjänsten %(service_name)s körs inte."
@@ -8356,6 +8554,10 @@ msgstr "Från Router/WAN-portar"
msgid "To %(box_name)s Ports"
msgstr "Till %(box_name)s Portar"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Applikation installerad."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Installera den här applikationen?"
@@ -8365,22 +8567,14 @@ msgid "This application needs an update. Update now?"
msgstr "Det här programmet behöver uppdateras. Uppdatera nu?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"En annan installation eller uppgradering körs redan. Vänta en stund innan du "
-"försöker igen."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Denna ansökan är för närvarande inte tillgänglig i din distribution."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Kontrollera igen"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8390,36 +8584,105 @@ msgstr ""
"systemet är i konflikt med installationen av den här appen. Följande paket "
"tas bort om du fortsätter:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Installera"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Uppdatera"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Utföra för installationsåtgärd"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Installera"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Utföra åtgärder efter installationen"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Redigera användare %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Installerar %(package_names)s:%(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s %% färdigt"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Instänllningar oförändrade"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#~ msgid "Network Connections"
+#~ msgstr "Nätverksanslutningar"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Aktivera Tor"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Konfigurationen av Tor uppdateras"
+
+#~ msgid "Error during installation"
+#~ msgstr "Fel vid installation"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "Använder DNSSEC på IPv{kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "En annan installation eller uppgradering körs redan. Vänta en stund innan "
+#~ "du försöker igen."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Utföra för installationsåtgärd"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Utföra åtgärder efter installationen"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Installerar %(package_names)s:%(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s %% färdigt"
+
+#~ 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 kräver att du öppnar den via ett domännamn. Det kommer inte att "
+#~ "fungera när de nås med en IP-adress som en del av webbadressen."
+
+#~ msgid "Access"
+#~ msgstr "Tillgång"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "Cockpit fungerar bara vid åtkomst med följande webbadresser."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Webbserver"
+
#~ msgid "Server URL"
#~ msgstr "Server URL"
@@ -8852,9 +9115,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Konfiguration av Postfix domännamn"
-#~ msgid "Error updating configuration"
-#~ msgstr "Fel vid uppdatering av konfiguration"
-
#~ msgid "The alias was taken"
#~ msgstr "Aliasnamnet togs"
@@ -9407,9 +9667,6 @@ msgstr "Gujarati"
#~ msgid "Service enabled: {name}"
#~ msgstr "Tjänsten är aktiverad: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Tjänsten är inaktiverad: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "PageKite-konto"
diff --git a/plinth/locale/ta/LC_MESSAGES/django.po b/plinth/locale/ta/LC_MESSAGES/django.po
index 1f6972ab6..a48f582ed 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-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:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr ""
@@ -52,62 +52,60 @@ msgid "Cannot connect to {host}:{port}"
msgstr ""
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+msgid "Repository to backup to"
+msgstr ""
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr ""
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
msgstr ""
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr ""
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
"least one domain with certificates."
msgstr ""
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr ""
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr ""
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr ""
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr ""
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr ""
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr ""
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr ""
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr ""
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr ""
@@ -133,11 +131,11 @@ msgid ""
"network."
msgstr ""
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr ""
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr ""
@@ -145,36 +143,36 @@ msgstr ""
msgid "Backups allows creating and managing backup archives."
msgstr ""
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr ""
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
msgstr ""
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr ""
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr ""
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
"succeed. The latest error is: {error_message}"
msgstr ""
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr ""
@@ -249,7 +247,7 @@ msgstr ""
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr ""
@@ -406,7 +404,7 @@ msgid "{box_name} storage"
msgstr ""
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr ""
@@ -455,7 +453,7 @@ msgid "Create Location"
msgstr ""
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr ""
@@ -511,7 +509,7 @@ msgstr ""
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr ""
@@ -595,99 +593,99 @@ msgstr ""
msgid "Verify Host"
msgstr ""
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr ""
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr ""
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr ""
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr ""
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr ""
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr ""
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr ""
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr ""
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr ""
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr ""
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr ""
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr ""
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr ""
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr ""
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr ""
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr ""
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr ""
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr ""
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr ""
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr ""
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr ""
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr ""
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr ""
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr ""
@@ -715,39 +713,39 @@ msgid ""
"the list."
msgstr ""
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr ""
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr ""
@@ -838,16 +836,15 @@ msgstr ""
msgid "Admin"
msgstr ""
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr ""
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr ""
@@ -877,11 +874,11 @@ msgid ""
"connection from {box_name}."
msgstr ""
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr ""
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr ""
@@ -933,12 +930,12 @@ msgstr ""
msgid "Refresh IP address and domains"
msgstr ""
-#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
-#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -968,15 +965,15 @@ msgid ""
"app. All users with access can use all the libraries."
msgstr ""
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr ""
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr ""
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr ""
@@ -1036,25 +1033,25 @@ msgstr ""
msgid "Delete library %(library)s"
msgstr ""
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr ""
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr ""
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr ""
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1063,7 +1060,7 @@ msgid ""
"console operations is also available."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1071,37 +1068,23 @@ msgid ""
"management."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
"belonging to the admin group."
msgstr ""
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr ""
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr ""
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr ""
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1114,7 +1097,7 @@ msgstr ""
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr ""
@@ -1192,43 +1175,65 @@ msgstr ""
msgid "Show apps and features that require more technical knowledge."
msgstr ""
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr ""
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr ""
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr ""
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr ""
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr ""
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr ""
@@ -1248,11 +1253,11 @@ msgid ""
"be configured with the details provided here."
msgstr ""
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr ""
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr ""
@@ -1274,11 +1279,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr ""
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr ""
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr ""
@@ -1315,17 +1320,17 @@ msgid ""
"immediately after enabling this service."
msgstr ""
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr ""
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr ""
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr ""
@@ -1344,55 +1349,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1439,7 +1444,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1470,11 +1475,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1584,13 +1589,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1662,12 +1668,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1760,7 +1766,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1805,19 +1811,19 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr ""
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr ""
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr ""
@@ -1851,7 +1857,7 @@ msgstr ""
msgid "Aliases"
msgstr ""
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -1932,7 +1938,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2069,15 +2075,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2173,54 +2179,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr ""
@@ -2323,6 +2329,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2429,16 +2470,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2463,19 +2504,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2528,15 +2569,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2574,8 +2615,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2590,32 +2631,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2632,11 +2673,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2655,25 +2696,25 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
msgstr ""
#: plinth/modules/janus/manifest.py:7
@@ -2686,17 +2727,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2840,7 +2881,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2872,8 +2913,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -2944,12 +2985,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3010,39 +3051,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr ""
@@ -3055,11 +3096,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3104,7 +3145,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3115,15 +3156,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3176,11 +3217,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3222,15 +3263,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr ""
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3263,27 +3304,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3803,7 +3839,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3823,13 +3859,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3850,7 +3886,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3860,13 +3896,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4049,245 +4085,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4302,20 +4334,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4423,15 +4455,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4537,36 +4569,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4583,7 +4615,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4655,21 +4687,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4693,11 +4726,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4722,12 +4755,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4790,7 +4823,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4798,7 +4831,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4807,7 +4840,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4817,7 +4850,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4832,6 +4865,40 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4863,15 +4930,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -4991,15 +5058,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5080,7 +5147,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5145,12 +5212,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5164,11 +5231,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5198,11 +5265,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5231,14 +5298,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5286,28 +5353,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5447,7 +5514,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5495,53 +5562,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5553,7 +5620,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5594,7 +5661,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5614,104 +5681,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5845,16 +5912,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5874,40 +5941,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -5917,37 +5984,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -5955,22 +6018,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -5978,18 +6041,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6001,20 +6064,21 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
+#: plinth/modules/tor/views.py:55
+msgid "Updating configuration"
+msgstr ""
+
+#: plinth/modules/tor/views.py:72
+#, python-brace-format
+msgid "Error configuring app: {error}"
msgstr ""
#: plinth/modules/transmission/__init__.py:23
@@ -6059,7 +6123,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6084,15 +6148,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6113,33 +6173,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6217,6 +6277,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6272,39 +6333,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6320,15 +6399,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -6893,12 +6972,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -6933,11 +7012,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -6971,37 +7050,114 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr ""
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
+#: plinth/package.py:367
+msgid "Error running apt-get"
msgstr ""
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr ""
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr ""
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr ""
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+msgid "Uninstalling app"
+msgstr ""
+
+#: plinth/setup.py:122
+#, python-brace-format
+msgid "Error uninstalling app: {string} {details}"
+msgstr ""
+
+#: plinth/setup.py:128
+#, python-brace-format
+msgid "Error uninstalling app: {error}"
+msgstr ""
+
+#: plinth/setup.py:131
+msgid "App uninstalled."
+msgstr ""
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7044,7 +7200,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7287,6 +7443,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr ""
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7296,50 +7456,55 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+msgid "Uninstall"
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
diff --git a/plinth/locale/te/LC_MESSAGES/django.po b/plinth/locale/te/LC_MESSAGES/django.po
index e4cb5ed51..88f66b5c1 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2022-03-02 12:27+0000\n"
"Last-Translator: James Valleroy \n"
"Language-Team: Telugu calibre సమూహానికి చెందిన వినియోగదారులు మాత్రమే యాప్ని యాక్సెస్ చేయగలరు. యాక్సెస్ ఉన్న "
"వినియోగదారులందరూ అన్ని గ్రంధాలయంను ఉపయోగించవచ్చు"
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "క్యాలిబర్ ఇ-బుక్ లైబ్రరీ ఉపయోగించండి"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "క్యాలిబర్"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "ఇ-బుక్ లైబ్రరీ"
@@ -1101,25 +1100,25 @@ msgstr "%(library)s లైబ్రరీకి వెళ్లుము"
msgid "Delete library %(library)s"
msgstr "గ్రంధాలయంను తొలగించు %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "గ్రంధాలయంను సృష్టించారు."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "గ్రంధాలయంని సృష్టిస్తున్నప్పుడు లోపం సంభవించింది."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} తొలగించబడింది."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "{name} ను తొలగించలేము: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1131,7 +1130,7 @@ msgstr ""
"చేస్తుంది. ఈ {box_name},లొ సాధారణంగా అవసరం లేని అనేక ఆధునిక ఫంక్షన్లకు నియంత్రణలు అందుబాటులో "
"ఉన్నాయి.కన్సోల్ ఆపరేషన్లకు వెబ్ ఆధారిత టెర్మినల్ కూడా అందుబాటులో ఉంది."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1142,7 +1141,7 @@ msgstr ""
"ఉపయోగించబడుతుంది .ఇది కస్టమ్ ఫైర్వాల్ పోర్ట్లను తెరవడానికి మరియు బాండింగ్, బ్రిడ్జింగ్ మరియు VLAN నిర్వహణ "
"వంటి అధునాతన నెట్వర్కింగ్ కోసం కూడా ఉపయోగించవచ్చు."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1151,32 +1150,16 @@ msgstr ""
"నిర్వాహక సమూహానికి చెందిన {box_name}లో ఏదైనా వినియోగదారు దీన్ని "
"యాక్సెస్ చేయవచ్చు."
-#: plinth/modules/cockpit/__init__.py:40
-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 ""
-"కాక్పిట్ని మీరు అధికారక్షేత్రం పేరు ద్వారా యాక్సెస్ చేయడం అవసరం. URLలో భాగంగా IP చిరునామాను ఉపయోగించి "
-"యాక్సెస్ చేసినప్పుడు ఇది పని చేయదు."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "కాక్పిట్"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "సేవిక పరిపాలన"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "ప్రాప్తి సూచి"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "కింది URLలను ఉపయోగించి యాక్సెస్ చేసినప్పుడు మాత్రమే కాక్పిట్ పని చేస్తుంది."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1191,7 +1174,7 @@ msgstr "సాధారణ ఆకృతీకరణ"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "ఆకృతీకరణ"
@@ -1282,43 +1265,67 @@ msgstr "అధునాతన అనువర్తనాలు మరియు
msgid "Show apps and features that require more technical knowledge."
msgstr "మరింత సాంకేతిక పరిజ్ఞానం అవసరమయ్యే అనువర్తనాలు మరియు విశేషాంశాలను చూపించు."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+#, fuzzy
+#| msgid "System Monitoring"
+msgid "System-wide logging"
+msgstr "వ్యవస్థ దర్శినికరణ"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "ఆతిథ్యనామం అమర్చుటలో లోపం: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "ఆతిథ్యనామం అమర్చు"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "అధికారక్షేత్రం పేరు అమర్పులోపం: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "అధికారక్షేత్రం పేరు అమర్పు"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "వెబ్సర్వర్ హోమ్ పేజీని సెట్ చేయడంలో లోపం: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "వెబ్ సర్వర్ హోమ్ పేజీ సెట్ చేయబడింది"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "అధికారక్షేత్రం పేరు అమర్పులోపం: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "అధునాతన అనువర్తనాలు మరియు విశేషాంశాలు చూపబడుతున్నాయి"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "అధునాతన అనువర్తనాలు మరియు విశేషాంశాలు దాచబడుతున్నాయి"
@@ -1343,11 +1350,11 @@ msgstr ""
"ఇది వినియోగదారులచే నేరుగా ఉపయోగించబడదు. వంటి సర్వర్లుMatrix Synapse"
"a> or ejabberd ఇక్కడ అందించిన వివరాలతో రూపకరణచేయాలి."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "కోటుర్న్"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "విఓఐపీ సహాయకుడు"
@@ -1371,11 +1378,11 @@ msgstr ""
"నెట్వర్క్ టైమ్ సర్వర్ మీ కంప్యూటర్ లోని సమయాన్ని ఇంటర్నెట్లో ఉన్న సమయానికి సమకాలీకరించడానికి ఉపయోగపడే ఒక "
"ప్రోగ్రాం."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "తేదీ & సమయం"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "సమయం NTP సర్వర్కి సమకాలీకరించబడింది"
@@ -1416,17 +1423,17 @@ msgstr ""
"a> అనే మార్గంలో అందుబాటులోనుంటుంది. ప్రధమ పాస్వర్డ్ గా 'డెల్యూజ్' ఉంటుంది, కానీ మీరు లాగ్ ఇన్ "
"అయినవెంటనే మీ పాస్వర్డ్ ను మార్చుకోవాలి."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "బిట్ టోరెంట్ అనువర్తనాలను ఉపయోగించి ఫైళ్లను డౌన్లోడ్ చేయండి"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "డెలూజ్"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "బిట్ టొరెంట్ వెబ్ క్లయింట్"
@@ -1447,48 +1454,48 @@ msgstr ""
"చేస్తున్నాయో లేదో ధృవీకరించడం కోసం అనేక తనిఖీలు చేస్తుంది."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "లక్షణాలు"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "ఉత్తీర్ణులయ్యారు"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "విఫలమయ్యారు"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "లోపం"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "హెచ్చరిక"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "నిర్వహణ సమాచార ఆధారం"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "గిబ్"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr "మెమరీ వినియోగాన్ని తగ్గించడానికి మీరు కొన్ని యాప్లను నిలిపివేయాలి."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "మీరు ఈ సిస్టమ్లో ఏ కొత్త యాప్లను ఇన్స్టాల్ చేయకూడదు."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1497,7 +1504,7 @@ msgstr ""
"సిస్టమ్ మెమరీ తక్కువగా ఉంది: {percent_used}% ఉపయోగించబడింది, {memory_available} "
"{memory_available_unit} ఉచితం. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "తక్కువ మెమరీ"
@@ -1547,7 +1554,7 @@ msgstr "పరీక్ష"
msgid "Result"
msgstr "ఫలితం"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "లక్షణాల పరీక్ష"
@@ -1591,11 +1598,11 @@ msgstr ""
"\" target=\"_blank\"> 3 freedns.afraid.org 4 ఉచిత నవీకరణ URL ఆధారిత సేవలు "
"కనుగొనవచ్చు."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "గతిక DNS కక్షిదారు"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "డైనమిక్ డొమైన్ పేరు"
@@ -1717,13 +1724,14 @@ msgid "This field is required."
msgstr "ఇది అవసరమేయిన్న క్షేత్రం."
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1803,12 +1811,12 @@ msgstr ""
"ejabberd కి శ్రావణ /దృశ్యం కాల్ల కోసం stun /turn సేవిక అవసరం. కార్యక్షేత్రం ను నెలకొల్పడం "
"చేయండి లేదా బాహ్య సేవిక ను రూపకారణం చేయండి {coturn_url}"
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ఈజాబ్బర్డి"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "కబుర్ల సేవిక"
@@ -1913,7 +1921,7 @@ msgstr "డినో"
msgid "Gajim"
msgstr "గజీం"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1964,21 +1972,21 @@ msgid ""
"uninstalled."
msgstr "ఇన్స్టాలేషన్ సమయంలో, సిస్టమ్లోని ఏదైనా ఇతర ఇమెయిల్ సర్వర్లు అన్ఇన్స్టాల్ చేయబడతాయి"
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "కబుర్ల సేవిక"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Manage Aliases"
msgid "My Email Aliases"
msgstr "మారుపేర్లను నిర్వహించండి"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Manage Aliases"
msgid "Manage Aliases for Mailbox"
@@ -2014,7 +2022,7 @@ msgstr "సంఖ్య కాకూడదు"
msgid "Aliases"
msgstr "మారుపేర్లు"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "రౌండ్ క్యూబ్"
@@ -2097,7 +2105,7 @@ msgstr ""
"ఫైర్వాల్ అనేది మీ {box_name}కు జరిగే రవాణా రాకపోకలను నియంత్రించే ఒక భద్రతా వ్యవస్థ. దీనిని అనుమతించి "
"సరిగా ఆకృతీకరిస్తే అంతర్జాలం నుంచి భద్రతా ముప్పు తగ్గుతుంది."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "ఫైర్వాల్"
@@ -2254,15 +2262,15 @@ msgstr ""
"Gitని ఎలా ఉపయోగించాలో మరింత తెలుసుకోవడానికి Git ట్యుటోరియల్ని సందర్శించండి."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Git రిపోజిటరీలకు చదవడానికి-వ్రాయడానికి యాక్సెస్"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "గిట్వెబ్"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "సాధారణ Git హోస్టింగ్"
@@ -2360,54 +2368,54 @@ msgstr "Git రిపోజిటరీ %(name)sని తొలగి
msgid "Delete this repository permanently?"
msgstr "ఈ రిపోజిటరీని శాశ్వతంగా తొలగించాలా?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "రిపోజిటరీ సృష్టించబడింది."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "రిపోజిటరీని సృష్టిస్తున్నప్పుడు లోపం సంభవించింది."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "రిపోజిటరీ సవరించబడింది."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "రిపోజిటరీని సవరించండి"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "పత్రావళి"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "నిర్దేశిక"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "సహాయం పొందు"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "అభిప్రాయాన్ని సమర్పించండి"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "దోహదం చేయండి"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "గురించి"
@@ -2535,6 +2543,41 @@ msgstr ""
msgid "Learn more..."
msgstr "మరింత తెలుసుకోండి.."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2672,16 +2715,16 @@ msgstr ""
"బగ్ (తప్పుల) నివేదిక సమర్పించే ముందు దయచేసి లాగ్ నుండి ఏవైనా రహస్యపదాలను లేదా ఇతర వ్యక్తిగత సమాచారాన్ని "
"తొలగించగలరు."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "పత్రావళి మరియు తరచూ అడిగే ప్రశ్నలు"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "{box_name} గురించి"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "{box_name} కరదీపిక"
@@ -2711,19 +2754,19 @@ msgid ""
"configuration process."
msgstr "అందించిన వెబ్ ఇంటర్ఫేస్కు మొదటి సందర్శన కాన్ఫిగరేషన్ ప్రక్రియను ప్రారంభిస్తుంది."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "I2P కార్యక్షేతాన్ని నిర్వహించండి"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "ఇ౨ప్"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "అజ్ఞాత జాలిక"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "I2P ప్రాతినిధ్య"
@@ -2789,15 +2832,15 @@ msgstr ""
"సమూహం ఇప్పటికే ఉన్న వాటిని సవరించవచ్చు. వినియోగదారు "
"కాన్ఫిగరేషన్లో మీరు ఈ అనుమతులను మార్చవచ్చు లేదా కొత్త వినియోగదారులను జోడించవచ్చు."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ఇకివికీ"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "వికీ మరియు బ్లాగ్"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "వికీ అనువర్తనాలను చూడండి మరియు మార్చండి"
@@ -2835,8 +2878,8 @@ msgstr "ప్రదేశం తొలగించు %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "అమరికను నవీకరించు"
@@ -2853,32 +2896,32 @@ msgstr ""
"ఈ చర్య పునర్విమర్శ చరిత్రతో సహా అన్ని పోస్ట్లు, పుటలు మరియు వ్యాఖ్యలు తొలగిస్తుంది. ఈ వికీ లేదా బ్లాగ్ "
"శాశ్వతంగా తొలగించాలా?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "{name} వికీ సృష్టించబడింది."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "వికీని సృష్టించలేము: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "{name} బ్లాగు సృష్టించబడింది."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "బ్లాగు సృష్టించలేము: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} తొలగించబడింది."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "{title} ను తొలగించలేము: {error}"
@@ -2898,11 +2941,11 @@ msgstr ""
"మరియు నిక్షిప్తం చెయుము. మొడటిగ గాబ్బి మరియు సెలెక్ట్ \"సర్వర్కు కనెక్ట్ చేయండి\" మరియు మీ ఎంటర్ చెయ్యండి "
"{box_name}'s డొమైన్ పేరు."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "ఇన్ఫినోటెడ్"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "గాబ్బీ సేవకం"
@@ -2923,28 +2966,26 @@ msgstr ""
"గాబ్బీని ప్రారంభించి. \"సేవికకు కనెక్ట్ చేయండి\" ఎంచుకోండి మరియు మీ {box_name} యొక్క డొమైన్ పేరును "
"నమోదు చేయండి."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "జాల సేవకం"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2956,18 +2997,18 @@ msgstr ""
msgid "JavaScript license information"
msgstr "జావాస్క్రిప్ట్ లైసెన్స్ సమాచరం"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
"JSXC XMPP కోసం ఒక వెబ్ కక్షిదారి. సాధారణంగా ఇది ఒక XMPP సర్వర్ స్థానికంగా అమలు చేయటానికి ఉపయోగిస్తారు."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "చాట్ క్లయింట్"
@@ -3130,7 +3171,7 @@ msgstr ""
"Matrix Synapseకి ఆడియో/వీడియో కాల్ల కోసం STUN/TURN సర్వర్ అవసరం.Coturn యాప్ను ఇన్స్టాల్ చేయండి లేదా బాహ్య సర్వర్ను కాన్ఫిగర్ చేయండి."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "మ్యాట్రిక్స్ సినాప్స్"
@@ -3166,8 +3207,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "ఆకృతీకరణ"
@@ -3261,12 +3302,12 @@ msgid ""
msgstr ""
"ఈ వికీకి లింక్తో ఎవరైనా దానిని చదవగలరు. లాగిన్ చేయబడిన వినియోగదారులు మాత్రమే కంటెంట్కు మార్పులు చేయవచ్చు."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "మీడియావికీ"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "వికీ"
@@ -3345,43 +3386,43 @@ msgstr ""
"మీ మీడియావికీ ఇన్స్టాలేషన్ కోసం డిఫాల్ట్ చర్మాన్ని ఎంచుకోండి. వినియోగదారులు తమకు నచ్చిన చర్మాన్ని ఎంచుకునే "
"అవకాశం ఉంటుంది."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "అనుమతిపదం నవీకరించబడింది"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
#, fuzzy
#| msgid "Password used to encrypt data. Must match server password."
msgid "Password update failed. Please choose a stronger password"
msgstr "సమాచారాన్ని గుప్తీకరించాడానికి ఉపయోగించబడిన పాస్వర్డ్. తప్పకుండ సర్వర్ పాస్వర్డ్ తో సరిపోలాలి."
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "పబ్లిక్ రిజిస్ట్రేషన్లు ప్రారంభించబడ్డాయి"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "పబ్లిక్ రిజిస్ట్రేషన్లు నిలిపివేయబడ్డాయి"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "ప్రైవేట్ మోడ్ ప్రారంభించబడింది"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "ప్రైవేట్ మోడ్ నిలిపివేయబడింది"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "డిఫాల్ట్ చర్మం మార్చబడింది"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "అధికారక్షేత్రం పేరు అమర్పు"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3399,11 +3440,11 @@ msgstr ""
"{box_name}లో Minetest సర్వర్ని అమలు చేయడానికి అనుమతిస్తుంది. సర్వర్కి కనెక్ట్ చేయడానికి, Minetest క్లయింట్ అవసరం."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "మైన్ టెస్ట్"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "బ్లాక్ శాండ్బాక్స్"
@@ -3451,7 +3492,7 @@ msgstr "నిరుపయోగం అయినప్పుడు, ఆటగా
msgid "Address"
msgstr "చిరునామా"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3467,15 +3508,15 @@ msgstr ""
"టెలివిజన్లు మరియు గేమింగ్ సిస్టమ్లు (PS3 మరియు Xbox 360 వంటివి) లేదా టోటెమ్ మరియు కోడి వంటి "
"అప్లికేషన్లు వంటి DLNA సర్టిఫికేషన్ను పాస్ చేసే ఏదైనా పరికరానికి అనుగుణంగా ఉంటుంది."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "మీడియా స్ట్రీమింగ్ సేవిక"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "చిన్న DLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "సరళమైన మీడియా సేవిక"
@@ -3537,11 +3578,11 @@ msgstr ""
"పరికరాల నుండి Mumbleకి బంధించడానికి క్లయింట్లు "
"అందుబాటులో ఉన్నాయి."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "మంబుల్"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "స్వర సంభాషణ"
@@ -3591,17 +3632,17 @@ msgstr "ముంబుల్ ఫ్లై"
msgid "Mumla"
msgstr "ముంల"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "సూపర్ యూసర్ ర హస్యపదం విజయవంతంగా మార్చబడినది."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Upload password updated"
msgid "Join password changed"
msgstr "అప్లోడ్ చేయడం కోసమై కేటాయించిన రహస్యపదం నవీకరించబడింది"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3637,7 +3678,7 @@ msgstr "సెక్యూర్ షెల్"
msgid "Services"
msgstr "సేవలు"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3645,21 +3686,16 @@ msgstr ""
"కాన్ఫిగర్ చేయగల నెట్వర్క్ పరికరాలు. ఈథర్నెట్ మరియు Wi-Fi లేదా PPPoE ద్వారా ఇంటర్నెట్తో కనెక్ట్ అవ్వండి. "
"నెట్వర్క్లోని ఇతర పరికరాలతో ఆ కనెక్షన్ని భాగస్వామ్యం చేయండి."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr "ఇతర పద్ధతుల ద్వారా నిర్వహించబడే పరికరాలు ఇక్కడ ఆకృతీకరణకు అందుబాటులో ఉండకపోవచ్చు."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "అల్లికలు"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "IPv{kind} పై DNSSEC ఉపయోగించు"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "అనుసంధాన రకం"
@@ -4247,7 +4283,7 @@ msgid "Create Connection"
msgstr "అనుసంధానం సృష్టించు"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "అనుసంధానం తొలగించు"
@@ -4267,13 +4303,13 @@ msgstr "అంతరం"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "ఈథర్నెట్"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4294,7 +4330,7 @@ msgid "Computer"
msgstr "కంప్యూటర్"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "అనుసంధానాన్ని సవరించండి"
@@ -4304,13 +4340,13 @@ msgstr "అనుసంధానం"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "సమీప వై-ఫై నెట్వర్కులు"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "అనుసంధానాన్ని జతచేయండి"
@@ -4522,245 +4558,241 @@ msgstr ""
"శోధించండి మరియు రూటర్ మాన్యువల్ కోసం ఆన్లైన్లో శోధించండి. ఈ పనిని ఎలా నిర్వహించాలో ఇది పూర్తి సూచనలను "
"అందిస్తుంది."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "నిలిపివేయబడింది"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "స్వయంచాలక"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "కరదీపిక"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "పంచుకున్నారు"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr "లింక్-స్థానిక"
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "తెలియని"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "నిర్వహించబడలేదు"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "అందుబాటులో లేదు"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "కేబుల్ తొలగించడం"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "సిద్ధమవుతున్నారు"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "అనుసంధానం"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "ప్రమాణీకరణ అవసరం"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "చిరునామాను అభ్యర్థిస్తోంది"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "తనిఖీ చేస్తోంది"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr "ద్వితీయ కోసం వేచి ఉంది"
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "క్రియారహితం చేయి"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "నిష్క్రియం చేస్తోంది"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "కారణం లేదు"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "అపరిచిత దోషం"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "పరికరం ఇప్పుడు నిర్వహించబడుతుంది"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "పరికరం ఇప్పుడు నిర్వహించబడలేదు"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "కాన్ఫిగరేషన్ విఫలమైంది"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr "రహస్యాలు అవసరం"
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "DHCP క్లయింట్ ప్రారంభించడంలో విఫలమైంది"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "DHCP క్లయింట్ లోపం"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "DHCP క్లయింట్ విఫలమైంది"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr "భాగస్వామ్య కనెక్షన్ సేవ ప్రారంభించడంలో విఫలమైంది"
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "భాగస్వామ్య కనెక్షన్ సేవ విఫలమైంది"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "పరికరం తీసివేయబడింది"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "వినియోగదారు ద్వారా పరికరం తొలగించవేయబడింది"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr "బంధం యొక్క ఆధారపడటం విఫలమైంది"
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "Wi-Fi నెట్వర్క్ కనుగొనబడలేదు"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "ద్వితీయ కనెక్షన్ విఫలమైంది"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr "కొత్త కనెక్షన్ యాక్టివేషన్ క్యూలో ఉంది"
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "నకిలీ IP చిరునామా కనుగొనబడింది"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "ఎంచుకున్న IP పద్ధతికి మద్దతు లేదు"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "సాధారణమైన"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "TUN లేదా TAP సంవిధానం"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "వైర్గార్డ్"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "తాత్కాలిక"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "మౌలిక సదుపాయాలు"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "సాంగత్యం సూచి"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "ప్రాప్తి సూచి"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "నెట్వర్క్ అనుసంధానాలు"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "అనుసంధానం చూపించలేము: అనుసంధానం దొరకలేదు."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "అనుసంధాన సమాచారం"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "దొరకలేదు అనుసంధానం: అనుసంధానని సవరించడం సాధ్యపడదు."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "ఇటువంటి అనుసంధాన రకం ఇంకా అర్థంకాలేదు."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "{name} అనుసంధానం ఉత్తేజించబడింది."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "అనుసంధానాన్ని ఉత్తేజించుటలో విఫలమైంది: అనుసంధానం దొరకలేదు."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr "{name} అనుసంధానాన్ని ఉత్తేజించుటలో విఫలమైంది: సరైన పరికరం అందుబాటులో లేదు."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "{name} అనుసంధానం క్రియారహితం చేయబడింది."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "అనుసంధానం క్రియారహితం విఫలమైంది: అనుసంధానం దొరకలేదు."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "కొత్త జెనరిక్ కనెక్షన్ని జోడిస్తోంది"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "కొత్త ఈథర్నెట్ అనుసంధానాన్ని కలుపుతోంది"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "కొత్త PPPoE అనుసంధానాన్ని కలుపుతోంది"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "కొత్త వై-ఫై అనుసంధానాన్ని కలుపుతోంది"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "{name} అనుసంధానం తొలగించబడింది."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "అనుసంధానం తొలగించడం విఫలమైంది: అనుసంధానం దొరకలేదు."
@@ -4780,20 +4812,20 @@ msgstr ""
"మిగిలిన ఇంటర్నెట్ను యాక్సెస్ చేయవచ్చు మీ {box_name} 1 అనుసంధానించవచ్చు అదనపు భద్రత మరియు "
"అనామకత్వం కోసం."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "అనుసంధాన రకం విపిన్ సేవలకు"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "తెరచిన విపిన్"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "వర్చువల్ ప్రైవేట్ నెట్వర్క్"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4925,15 +4957,15 @@ msgstr ""
"\"https://pagekite.net\">pagekite.net. భవిష్యత్తులో దీని కోసం మీ స్నేహితుని "
"{box_name}ని ఉపయోగించడం సాధ్యమవుతుంది."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "పేజ్కైట్"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "ప్రజా దృశ్యమానం"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "పేజ్కైట్ అధికారక్షేత్రం"
@@ -5044,29 +5076,29 @@ msgstr ""
"హెచ్చరిక: మా PageKite ఫ్రంటెండ్ సర్వర్ మీరు ఇక్కడ నిర్వచించే చేయగల అన్ని ప్రోటోకాల్ / పోర్ట్ "
"కాంబినేషన్ మద్దతు ఇవ్వకపోవచ్చు. ఉదాహరణకు, HTTPS 443 పోర్ట్లకు సమస్యలు కారణమవుతుంది."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "వెబ్ సేవిక (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "సైట్ http://{0} వద్ద అందుబాటులో ఉంటుంది"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "వెబ్ సేవిక (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "సైట్ https://{0} వద్ద అందుబాటులో ఉంటుంది"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "సెక్యూర్ షెల్ (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5075,7 +5107,7 @@ msgstr ""
"\"> సూచనలు "
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "ప్రదర్శన"
@@ -5095,7 +5127,7 @@ msgid ""
"using the Cockpit app."
msgstr "పనితీరు కొలమానాలు పనితీరు కో-పైలట్ ద్వారా సేకరించబడతాయి మరియు కాక్పిట్ యాప్ని ఉపయోగించి వీక్షించవచ్చు."
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "వ్యవస్థ దర్శినికరణ"
@@ -5176,12 +5208,19 @@ msgstr ""
"సామర్థ్యాలతో ఒక కాని క్యాచింగ్ వెబ్ ప్రాక్సీ. "
#: plinth/modules/privoxy/__init__.py:28
-#, python-brace-format
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "You can use Privoxy by modifying your browser proxy settings to your "
+#| "{box_name} hostname (or IP address) with port 8118. While using Privoxy, "
+#| "you can see its configuration details and documentation at http://config.privoxy.org/ or http://p.p."
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"పోర్టు 8118 తో మీ {box_name} హోస్ట్ నేమ్ (లేదా IP చిరునామా) కు మీ బ్రౌజర్ ప్రాక్సీ అమర్పులను మార్చడం "
@@ -5189,15 +5228,15 @@ msgstr ""
"డాక్యుమెంటేషన్ http://config.privoxy.org/"
"a> లేదా http://p.p లో చూడవచ్చు."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "ప్రివొక్సి"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "వెబ్ ప్రాక్సీ"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "టీసీపీ{kind} పై{proxy} తో యాక్సిస్ {url} చేయండి"
@@ -5230,11 +5269,11 @@ msgstr ""
"కనెక్ట్ అవుతారు. http://quasseldroid.iskrembilen.com/\">మొబైల్ పరికరాలు అందుబాటులో "
"ఉన్నాయి."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "క్వాసెల్"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "IRC క్లయింట్"
@@ -5266,12 +5305,12 @@ msgstr ""
"రూపొందించడానికి మాత్రమే మద్దతు ఇస్తుంది. ఈవెంట్లు లేదా పరిచయాలను జోడించడానికి ఇది మద్దతు ఇవ్వదు, ఇది "
"ప్రత్యేక క్లయింట్ని ఉపయోగించి చేయాలి."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "రాడికేల్"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "క్యాలెండర్ మరియు అడ్రస్సు పుస్తకము"
@@ -5347,7 +5386,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "సాంగత్యం హక్కుల కాన్ఫిగరేషన్ నవీకరించబడింది"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5358,7 +5397,7 @@ msgstr ""
"ఇది MIME మద్దతు, చిరునామా పుస్తకం, ఫోల్డర్ తారుమారు, సందేశ శోధన మరియు అక్షరక్రమ తనిఖీ సహా ఒక "
"ఇమెయిల్ క్లయింట్ నుండి మీరు పూర్తి కార్యాచరణను అందిస్తుంది."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5371,7 +5410,7 @@ msgstr ""
"ద్వారా మీరు దీన్ని ఉపయోగించవచ్చు. SSL ద్వారా IMAP కోసం (సిఫార్సు చేయబడింది), imaps://imap."
"example.com వంటి సర్వర్ ఫీల్డ్ను పూరించండి."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5386,7 +5425,7 @@ msgstr ""
"google.comలో \"తక్కువ సురక్షిత యాప్లు\" కూడా ప్రారంభించవలసి ఉంటుందని గుర్తుంచుకోండి /"
"settings/security/lesssecureapps)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "ఇమెయిల్ క్లయింట్"
@@ -5403,6 +5442,45 @@ msgstr ""
"ప్రారంభించబడినప్పుడు, లాగిన్ పేజీ నుండి సర్వర్ ఇన్పుట్ కోసం టెక్స్ట్ బాక్స్ తీసివేయబడుతుంది మరియు "
"వినియోగదారులు ఈ {box_name} నుండి మెయిల్లను మాత్రమే చదవగలరు మరియు పంపగలరు."
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"ప్రారంభించబడినప్పుడు, చిన్న చిన్న RSSని ఏ {box_name} లాగిన్తో "
+"వినియోగదారు అయినా సాంగత్యం చేయవచ్చు."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "న్యూస్ ఫీడ్లను చదవడం మరియు చందాదారునిగా చేరు"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5443,15 +5521,15 @@ msgstr ""
"హోమ్ షేర్ - freedombox-share గ్రూపులో ఉన్న ప్రతి వినియోగదారుడు వారి స్వంత ప్రైవేట్ స్థలాన్ని కలిగి "
"ఉంటారు."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "ప్రైవేటు షేర్లలో ప్రవేశం"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "సాంబా"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "నెట్వర్క్ దస్త్రంనిల్వ"
@@ -5584,15 +5662,15 @@ msgstr ""
"శోధన యంత్రాలు ద్వారా ట్రాకింగ్ మరియు ప్రొఫైలింగ్ను నివారించడానికి సెర్క్స్ ను ఉపయోగించవచ్చు. ఇది మాములుగా "
"కుకీలను నిల్వ ఉంచుకోదు."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "అంతర్జాలమును శోధింపుము"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "సేర్క్స్"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "వెబ్ శోధన"
@@ -5683,7 +5761,7 @@ msgstr ""
"కంట్రిబ్యూటర్లచే నిర్వహించబడతాయి."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "భద్రతా నివేదిక"
@@ -5757,12 +5835,12 @@ msgstr "ఏమీ లేదు"
msgid "Not running"
msgstr "పరుగు లేదు"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "నియంత్రిత ప్రాప్యతను సెట్ చేయడంలో లోపం: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "నవీకరించబడిన భద్రతా ఆకృతీకరణ"
@@ -5778,11 +5856,11 @@ msgstr ""
"శారలి ఒక వినియోగదారు ఖాతాకు మాత్రమే మద్దతు ఇస్తుందని గమనించండి, మీరు ప్రారంభ సందర్శనలో సెటప్ చేయాల్సి "
"ఉంటుంది."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "షార్లి"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "బుక్మార్క్లు"
@@ -5819,11 +5897,11 @@ msgstr ""
"సెటప్ తర్వాత Shadowsocksని ఉపయోగించడానికి, మీ పరికరం, బ్రౌజర్ లేదా అప్లికేషన్లో SOCKS5 ప్రాక్సీ URLని "
"http://freedombox_address:1080/కి సెట్ చేయండి"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "షాడోసాక్స్"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "సాక్స్5 ప్రాక్సీ"
@@ -5852,7 +5930,7 @@ msgstr "సమాచారాన్ని గుప్తీకరించా
msgid "Encryption method. Must match setting on server."
msgstr "గుప్తీకరించు పద్దతి. సర్వర్ లోని సెట్టింగ్తో సరిపోలాలి."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -5861,7 +5939,7 @@ msgstr ""
"వెబ్లో ఎంచుకున్న వినియోగదారుల సమూహాలతో మీ {box_name}లోని ఫైల్లు మరియు ఫోల్డర్లను భాగస్వామ్యం చేయడానికి "
"భాగస్వామ్యం మిమ్మల్ని అనుమతిస్తుంది."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "భాగస్వామ్యం"
@@ -5909,28 +5987,28 @@ msgstr "ఈ పేరుతో ఒక వాటా ఇప్పటికే ఉ
msgid "Shares should be either public or shared with at least one group"
msgstr "షేర్లు పబ్లిక్ గా ఉండాలి లేదా కనీసం ఒక గ్రూపుతో పంచుకోవాలి"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "వాటాను జోడించండి"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "ప్రస్తుతం ఏ షేర్లు ఏర్పాటు చేయబడలేదు."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "డిస్క్ మార్గం"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "పైగా షేర్ చేయబడింది"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "గుంపులతో"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "ప్రజా ప్రాప్తి"
@@ -6081,7 +6159,7 @@ msgstr "తేదీ"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "స్నాప్షాట్లను తొలగించు"
@@ -6133,53 +6211,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "స్నాప్షాట్ #%(number)s కు రోల్బ్యాక్ చేయండి"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "మానవీయంగా సృష్టించబడింది"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "కాలక్రమం"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "సముచితమైనది"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "స్నాప్షాట్లను నిర్వహించండి"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "స్నాప్షాట్ సృష్టించబడినది."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "నిల్వ స్నాప్షాట్ల కాన్ఫిగరేషన్ నవీకరించబడింది"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "చర్య లోపం:{0}{1}{2}"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "ఎంచుకున్న స్నాప్షాట్లు తొలగించబడ్డాయి"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr "స్నాప్షాట్ ప్రస్తుతం వాడుకలో ఉంది. దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "స్నాప్షాట్ #{number} కు తీస్కుని వెళ్ళబడింది."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "రొల్ల్బచ్క్ ని పూర్తి చేయడానికి వ్యవస్థను పునరుద్ధరించాలి."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "చాయాచిత్రం కు రొల్ల్బచ్క్ చేయండి"
@@ -6194,7 +6272,7 @@ msgstr ""
"ఉపయోగిస్తుంది. అధీకృత రిమోట్ కంప్యూటర్ అటువంటి కనెక్షన్లను ఉపయోగించి అడ్మినిస్ట్రేషన్ పనులను చేయగలదు, "
"ఫైల్లను కాపీ చేయగలదు లేదా ఇతర సేవలను అమలు చేయగలదు."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "సెక్యూర్ షెల్ (SSH) సర్వర్"
@@ -6239,7 +6317,7 @@ msgstr "SSH ప్రమాణీకరణ తో SSH ఆపివేయబడ
msgid "SSH authentication with password enabled."
msgstr "SSH ప్రమాణీకరణ తో SSH ఆపివేయబడింది ."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "సింగిల్ సైన్ ఆన్"
@@ -6262,104 +6340,104 @@ msgstr ""
"ప్రస్తుతం వాడుకలో ఉన్న స్టోరేజ్ మీడియాను వీక్షించవచ్చు, తొలగించగల మీడియాను మౌంట్ చేయవచ్చు మరియు అన్మౌంట్ "
"చేయవచ్చు, రూట్ విభజనను విస్తరించవచ్చు మొదలైనవి."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "నిల్వ"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} బైట్లు"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} కిలోబైట్లు"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} మెగాబైట్లు"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} గిగాబైట్లు"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} టెరాబైట్లు"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "ఆపరేషన్ విఫలమైంది."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "ఆపరేషన్ రద్దు చేయబడింది."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "పరికరం ఇప్పటికే అన్మౌంట్ చేయబడుతోంది."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr "డ్రైవర్/టూల్ సపోర్ట్ తప్పిపోయినందున ఆపరేషన్కు మద్దతు లేదు."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "ఆపరేషన్ టైమవుట్ అయింది."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr "ఈ ఆపరేషన్ గాఢ నిద్రలో ఉన్న ఒక డిస్క్ ను మేల్కొలుపుతుంది."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "బిజీగా ఉన్న పరికరాన్ని అన్మౌంట్ చేయడానికి ప్రయత్నిస్తోంది."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "ఆపరేషన్ ఇప్పటికే రద్దు చేయబడింది."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "అభ్యర్థించిన ఆపరేషన్ చేయడానికి అధికారం లేదు."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "పరికరం ఇప్పటికే మౌంట్ చేయబడింది."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "పరికరం మౌంట్ చేయబడలేదు."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "అభ్యర్థించిన ఎంపికను ఉపయోగించడానికి అనుమతి లేదు."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "పరికరం మరొక వినియోగదారుచే మౌంట్ చేయబడింది."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr "సిస్టమ్ విభజనలో తక్కువ స్థలం: {percent_used}% used, {free_space} ఉచితం."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "తక్కువ ఖని స్థలం"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "ఖని వైఫల్యం ఆసన్నమైంది"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6510,16 +6588,16 @@ msgstr ""
"సెట్ ప్రత్యేక ఫోల్డర్ల సెట్తో సమకాలీకరించబడవచ్చు.వెబ్ ఇంటర్ఫేస్ ఆన్ చేయబడింది{box_name} నిర్వాహకుడు \" "
"లేదా \"సమకాలీకరణ-యాక్సెస్\" సమూహానికి చెందిన వినియోగదారులకు మాత్రమే అందుబాటులో ఉంటుంది."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "సమకాలీకరణ అప్లికేషన్ను నిర్వహించండి"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "సింక్ తింగ్"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "ఫైళ్ళ సమకాలీకరణ"
@@ -6544,40 +6622,40 @@ msgid ""
"TCP port 9050."
msgstr "టిసిపి పోర్ట్ 9050 పై ఒక టార్ సొక్స్ పోర్ట్ మీ %(box_name)sలో అందుబాటులో ఉంది."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "టార్"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "టోర్ ఉల్లిపాయ సేవ"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "టోర్ సాక్స్ ప్రాతినిధ్య"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "టార్ బ్రిడ్జ్ రిలే"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "టార్ రిలే పోర్ట్ అందుబాటులో ఉంది"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3 రవాణా నమోదు చేయబడింది"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4 రవాణా నమోదు చేయబడింది"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "టార్ ద్వారా {kind} లో {url} ను ఆక్సెస్ చెయ్యండి"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "టోర్ వాడుకను నిర్ధారించండి{url} టీ సి పి పై{kind}"
@@ -6588,15 +6666,11 @@ msgid ""
msgstr ""
"ఈ ఫార్మాట్తో చెల్లుబాటు అయ్యే వంతెనను నమోదు చేయండి: [transport] IP:ORPort [fingerprint]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "టోర్ ను ప్రారంభించండి"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "టార్ నెట్వర్క్కు కనెక్ట్ చేయడానికి అప్స్ట్రీమ్ వారది ఉపయోగించండి"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6606,11 +6680,11 @@ msgstr ""
"ఇంటర్నెట్ సర్వీస్ ప్రొవైడర్ (ISP) టార్ నెట్ వర్క్ కు కనెక్షన్లనుబ్లాక్ చేస్తే లేదా సెన్సార్ చేస్తే ఈ ఎంపికను "
"ఉపయోగించండి. ఇది రిలే మోడ్లను నిలిపివేస్తుంది."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "అప్స్ట్రీమ్ బ్రిడ్జెస్"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6620,11 +6694,11 @@ msgstr ""
"torproject.org/ నుండి కొన్ని బ్రిడ్జెస్ పొందవచ్చు మరియు ఇక్కడ బ్రిడ్జె సమాచారాన్ని కాపీ / పేస్ట్ "
"చెయ్యండి. ప్రస్తుతం మద్దతిచ్చే ట్రాన్స్పోర్ట్ లు none, obfs3, obfs4 మరియు scamblesuit."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "టోర్ రిలేని ప్రారంభించండి"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6634,11 +6708,11 @@ msgstr ""
"ప్రారంభించినప్పుడు, మీ {box_name} 1 టోర్ రిలేని అమలు చేస్తుంది మరియు టార్ నెట్వర్క్కి బ్యాండ్విడ్త్ని దానం "
"చేస్తుంది. మీరు 2 megabits / s కంటే ఎక్కువ అప్లోడ్ మరియు డౌన్లోడ్ బ్యాండ్విడ్త్ ఉంటే దీన్ని చేయండి."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "టార్ వంతెన రిలేను ప్రారంభించండి."
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6648,11 +6722,11 @@ msgstr ""
"ప్రచురించబడుతుంది, ఇది ఈ నోడ్ను సెన్సార్ చేయడానికి కష్టతరం చేస్తుంది. ఇతరులు సెన్సార్షిప్ను "
"తప్పించుకునేందుకు ఇది దోహదపడుతుంది."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "టోర్ హిడెన్ సర్వీస్ని ప్రారంభించండి"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, fuzzy, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6662,11 +6736,11 @@ msgstr ""
"దాచిన సేవ దాని స్థానాన్ని బహిర్గతం చేయకుండా ఎంచుకున్న సేవలను (వికీ లేదా చాట్ వంటివి) అందించడానికి "
"బాక్స్_నామని అనుమతిస్తుంది. ఇంకా బలమైన అనామకత్వం కోసం దీన్ని ఉపయోగించవద్దు. {box_name}"
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "టార్ పై సాఫ్ట్వేర్ ప్యాకేజీలను డౌన్లోడ్ చేయండి"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6675,7 +6749,7 @@ msgstr ""
"ప్రారంభించబడినప్పుడు, సంస్థాపనలు మరియు నవీకరణలు కోసం సాఫ్ట్వేర్ టార్ నెట్వర్క్ ద్వారా డౌన్లోడ్ "
"చేయబడుతుంది. ఇది సాఫ్ట్ వేర్ డౌన్లోడ్ సమయంలో గోప్యత మరియు భద్రత యొక్క డిగ్రీని జతచేస్తుంది."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr "అప్స్ట్రీమ్ వంతెనలను ఉపయోగించడానికి కనీసం ఒక అప్స్ట్రీమ్ వంతెనను పేర్కొనండి."
@@ -6687,21 +6761,25 @@ msgstr "టార్ బ్రౌజర్"
msgid "Orbot: Proxy with Tor"
msgstr "ఆర్బోట్: టోర్ తో ప్రాక్సీ"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "టోర్ ఆకృతీకరణ నవీకరించబడుతుంది"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "ఉల్లిపాయ సేవ"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "పోర్ట్స్"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "మారకుండా అమర్చుతోంది"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "అక్రుతీకరణలో ఒక పొరపాటు జరిగింది."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "అనువర్తనం స్థాపించుటలో దోషం: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6750,7 +6828,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "ట్రాన్స్మిషన్"
@@ -6785,15 +6863,11 @@ msgstr ""
"చిన్న చిన్న RSS కోసం మొబైల్ లేదా డెస్క్టాప్ అప్లికేషన్ను ఉపయోగిస్తున్నప్పుడు, URLని ఉపయోగించండి/tt-rss-app కలపడం కోసం ."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "న్యూస్ ఫీడ్లను చదవడం మరియు చందాదారునిగా చేరు"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "టైనీ టైనీ RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "న్యూస్ ఫీడ్ రీడర్"
@@ -6818,22 +6892,22 @@ msgstr ""
"అందుబాటులో ఉండవు. సిస్టమ్ రీబూట్ అవసరమని భావించినట్లయితే, అది స్వయంచాలకంగా 02:00కి చేయబడుతుంది, "
"దీని వలన అన్ని యాప్లు క్లుప్తంగా అందుబాటులో ఉండవు."
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "సాఫ్ట్వేర్ నవీకరణ"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "స్వతంత్ర సాఫ్ట్వేర్ తాజా పరుచడం"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "పంపిణీ నవీకరణను ప్రారంభించడం సాధ్యపడలేదు"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
@@ -6842,11 +6916,11 @@ msgstr ""
"పంపిణీ నవీకరణను ప్రారంభించడానికి రూట్ విభజనలో తగినంత ఖాళీ స్థలం లేదు. దయచేసి కనీసం 5 GB ఉచితంగా "
"ఉండేలా చూసుకోండి. ప్రారంభించబడితే, పంపిణీ నవీకరణ 24 గంటల తర్వాత మళ్లీ ప్రయత్నించబడుతుంది."
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "పంపిణీ నవీకరణ ప్రారంభమైంది"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr "తదుపరి స్థిరమైన విడుదలకు నవీకరణ ప్రారంభించబడింది. ఇది పూర్తి కావడానికి చాలా సమయం పట్టవచ్చు."
@@ -6938,6 +7012,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "రద్దుచేసే"
@@ -6999,39 +7074,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr "ఇటీవలి నవీకరణ లాగ్లను చూపు"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "పంపిణీ మెరుగుపరుచడం ప్రారంభించబడింది"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "పంపిణీ మెరుగుపరుచడం ప్రారంభించబడింది"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "గమనింపబడని-నవీకరణలు ఆకృతీకరించునప్పుడు దోషం: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "స్వయంచాలక నవీకరణలు ప్రారంభించబడ్డాయి"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "స్వయంచాలక నవీకరణలు నిలిపివేయబడ్డాయి"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "పంపిణీ మెరుగుపరుచడం ప్రారంభించబడింది"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "పంపిణీ మెరుగుపరుచడం నిలిపివేయబడింది"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "అప్గ్రేడ్ ప్రక్రియ ప్రారంభించబడింది."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "నవీకరణ ప్రారంభం విఫలమైంది."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "తరచుగా ఫీచర్ అప్డేట్లు యాక్టివేట్ చేయబడ్డాయి."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "పంపిణీ మెరుగుపరుచడం ప్రారంభించబడింది"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7053,15 +7152,15 @@ msgstr ""
"చేయవచ్చు. అయినప్పటికీ, అడ్మిన్ సమూహం యొక్క వినియోగదారులు మాత్రమే యాప్లు లేదా సిస్టమ్ "
"సెట్టింగ్లను మార్చవచ్చు."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "వినియోగదారులు మరియు సమూహాలు"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "అన్ని సేవలకు మరియు సిస్టమ్ అమరికలకు ప్రాప్యత"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "LDAP నమోదు \"{search_item}\" తనిఖీ"
@@ -7677,12 +7776,12 @@ msgstr ""
"చేయాలి. అదనపు ప్లగిన్లు లేదా థీమ్లు మీ స్వంత పూచీతో ఇన్స్టాల్ చేయబడవచ్చు మరియు మెరుగుపరుచు "
"చేయబడవచ్చు."
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "వర్డుప్రెస్సు"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "వెబ్సైట్ మరియు బ్లాగ్"
@@ -7727,11 +7826,11 @@ msgstr ""
"జోఫ్ని సెటప్ చేసిన {box_name} వినియోగదారు కూడా Zophలో నిర్వాహకులు అవుతారు. అదనపు వినియోగదారుల "
"కోసం, ఖాతాలు తప్పనిసరిగా {box_name}లో మరియు జోఫ్లో ఒకే వినియోగదారు పేరుతో సృష్టించబడాలి."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "జోఫ్"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "ఫోటో ఆర్గనైజర్"
@@ -7767,37 +7866,138 @@ msgstr "పిపిపిఒఇ"
msgid "Generic"
msgstr "సాధారణమైన"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "ఆతిథ్యనామం అమర్చుటలో లోపం: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, fuzzy, python-brace-format
+#| msgid "Service disabled: {name}"
+msgid "Finished: {name}"
+msgstr "సేవ నిలిపివేయబడింది: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "ప్యాకేజీ {package_name} తాజా వెర్షన్ ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "సంస్థాపన ఒక పొరపాటు జరిగింది"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "బ్యాకప్ సమయంలో లోపం"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "వ్యవస్థాపిస్తోంది"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "దిగుమతి అవుతోంది"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "ప్రసార మాధ్యమం మార్పు"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "ఆకృతీకరణ ఫైలు: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "అనువర్తనాలను నిక్షిప్తం చేద్దాం"
+
+#: plinth/setup.py:42
+#, fuzzy
+#| msgid "Updating..."
+msgid "Updating app"
+msgstr "నవీకరిస్తోంది."
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "అనువర్తనం స్థాపించుటలో దోషం: {string}{details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "అనువర్తనం స్థాపించుటలో దోషం: {string}{details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "అనువర్తనం స్థాపించుటలో దోషం: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "అనువర్తనం స్థాపించుటలో దోషం: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "అనువర్తనం స్థాపించబడింది."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "చివరి నవీకరణ"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "అనువర్తనాలను నిక్షిప్తం చేద్దాం"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "అనువర్తనం స్థాపించుటలో దోషం: {string}{details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "అనువర్తనం స్థాపించుటలో దోషం: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "అనువర్తనం స్థాపించబడింది."
+
+#: plinth/setup.py:451
+#, fuzzy
+#| msgid "Upgrade Packages"
+msgid "Updating app packages"
+msgstr "ప్యాకేజీలను అప్గ్రేడ్ చేయండి"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 నిషేధించబడింది"
@@ -7846,7 +8046,7 @@ msgstr ""
msgid "Installation"
msgstr "నిక్షిప్తం"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "%(service_name)s సేవ నడవడం లేదు."
@@ -8110,6 +8310,10 @@ msgstr "రూటర్/WAN పోర్ట్ల నుండి"
msgid "To %(box_name)s Ports"
msgstr "%(box_name)s పోర్ట్లకు"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "అనువర్తనం స్థాపించబడింది."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "ఈ అనువర్తనాన్ని నిక్షిప్తం చేయాలా?"
@@ -8119,21 +8323,14 @@ msgid "This application needs an update. Update now?"
msgstr "ఈ అనువర్తనానికి నవీకరణ అవసరం. ఇప్పుడే నవీకరిస్తారా?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"మరొక సంస్థాపన లేదా నవీకరణ ఇప్పటికే నడుస్తోంది. మళ్ళీ ప్రయత్నించే ముందు కొన్ని క్షణాలు వేచి ఉండండి."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "ప్రస్తుతం ఈ అనువర్తనం మీ పంపిణీకి అందుబాటులో లేదు."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "మళ్ళీ ప్రయత్నించు"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8142,36 +8339,104 @@ msgstr ""
"విరుద్ధమైన ప్యాకేజీలు: సిస్టమ్లో ఇన్స్టాల్ చేయబడిన కొన్ని ప్యాకేజీలు ఈ యాప్ ఇన్స్టాలేషన్తో "
"విభేదిస్తున్నాయి. మీరు కొనసాగితే క్రింది ప్యాకేజీలు తీసివేయబడతాయి:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "నిక్షిప్తం చేయు"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "నవీకరణ"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "ప్రీ-ఇన్స్టాల్ ఆపరేషన్ జరుగుతోంది"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "నిక్షిప్తం చేయు"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "ఇన్స్తల్ల్ తర్వాత ప్రక్రియ జరుగుతోంది"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "వినియోగదారు%(username)sని సవరించండి"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "%(package_names)s నిక్షిప్తం అవుతోంది: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s %% పూర్తి"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "మారకుండా అమర్చుతోంది"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "గుజరాతీ"
+#~ msgid "Network Connections"
+#~ msgstr "నెట్వర్క్ అనుసంధానాలు"
+
+#~ msgid "Enable Tor"
+#~ msgstr "టోర్ ను ప్రారంభించండి"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "టోర్ ఆకృతీకరణ నవీకరించబడుతుంది"
+
+#~ msgid "Error during installation"
+#~ msgstr "సంస్థాపన ఒక పొరపాటు జరిగింది"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "IPv{kind} పై DNSSEC ఉపయోగించు"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "మరొక సంస్థాపన లేదా నవీకరణ ఇప్పటికే నడుస్తోంది. మళ్ళీ ప్రయత్నించే ముందు కొన్ని క్షణాలు వేచి ఉండండి."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "ప్రీ-ఇన్స్టాల్ ఆపరేషన్ జరుగుతోంది"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "ఇన్స్తల్ల్ తర్వాత ప్రక్రియ జరుగుతోంది"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "%(package_names)s నిక్షిప్తం అవుతోంది: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s %% పూర్తి"
+
+#~ 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 ""
+#~ "కాక్పిట్ని మీరు అధికారక్షేత్రం పేరు ద్వారా యాక్సెస్ చేయడం అవసరం. URLలో భాగంగా IP చిరునామాను ఉపయోగించి "
+#~ "యాక్సెస్ చేసినప్పుడు ఇది పని చేయదు."
+
+#~ msgid "Access"
+#~ msgstr "ప్రాప్తి సూచి"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "కింది URLలను ఉపయోగించి యాక్సెస్ చేసినప్పుడు మాత్రమే కాక్పిట్ పని చేస్తుంది."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "జాల సేవకం"
+
#~ msgid "Server URL"
#~ msgstr "సేవిక URL"
@@ -8570,11 +8835,6 @@ msgstr "గుజరాతీ"
#~ msgid "Postfix domain name config"
#~ msgstr "అధికారక్షేత్రం పేరు అమర్పులోపం: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "అక్రుతీకరణలో ఒక పొరపాటు జరిగింది."
-
#, fuzzy
#~| msgid "Directory does not exist."
#~ msgid "User does not exist"
@@ -9067,9 +9327,6 @@ msgstr "గుజరాతీ"
#~ msgid "Service enabled: {name}"
#~ msgstr "సేవ ప్రారంభించబడింది: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "సేవ నిలిపివేయబడింది: {name}"
-
#, fuzzy
#~ msgid "PageKite Account"
#~ msgstr "PageKite ఖాతా"
@@ -9509,9 +9766,6 @@ msgstr "గుజరాతీ"
#~ msgid "Automatic Upgrades"
#~ msgstr "స్వయంచాలక నవీకరణలు"
-#~ msgid "Upgrade Packages"
-#~ msgstr "ప్యాకేజీలను అప్గ్రేడ్ చేయండి"
-
#, fuzzy
#~| msgid "Disk Path"
#~ msgid "Path"
diff --git a/plinth/locale/tr/LC_MESSAGES/django.po b/plinth/locale/tr/LC_MESSAGES/django.po
index be803f17e..44c2566d9 100644
--- a/plinth/locale/tr/LC_MESSAGES/django.po
+++ b/plinth/locale/tr/LC_MESSAGES/django.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
-"PO-Revision-Date: 2022-06-22 17:14+0000\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
+"PO-Revision-Date: 2022-08-18 17:21+0000\n"
"Last-Translator: Burak Yavuz \n"
"Language-Team: Turkish \n"
@@ -16,13 +16,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.13.1-dev\n"
+"X-Generator: Weblate 4.14-dev\n"
#: doc/dev/_templates/layout.html:11
msgid "Page source"
msgstr "Sayfa kaynağı"
-#: plinth/context_processors.py:23 plinth/views.py:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr "FreedomBox"
@@ -53,10 +53,24 @@ msgid "Cannot connect to {host}:{port}"
msgstr "{host}:{port} adresine bağlanamıyor"
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+#, fuzzy
+#| msgid "Repository not found"
+msgid "Repository to backup to"
+msgstr "Depo bulunamadı"
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr "Bu uygulama ile kullanılacak bir etki alanı adı seçin"
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
@@ -64,12 +78,12 @@ msgstr ""
"Uyarı! Etki alan adı daha sonra değiştirilirse uygulama düzgün olarak "
"çalışmayabilir."
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr "TLS etki alanı"
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
@@ -78,41 +92,27 @@ msgstr ""
"TLS ile kullanmak için bir etki alanı seçin. Eğer liste boşsa, lütfen en az "
"bir etki alanını sertifikalarla yapılandırın."
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr "Dil"
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr "Bu web arayüzünü sunmak için kullanılacak dil"
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr "Tarayıcıda ayarlanan dil tercihini kullan"
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr "Uygulama yüklendi."
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr "Uygulama yüklenirken hata oldu: {string} {details}"
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr "Uygulama yüklenirken hata oldu: {error}"
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr "Apache HTTP Sunucusu"
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr "Web Sunucusu"
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr "{box_name} Web Arayüzü (Plinth)"
@@ -144,11 +144,11 @@ msgstr ""
"saldırgan bir yerel ağa bağlanırken güvenliği artırmak için "
"etkisizleştirilebilir."
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr "Hizmet Keşfi"
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr "Yerel Ağ Etki Alanı"
@@ -156,12 +156,12 @@ msgstr "Yerel Ağ Etki Alanı"
msgid "Backups allows creating and managing backup archives."
msgstr "Yedeklemeler, yedekleme arşivleri oluşturmayı ve yönetmeyi sağlar."
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr "Yedeklemeler"
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
@@ -169,18 +169,18 @@ msgstr ""
"Veri güvenliği için otomatik bir yedekleme planı etkinleştirin. Şifrelenmiş "
"bir uzak yedekleme konumu veya fazladan eklenmiş bir disk tercih edin."
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr "Bir Yedekleme Planı etkinleştirin"
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr "{app_name} için git"
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
@@ -189,7 +189,7 @@ msgstr ""
"Planlanmış bir yedekleme başarısız oldu. Geçen {error_count} yedekleme "
"denemesi başarılı olmadı. En son hata: {error_message}"
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr "Yedekleme Sırasında Hata"
@@ -273,7 +273,7 @@ msgstr "Depo"
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr "Ad"
@@ -437,7 +437,7 @@ msgid "{box_name} storage"
msgstr "{box_name} depolaması"
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr "Yeni bir yedek oluşturun"
@@ -489,7 +489,7 @@ msgid "Create Location"
msgstr "Konum Oluştur"
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr "Depo Oluştur"
@@ -545,7 +545,7 @@ msgstr "İndir"
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr "Geri Yükle"
@@ -648,99 +648,99 @@ msgstr ""
msgid "Verify Host"
msgstr "Anamakineyi Doğrula"
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr "Yedekleme planı güncellendi."
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr "Yedeklemeleri Zamanla"
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr "Arşiv oluşturuldu."
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr "Arşivi Sil"
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr "Arşiv silindi."
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr "Yedeklemeyi karşıya yükleyin ve geri yükleyin"
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr "Dosyalar yedekten geri yüklendi."
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr "Yedekleme dosyası bulunamadı."
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr "Karşıya yüklenen dosyadan geri yükle"
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr "Bir depo eklemek için ek diskler yok."
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr "Yedekleme deposu oluşturun"
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr "Uzak yedekleme deposu oluşturun"
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr "Yeni uzak SSH deposu eklendi."
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr "SSH anamakine anahtarını doğrula"
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr "SSH anamakinesi zaten doğrulandı."
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr "SSH anamakinesi doğrulandı."
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr "SSH anamakinesi ortak anahtarı doğrulanamadı."
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr "Uzak sunucuya kimlik doğrulama başarısız oldu."
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr "Sunucuyla bağlantı kurulurken hata oldu: {}"
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr "Depo kaldırıldı."
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr "Depoyu Kaldır"
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr "Depo kaldırıldı. Yedekler silinmedi."
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr "Bağlantıyı kaldırma başarısız oldu!"
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr "Bağlama başarısız oldu"
@@ -780,39 +780,39 @@ msgstr ""
"kişilere veya gruplara dağıtabilirsiniz. Bu, daha sonra tek bir kişi veya "
"grubun parolasını listeden kaldırarak erişimini iptal etmenizi sağlar."
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr "Dosya için bir web bağlantısı mevcutsa, dosyayı oku"
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr "Dosyaları oluştur veya yükle"
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr "Tüm dosyaları ve web bağlantılarını listele"
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr "Dosyaları sil"
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr "Dosyaları yönet: dosyaları kilitle/kilidini aç"
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr "Yok, parola her zaman gereklidir"
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr "Tüm dosyaları listele ve oku"
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr "bepasty"
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr "Dosya ve Kod Parçacığı Paylaşımı"
@@ -904,16 +904,15 @@ msgstr "Sil"
msgid "Admin"
msgstr "Yönetici"
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr "Yapılandırma güncellendi."
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr "Yapılandırma sırasında bir hata meydana geldi."
@@ -948,11 +947,11 @@ msgstr ""
"DNS sorgularını çözmek için kullanılmaktadır. Ayrıca {box_name} cihazından "
"İnternet bağlantısını paylaşmak için uyumsuzdur."
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr "BIND"
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr "Etki Alanı Adı Sunucusu"
@@ -1006,12 +1005,12 @@ msgstr "IP adresleri"
msgid "Refresh IP address and domains"
msgstr "IP adresi ve etki alanlarını yenile"
-#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
-#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -1053,15 +1052,15 @@ msgstr ""
"erişebilecektir. Erişimi olan tüm kullanıcılar tüm kütüphaneleri "
"kullanabilir."
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "calibre e-kitap kütüphanesini kullan"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "E-kitap Kütüphanesi"
@@ -1125,25 +1124,25 @@ msgstr "%(library)s kütüphanesine git"
msgid "Delete library %(library)s"
msgstr "%(library)s kütüphanesini sil"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "Kütüphane oluşturuldu."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "Kütüphane oluşturulurken bir hata meydana geldi."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} silindi."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "{name} silinemedi: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1156,7 +1155,7 @@ msgstr ""
"gerekli olmayan birçok gelişmiş işlev için denetimler mevcuttur. Konsol "
"işlemleri için web tabanlı bir terminal de mevcuttur."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1168,7 +1167,7 @@ msgstr ""
"noktalarını açmak ve birleştirme, köprüleme ve VLAN yönetimi gibi gelişmiş "
"ağlar oluşturmak için de kullanılabilir."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1177,33 +1176,16 @@ msgstr ""
"Admin grubuna ait {box_name} üzerindeki herhangi bir "
"kullanıcı tarafından erişilebilir."
-#: plinth/modules/cockpit/__init__.py:40
-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, ona bir etki alan adı aracılığıyla erişmenizi gerektirir. URL'nin "
-"bir parçası olarak bir IP adresi kullanılarak erişildiğinde çalışmayacaktır."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Sunucu Yönetimi"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Erişim"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr ""
-"Cockpit sadece aşağıdaki URL'ler kullanılarak erişildiğinde çalışacaktır."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1218,7 +1200,7 @@ msgstr "Genel Yapılandırma"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Yapılandır"
@@ -1313,43 +1295,67 @@ msgid "Show apps and features that require more technical knowledge."
msgstr ""
"Daha fazla teknik bilgi gerektiren uygulamaları ve özellikleri gösterir."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr "Sistem genelinde günlükleme"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr "Gizlilik için günlüklemeyi etkisizleştir"
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr "Performans için yeniden başlatılıncaya kadar bazılarını bellekte tut"
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr "Diske yaz, hata ayıklama için kullanışlıdır"
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+"Günlükler, sisteme kimin eriştiği ve çeşitli hizmetlerden gelen hata "
+"ayıklama bilgileri hakkında bilgiler içerir"
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Anamakine adı ayarlanırken hata oldu: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Anamakine adı ayarlandı"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Etki alanı adı ayarlanırken hata oldu: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Etki alanı adı ayarlandı"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Web sunucusu ana sayfası ayarlanırken hata oldu: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Web sunucusu ana sayfası ayarlandı"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Gelişmiş kip değiştirilirken hata oldu: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Gelişmiş uygulamalar ve özellikler gösteriliyor"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Gelişmiş uygulamalar ve özellikler gizleniyor"
@@ -1376,11 +1382,11 @@ msgstr ""
"\"{ms_url}\">Matrix Synapse veya ejabberd gibi "
"sunucuların burada sağlanan ayrıntılarla yapılandırılması gerekir."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "VoIP Yardımcısı"
@@ -1404,11 +1410,11 @@ msgstr ""
"Ağ zaman sunucusu, sistem saatini İnternet'teki sunucularla eşit halde tutan "
"bir programdır."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Tarih ve Saat"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "NTP sunucusu ile zaman eşitlendi"
@@ -1449,17 +1455,17 @@ msgstr ""
"Varsayılan parola 'deluge'dir, ancak bu hizmeti etkinleştirdikten hemen "
"sonra oturum açmalı ve parolayı değiştirmelisiniz."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "BitTorrent uygulamalarını kullanarak dosyaları indir"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "BitTorrent Web İstemcisi"
@@ -1480,49 +1486,49 @@ msgstr ""
"çalıştığını doğrulamak için sisteminizde bir dizi denetim gerçekleştirecek."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Tanılama"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "geçti"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "başarısız"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "hata"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "uyarı"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
"Bellek kullanımını azaltmak için bazı uygulamaları etkisizleştirmelisiniz."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Bu sisteme herhangi bir yeni uygulama yüklememelisiniz."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1531,7 +1537,7 @@ msgstr ""
"Sistem belleği düşük: %{percent_used} kullanılıyor, {memory_available}."
"{memory_available_unit} boş. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Düşük Bellek"
@@ -1581,7 +1587,7 @@ msgstr "Deneme"
msgid "Result"
msgstr "Sonuç"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Tanı Denemesi"
@@ -1627,11 +1633,11 @@ msgstr ""
"freedns.afraid."
"org adresinde bulabilirsiniz."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Değişken DNS İstemcisi"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Değişken Etki Alanı Adı"
@@ -1758,13 +1764,14 @@ msgid "This field is required."
msgstr "Bu alan gereklidir."
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1846,12 +1853,12 @@ msgstr ""
"duyar. Coturn uygulamasını yükleyin veya harici "
"bir sunucu yapılandırın."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Sohbet Sunucusu"
@@ -1966,7 +1973,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2030,19 +2037,19 @@ msgid ""
msgstr ""
"Kurulum sırasında sistemdeki diğer tüm e-posta sunucuları kaldırılacaktır."
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr "Postfix/Dovecot"
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "E-posta Sunucusu"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr "E-posta Kod Adlarım"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr "Posta Kutusu için Kod Adlarını Yönet"
@@ -2078,7 +2085,7 @@ msgstr "Sayı olamaz"
msgid "Aliases"
msgstr "Kod Adları"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2165,7 +2172,7 @@ msgstr ""
"ve uygun şekilde yapılandırılmış halde tutulması, İnternet kaynaklı güvenlik "
"tehdidi riskini azaltır."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Güvenlik Duvarı"
@@ -2327,15 +2334,15 @@ msgstr ""
"Git'in nasıl kullanılacağı hakkında daha fazla bilgi edinmek için Git öğreticisini ziyaret edin."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Git depolarına okuma-yazma erişimi"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Basit Git Barındırma"
@@ -2432,54 +2439,54 @@ msgstr "%(name)s Git Deposunu Sil"
msgid "Delete this repository permanently?"
msgstr "Bu depo kalıcı olarak silinsin mi?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Depo oluşturuldu."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Depo oluşturulurken bir hata meydana geldi."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Depo düzenlendi."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Depoyu düzenle"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Belgeler"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Kılavuz"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Destek Al"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Geri Bildirim Gönder"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Katkıda Bulun"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Hakkında"
@@ -2613,6 +2620,43 @@ msgstr ""
msgid "Learn more..."
msgstr "Daha fazla bilgi edinin..."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr "Nasıl yardımcı olabilirim?"
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+"Aşağıda Debian'a katkıda bulunma fırsatlarının bir listesi bulunmaktadır. "
+"Sadece bu sistemde yüklü paketleri gösterecek şekilde süzülmüştür."
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr "Konuları göster"
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr "Debian denemesinden kaldırılacak paketler"
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr "kaynak paketi:"
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr "Debian denemesinde olmayan paketler"
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr "Yeni başlayanlar için iyi ilk konular"
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr "Paket bakımcısının yardım istediği konular"
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2754,16 +2798,16 @@ msgstr ""
"Lütfen hata raporunu göndermeden önce tüm parolaları veya diğer kişisel "
"bilgileri günlükten kaldırın."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Belgeler ve SSS"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "{box_name} Hakkında"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "{box_name} Kılavuzu"
@@ -2795,19 +2839,19 @@ msgid ""
msgstr ""
"Sağlanan web arayüzüne ilk ziyaret, yapılandırma işlemini başlatacaktır."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "I2P uygulamasını yönet"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "İsim Gizliliği Ağı"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "I2P Vekil Sunucusu"
@@ -2877,15 +2921,15 @@ msgstr ""
"href=\"{users_url}\">Kullanıcı Yapılandırmasında bu izinleri "
"değiştirebilir veya yeni kullanıcılar ekleyebilirsiniz."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Viki ve Blog"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Viki uygulamalarını görüntüle ve düzenle"
@@ -2923,8 +2967,8 @@ msgstr "%(site)s sitesini sil"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Ayarlamayı güncelle"
@@ -2941,32 +2985,32 @@ msgstr ""
"Bu eylem düzeltim geçmişi dahil olmak üzere tüm yazıları, sayfaları ve "
"yorumları silecek. Bu viki ya da blog kalıcı olarak silinsin mi?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "{name} viki oluşturuldu."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Viki oluşturulamadı: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "{name} blog oluşturuldu."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Blog oluşturulamadı: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} silindi."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "{title} silinemedi: {error}"
@@ -2988,11 +3032,11 @@ msgstr ""
"istemcisini indirin ve yükleyin. Ardından Gobby'yi başlatın, \"Sunucuya "
"Bağlan\" seçeneğini seçin ve {box_name} cihazınızın etki alanı adını girin."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Gobby Sunucusu"
@@ -3013,26 +3057,26 @@ msgstr ""
"Gobby'yi başlatın, \"Sunucuya Bağlan\" seçeneğini seçin ve {box_name} "
"cihazınızın etki alanı adını girin."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr "Janus, hafif bir WebRTC sunucusudur."
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr "Basit bir video konferans odası dahildir."
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr "Janus'u kullanmak için Coturn gereklidir."
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr "Janus"
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
-msgstr "WebRTC sunucusu"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr "Video Odası"
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -3044,7 +3088,7 @@ msgstr "Janus Video Odası"
msgid "JavaScript license information"
msgstr "JavaScript lisans bilgileri"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -3052,11 +3096,11 @@ msgstr ""
"JSXC, XMPP için bir web istemcisidir. Genellikle, yerel olarak çalışan bir "
"XMPP sunucusuyla kullanılır."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Sohbet İstemcisi"
@@ -3224,7 +3268,7 @@ msgstr ""
"ihtiyaç duyar. Coturn uygulamasını yükleyin veya "
"harici bir sunucu yapılandırın."
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3262,8 +3306,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Yapılandırma"
@@ -3367,12 +3411,12 @@ msgstr ""
"Bu viki'ye bağlantısı olan herkes bunu okuyabilir. Sadece oturum açmış "
"kullanıcılar içerikte değişiklik yapabilir."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Viki"
@@ -3446,39 +3490,39 @@ msgstr ""
"MediaWiki kurulumunuz için varsayılan bir kaplama seçin. Kullanıcılar tercih "
"ettikleri kaplamayı seçmek için seçeneğe sahiptir."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Parola güncellendi"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr "Parola güncelleme başarısız oldu. Lütfen daha güçlü bir parola seçin"
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Herkese açık kayıtlar etkinleştirildi"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Herkese açık kayıtlar etkisizleştirildi"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Özel kip etkinleştirildi"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Özel kip etkisizleştirildi"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Varsayılan kaplama değiştirildi"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr "Etki alanı adı güncellendi"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr "Site adı güncellendi"
@@ -3495,11 +3539,11 @@ msgstr ""
"(30000) çalıştırılmasını sağlar. Sunucuya bağlanmak için bir Minetest istemcisi gereklidir."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Blok Kum Havuzu"
@@ -3551,7 +3595,7 @@ msgstr ""
msgid "Address"
msgstr "Adres"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3569,15 +3613,15 @@ msgstr ""
"Xbox 360 gibi) gibi ya da totem ve Kodi gibi uygulamalar da dahil olmak "
"üzere DLNA Sertifikası geçen tüm cihazlarla uyumludur."
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Ortam akış sunucusu"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Basit Ortam Sunucusu"
@@ -3640,11 +3684,11 @@ msgstr ""
"bağlanabilirsiniz. Masaüstünüzden ve mobil cihazlarınızdan Mumble'a "
"bağlanmak için istemciler mevcuttur."
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Sesli Sohbet"
@@ -3692,15 +3736,15 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "Süper Kullanıcı parolası başarılı olarak güncellendi."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr "Katılma parolası değiştirildi"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr "Kök kanal adı değişti."
@@ -3738,7 +3782,7 @@ msgstr "Güvenli Kabuk"
msgid "Services"
msgstr "Hizmetler"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3746,7 +3790,7 @@ msgstr ""
"Ağ cihazlarını yapılandırın. İnternet'e Ethernet, Wi-Fi veya PPPoE ile "
"bağlanın. Bu bağlantıyı ağdaki diğer cihazlarla paylaşın."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3754,15 +3798,10 @@ msgstr ""
"Diğer yöntemler aracılığıyla yönetilen cihazlar burada yapılandırma için "
"mevcut olmayabilir."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Ağlar"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "IPv{kind} üzerinde DNSSEC kullanma"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Bağlantı Türü"
@@ -4378,7 +4417,7 @@ msgid "Create Connection"
msgstr "Bağlantı Oluştur"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Bağlantıyı Sil"
@@ -4398,13 +4437,13 @@ msgstr "Aralık"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Kablosuz (Wi-Fi)"
@@ -4425,7 +4464,7 @@ msgid "Computer"
msgstr "Bilgisayar"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Bağlantıyı Düzenle"
@@ -4435,13 +4474,13 @@ msgstr "Bağlantılar"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Yakındaki Kablosuz (Wi-Fi) Ağları"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Bağlantı Ekle"
@@ -4662,246 +4701,242 @@ msgstr ""
"kılavuzunu çevrimiçi olarak arayın. Bu, bu görevin nasıl "
"gerçekleştirileceğine dair tam talimatlar sağlayacak."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "etkisizleştirildi"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "otomatik"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "elle"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "paylaşılmış"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr "bağlantı-yerel"
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "bilinmiyor"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "yönetilmeyen"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "kullanılamaz"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "bağlantısı kesilmiş"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "hazırlanıyor"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "bağlanıyor"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "kimlik doğrulaması gerekiyor"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "adres isteniyor"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "denetleniyor"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr "ikincil bekleniyor"
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "etkinleştirildi"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "devre dışı bırakılıyor"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "sebep yok"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "bilinmeyen hata"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "aygıt artık yönetiliyor"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "aygıt artık yönetilemiyor"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "yapılandırma başarısız oldu"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr "gizli anahtarlar gerekli"
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "DHCP istemcisini başlatma başarısız oldu"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "DHCP istemcisi hatası"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "DHCP istemcisi başarısız oldu"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr "paylaşılan bağlantı hizmetini başlatma başarısız oldu"
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "paylaşılan bağlantı hizmeti başarısız oldu"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "aygıt kaldırıldı"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "aygıtın bağlantısı kullanıcı tarafından kesildi"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr "bağlantının bir bağımlılığı başarısız oldu"
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "Kablosuz (Wi-Fi) ağı bulunamadı"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "ikincil bir bağlantı başarısız oldu"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr "yeni bağlantı etkinleştirme sıraya alındı"
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "yinelenen bir IP adresi algılandı"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "seçilen IP yöntemi desteklenmiyor"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "genel"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "TUN veya TAP arayüzü"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "geçici"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "altyapı"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "erişim noktası"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "ağ gözü noktası"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Ağ Bağlantıları"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Bağlantı gösterilemiyor: Bağlantı bulunamadı."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Bağlantı Bilgileri"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Bağlantı düzenlenemiyor: Bağlantı bulunamadı."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "Bu tür bir bağlantı henüz anlaşılmamaktadır."
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "{name} bağlantısı etkinleştirildi."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Bağlantıyı etkinleştirme başarısız oldu: Bağlantı bulunamadı."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"{name} bağlantısını etkinleştirme başarısız oldu: Mevcut uygun bir cihaz yok."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "{name} bağlantısı devre dışı bırakıldı."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Bağlantıyı devre dışı bırakma başarısız oldu: Bağlantı bulunamadı."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "Yeni Genel Bağlantı Ekleme"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Yeni Ethernet Bağlantısı Ekleme"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Yeni PPPoE Bağlantısı Ekleme"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Yeni Kablosuz (Wi-Fi) Bağlantısı Ekleme"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "{name} bağlantısı silindi."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Bağlantının silinmesi başarısız oldu: Bağlantı bulunamadı."
@@ -4922,20 +4957,20 @@ msgstr ""
"isim gizliliği sayesinde {box_name} aracılığıyla İnternet'e de "
"erişebilirsiniz."
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "VPN hizmetlerine bağlan"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Sanal Özel Ağ"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -5070,15 +5105,15 @@ msgstr ""
"href=\"https://pagekite.net\">pagekite.net. Gelecekte bunun için "
"arkadaşınızın {box_name} cihazını kullanmak mümkün olabilir."
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Herkese Açık Görünürlük"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "PageKite Etki Alanı"
@@ -5192,32 +5227,32 @@ msgstr ""
"dışındaki bağlantı noktalarında HTTPS'nin sorunlara neden olduğu "
"bilinmektedir."
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Web Sunucusu (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
"Site http://{0} adresinde kullanılabilir olacaktır"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Web Sunucusu (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
"Site https://{0} adresinde kullanılabilir "
"olacaktır"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Güvenli Kabuk (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -5226,7 +5261,7 @@ msgstr ""
"SshOverPageKite/\">talimatlarına bakın"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Performans"
@@ -5249,7 +5284,7 @@ msgstr ""
"Performans ölçümleri, Performance Co-Pilot tarafından toplanır ve Cockpit "
"uygulaması kullanılarak görüntülenebilir."
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Sistem İzleme"
@@ -5335,26 +5370,28 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
"Tarayıcı vekil sunucusu ayarlarınızı {box_name} anamakine adınıza (veya IP "
"adresine) 8118 bağlantı noktasıyla değiştirerek Privoxy'yi "
-"kullanabilirsiniz. Privoxy kullanırken, yapılandırma ayrıntılarını ve "
-"belgelerini https://www.privoxy.org "
-"adresinde görebilirsiniz."
+"kullanabilirsiniz. Sadece yerel ağ IP adreslerinden gelen bağlantılara izin "
+"verilir. Privoxy kullanırken, yapılandırma ayrıntılarını ve belgelerini https://www.privoxy.org adresinde "
+"görebilirsiniz."
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Web Vekil Sunucusu"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "Tcp{kind} üzerinde {proxy} vekil sunucusu ile {url} adresine erişin"
@@ -5388,11 +5425,11 @@ msgstr ""
"\">masaüstü ve mobil"
"a> cihazlarınızdan bağlanacak istemciler mevcuttur."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "IRC İstemcisi"
@@ -5425,12 +5462,12 @@ msgstr ""
"temel bir web arayüzü sağlar. Ayrı bir istemci kullanılarak yapılması "
"zorunlu olan olayların veya kişilerin eklenmesini desteklemez."
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Takvim ve Adres Defteri"
@@ -5509,7 +5546,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Erişim izinleri yapılandırması güncellendi"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5521,7 +5558,7 @@ msgstr ""
"defteri, klasör işleme, ileti arama ve yazım denetimi dahil olmak üzere bir "
"e-posta istemcisinden beklediğiniz tam işlevselliği sağlar."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5535,7 +5572,7 @@ msgstr ""
"IMAP için (önerilir), sunucu alanını imaps://imap.ornek.com "
"gibi doldurun."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5550,7 +5587,7 @@ msgstr ""
"gerekeceğini unutmayın (https://myaccount.google.com/lesssecureapps)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "E-posta İstemcisi"
@@ -5568,6 +5605,48 @@ msgstr ""
"sayfasından kaldırılır ve kullanıcılar postaları sadece bu {box_name} "
"cihazından okuyabilir ve gönderebilir."
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+"RSS-Bridge, olmayan web siteleri için RSS ve Atom bildirimleri oluşturur. "
+"Oluşturulan bildirimler, herhangi bir bildirim okuyucusu tarafından "
+"tüketilebilir."
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Etkinleştirildiğinde RSS-Bridge'ye, bildirim okuyucu grubuna ait herhangi bir kullanıcı tarafından erişilebilir."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+"Çeşitli web sitelerini takip etmek için Tiny Tiny "
+"RSS ile RSS-Bridge'i kullanabilirsiniz. Bir bildirim eklerken, kimlik "
+"doğrulamayı etkinleştirin ve {box_name} kimlik bilgilerinizi kullanın."
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Haber bildirimlerini oku ve abone ol"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr "RSS-Bridge"
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr "RSS Bildirim Oluşturucu"
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5610,15 +5689,15 @@ msgstr ""
"Ev paylaşımı - Freedombox paylaşım grubundaki her kullanıcı kendi özel "
"alanına sahip olabilir."
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Özel paylaşımlara erişim"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Ağ Dosya Depolama"
@@ -5751,15 +5830,15 @@ msgstr ""
"Searx, arama motorları tarafından izlenmeyi ve profil oluşturmayı önlemek "
"için kullanılabilir. Varsayılan olarak hiçbir tanımlama bilgisi saklamaz."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Web'de ara"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Web Arama"
@@ -5854,7 +5933,7 @@ msgstr ""
"katkıda bulunanlar tarafından bakımları yapılır."
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Güvenlik Raporu"
@@ -5932,12 +6011,12 @@ msgstr "Hayır"
msgid "Not running"
msgstr "Çalışmıyor"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "Kısıtlı erişim ayarlanırken hata oldu: {exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Güvenlik yapılandırması güncellendi"
@@ -5953,11 +6032,11 @@ msgstr ""
"Shaarli'nin sadece ilk ziyaretinizde ayarlamanız gerekecek tek bir kullanıcı "
"hesabını desteklediğini unutmayın."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Yer İşaretleri"
@@ -5997,11 +6076,11 @@ msgstr ""
"uygulamanızda SOCKS5 vekil sunucu URL'sini http://freedombox_adresi:1080/ "
"olarak ayarlayın"
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Socks5 Vekil Sunucusu"
@@ -6032,7 +6111,7 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr "Şifreleme yöntemi. Sunucudaki ayarla eşleşmek zorundadır."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -6041,7 +6120,7 @@ msgstr ""
"Paylaşım, web üzerinden {box_name} cihazınızdaki dosyaları ve klasörleri, "
"seçilen kullanıcı gruplarıyla paylaşmanızı sağlar."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Paylaşım"
@@ -6093,28 +6172,28 @@ msgstr "Bu ada sahip bir paylaşım zaten var."
msgid "Shares should be either public or shared with at least one group"
msgstr "Paylaşımlar herkese açık olmalı veya en az bir grupla paylaşılmalıdır"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Paylaşım ekle"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Şu anda yapılandırılmış paylaşımlar yok."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Disk Yolu"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "Paylaşım Bitti"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "Gruplarla"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "herkese açık erişim"
@@ -6275,7 +6354,7 @@ msgstr "Tarih"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Anlık Görüntüleri Sil"
@@ -6329,54 +6408,54 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "#%(number)s Nolu Anlık Görüntüye Geri Al"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "el ile oluşturuldu"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "zaman çizelgesi"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Anlık Görüntüleri Yönet"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Anlık görüntü oluşturuldu."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Depolama anlık görüntü yapılandırması güncellendi"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Eylem hatası: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Seçilen anlık görüntüler silindi"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr "Anlık görüntü şu anda kullanımda. Lütfen daha sonra tekrar deneyin."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "#{number} nolu anlık görüntüye geri alındı."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
"Geri alma işlemini tamamlamak için sistem yeniden başlatılmak zorundadır."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "Anlık Görüntüye Geri Al"
@@ -6392,7 +6471,7 @@ msgstr ""
"bağlantıları kullanarak yönetim görevlerini gerçekleştirebilir, dosyaları "
"kopyalayabilir veya diğer hizmetleri çalıştırabilir."
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Güvenli Kabuk (SSH) Sunucusu"
@@ -6438,7 +6517,7 @@ msgstr "Parola ile SSH kimlik doğrulaması etkisizleştirildi."
msgid "SSH authentication with password enabled."
msgstr "Parola ile SSH kimlik doğrulaması etkinleştirildi."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr "Tek Oturum Açma"
@@ -6462,105 +6541,105 @@ msgstr ""
"ortamı bağlayabilir ve bağlantısını kaldırabilir, kök bölümünü vb. "
"genişletebilirsiniz."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Depolama"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} bayt"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "İşlem başarısız oldu."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "İşlem iptal edildi."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Aygıtın zaten bağlantısı kaldırılıyor."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr "Eksik sürücü/araç desteğinden dolayı işlem desteklenmiyor."
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "İşlem zaman aşımına uğradı."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr "İşlem, derin uyku durumunda olan bir diski uyandırır."
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Meşgul olan bir aygıtın bağlantısı kaldırılmaya çalışılıyor."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "İşlem zaten iptal edildi."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr "İstenen işlemi gerçekleştirmek için yetkili değilsiniz."
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Aygıt zaten bağlı."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Aygıt bağlı değil."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr "İstenen seçeneği kullanmak için izin verilmedi."
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Aygıt başka bir kullanıcı tarafından bağlandı."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
"Sistem bölümünde düşük alan: %{percent_used} kullanıldı, {free_space} boş."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Düşük disk alanı"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr "Disk arızası yakın"
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6715,16 +6794,16 @@ msgstr ""
"{box_name} cihazındaki web arayüzü sadece \"admin\" veya \"syncthing-access"
"\" grubuna ait kullanıcılar tarafından kullanılabilir."
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Syncthing uygulamasını yönet"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Dosya Eşitleme"
@@ -6750,40 +6829,40 @@ msgstr ""
"9050 nolu TCP bağlantı noktası üzerindeki dahili ağlar için {box_name} "
"cihazınızda bir Tor SOCKS bağlantı noktası kullanılabilir."
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Tor Onion Hizmeti"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr "Tor Socks Vekil Sunucusu"
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Tor Köprüsü Aktarımı"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Tor aktarımı bağlantı noktası kullanılabilir"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "Obfs3 taşıma kayıtlı"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "Obfs4 taşıma kayıtlı"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "Tor aracılığıyla tcp{kind} üzerinde erişim URL'si {url}"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "Tcp{kind} üzerinde {url} adresinde Tor kullanımını onaylama"
@@ -6793,15 +6872,11 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr "Şu biçemde geçerli bir köprü girin: [taşıma] IP:ORPort [parmakizi]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Tor'u etkinleştir"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr "Tor ağına bağlanmak için yukarı akış köprülerini kullan"
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
@@ -6812,11 +6887,11 @@ msgstr ""
"bağlantıları engelliyorsa veya sansürlüyorsa bu seçeneği kullanın. Bu, "
"aktarım kiplerini etkisizleştirecektir."
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr "Yukarı akış köprüleri"
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
@@ -6827,11 +6902,11 @@ msgstr ""
"yapıştır yapabilirsiniz. Şu anda desteklenen taşımalar none, obfs3, obfs4 ve "
"scamblesuit'tir."
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "Tor aktarımını etkinleştir"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6842,11 +6917,11 @@ msgstr ""
"Tor ağına bant genişliği bağışlayacaktır. 2 megabit/s'den daha fazla "
"gönderme ve indirme bant genişliğiniz varsa bunu yapın."
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "Tor köprüsü aktarımını etkinleştir"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6856,11 +6931,11 @@ msgstr ""
"zorlaştıran herkese açık Tor aktarımı veritabanı yerine Tor köprüsü "
"veritabanında yayınlanır. Bu, başkalarının sansürü atlatmasına yardımcı olur."
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Tor Gizli Hizmetini etkinleştir"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6871,11 +6946,11 @@ msgstr ""
"hizmetleri (viki veya sohbet gibi) sağlaması için izin verecektir. Bunu "
"henüz güçlü bir isim gizliliği için kullanmayın."
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Yazılım paketlerini Tor üzerinden indir"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6885,7 +6960,7 @@ msgstr ""
"üzerinden indirilecektir. Bu, yazılım indirmeleri sırasında bir derece "
"gizlilik ve güvenlik sağlar."
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
"Yukarı akış köprülerini kullanmak için en az bir yukarı akış köprüsü "
@@ -6899,21 +6974,25 @@ msgstr "Tor Tarayıcı"
msgid "Orbot: Proxy with Tor"
msgstr "Orbot: Tor ile Vekil Sunucu"
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "Tor yapılandırması güncelleniyor"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Onion Hizmeti"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Bağlantı Noktaları"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Ayar değişmedi"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "Error updating configuration"
+msgid "Updating configuration"
+msgstr "Yapılandırma güncellenirken hata oldu"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error updating app: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Uygulama güncellenirken hata oldu: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6969,7 +7048,7 @@ msgstr ""
"İndirme tamamlandıktan sonra, dosyalarınıza Paylaşım uygulamasını kullanarak da erişebilirsiniz."
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -7001,15 +7080,11 @@ msgstr ""
"Tiny Tiny RSS için bir mobil veya masaüstü uygulaması kullanırken, bağlanmak "
"için /tt-rss-app URL'sini kullanın."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Haber bildirimlerini oku ve abone ol"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Haber Bildirim Okuyucusu"
@@ -7035,22 +7110,22 @@ 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:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Yazılım Güncellemesi"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox Güncellendi"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "Dağıtım güncellemesi başlatılamadı"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
@@ -7060,11 +7135,11 @@ msgstr ""
"Lütfen en az 5 GB boş alan olduğundan emin olun. Dağıtım güncellemesi, "
"etkinleştirildiyse 24 saat sonra yeniden denenecektir."
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "Dağıtım güncellemesi başlatıldı"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -7159,6 +7234,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Yoksay"
@@ -7226,39 +7302,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr "Son güncelleme günlüklerini göster"
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Dağıtım yükseltmesi etkinleştirildi"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "Dağıtım yükseltmesi etkinleştirildi"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "unattended-upgrades yapılandırılırken bir hata oldu: {error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Otomatik yükseltmeler etkinleştirildi"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Otomatik yükseltmeler etkisizleştirildi"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "Dağıtım yükseltmesi etkinleştirildi"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Dağıtım yükseltmesi etkisizleştirildi"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Yükseltme işlemi başladı."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "Yükseltmeyi başlatma başarısız oldu."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Sık yapılan özellik güncellemeleri etkinleştirildi."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Dağıtım yükseltmesi etkinleştirildi"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -7282,15 +7382,15 @@ msgstr ""
"sadece admin grubunun kullanıcıları uygulamaları veya sistem "
"ayarlarını değiştirebilir."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Kullanıcılar ve Gruplar"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Tüm hizmetlere ve sistem ayarlarına erişim"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "LDAP \"{search_item}\" girişini denetleme"
@@ -7920,12 +8020,12 @@ msgstr ""
"yükseltmesini el ile çalıştırmanız gerekir. Ek eklentiler veya temalar kendi "
"sorumluluğunuzda yüklenebilir ve yükseltilebilir."
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "Web Sitesi ve Blog"
@@ -7975,11 +8075,11 @@ msgstr ""
"Ek kullanıcılar için hesaplar hem {box_name} cihazında hem de Zoph'da aynı "
"kullanıcı adıyla oluşturulmak zorundadır."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Fotoğraf Düzenleyici"
@@ -8017,37 +8117,122 @@ msgstr "PPPoE"
msgid "Generic"
msgstr "Genel"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr "Hata: {name}: {exception_message}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr "Başlamak için bekleniyor: {name}"
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr "Tamamlandı: {name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr "{expression} paketi yükleme için mevcut değil"
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "{package_name} paketi en son sürümdür ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Kurulum sırasında hata oldu"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Yedekleme Sırasında Hata"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "yükleniyor"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "indiriliyor"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "ortam değiştirme"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "yapılandırma dosyası: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr "Paket yöneticisini beklerken zaman aşımı oldu"
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr "Uygulama yükleniyor"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr "Uygulama güncelleniyor"
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr "Uygulama yüklenirken hata oldu: {string} {details}"
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr "Uygulama güncellenirken hata oldu: {string} {details}"
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr "Uygulama yüklenirken hata oldu: {error}"
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr "Uygulama güncellenirken hata oldu: {error}"
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr "Uygulama yüklendi."
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr "Uygulama güncellendi"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Installing app"
+msgid "Uninstalling app"
+msgstr "Uygulama yükleniyor"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Uygulama yüklenirken hata oldu: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Uygulama yüklenirken hata oldu: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "App installed."
+msgid "App uninstalled."
+msgstr "Uygulama yüklendi."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr "Uygulama paketleri güncelleniyor"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Yasak"
@@ -8099,7 +8284,7 @@ msgstr ""
msgid "Installation"
msgstr "Kurulum"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "%(service_name)s hizmeti çalışmıyor."
@@ -8365,6 +8550,10 @@ msgstr "Yönlendirici/WAN Bağlantı Noktalarından"
msgid "To %(box_name)s Ports"
msgstr "%(box_name)s Bağlantı Noktalarına"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Uygulama yüklendi."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Bu uygulama yüklensin mi?"
@@ -8374,22 +8563,14 @@ msgid "This application needs an update. Update now?"
msgstr "Bu uygulamanın güncellenmesi gerekiyor. Şimdi güncellensin mi?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Başka bir kurulum veya yükseltme zaten çalışıyor. Tekrar denemeden önce "
-"lütfen biraz bekleyin."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Bu uygulama şu anda dağıtımınızda mevcut değil."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Tekrar denetle"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -8399,36 +8580,105 @@ msgstr ""
"uygulamanın kurulumuyla çakışıyor. Devam ederseniz aşağıdaki paketler "
"kaldırılacaktır:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Yükle"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Güncelle"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Yükleme öncesi işlemi gerçekleştiriliyor"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Yükle"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Yükleme sonrası işlemi gerçekleştiriliyor"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "%(username)s Kullanıcısını Düzenleyin"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Yüklenen %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%%%(percentage)s tamamlandı"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Ayar değişmedi"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#~ msgid "Network Connections"
+#~ msgstr "Ağ Bağlantıları"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Tor'u etkinleştir"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Tor yapılandırması güncelleniyor"
+
+#~ msgid "Error during installation"
+#~ msgstr "Kurulum sırasında hata oldu"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "IPv{kind} üzerinde DNSSEC kullanma"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Başka bir kurulum veya yükseltme zaten çalışıyor. Tekrar denemeden önce "
+#~ "lütfen biraz bekleyin."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Yükleme öncesi işlemi gerçekleştiriliyor"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Yükleme sonrası işlemi gerçekleştiriliyor"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Yüklenen %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%%%(percentage)s tamamlandı"
+
+#~ 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, ona bir etki alan adı aracılığıyla erişmenizi gerektirir. "
+#~ "URL'nin bir parçası olarak bir IP adresi kullanılarak erişildiğinde "
+#~ "çalışmayacaktır."
+
+#~ msgid "Access"
+#~ msgstr "Erişim"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr ""
+#~ "Cockpit sadece aşağıdaki URL'ler kullanılarak erişildiğinde çalışacaktır."
+
+#~ msgid "WebRTC server"
+#~ msgstr "WebRTC sunucusu"
+
#~ msgid "Server URL"
#~ msgstr "Sunucu URL'si"
@@ -8867,9 +9117,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Postfix etki alanı adı yapılandırması"
-#~ msgid "Error updating configuration"
-#~ msgstr "Yapılandırma güncellenirken hata oldu"
-
#~ msgid "The alias was taken"
#~ msgstr "Kod adı alındı"
@@ -9389,9 +9636,6 @@ msgstr "Gujarati"
#~ msgid "Service enabled: {name}"
#~ msgstr "Servis etkinleştirildi: {name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "Servis devre dışı bırakıldı: {name}"
-
#~ msgid "PageKite Account"
#~ msgstr "PageKite Hesabı"
@@ -9855,9 +10099,6 @@ msgstr "Gujarati"
#~ msgid "Automatic Upgrades"
#~ msgstr "Otomatik Yükseltmeler"
-#~ msgid "Upgrade Packages"
-#~ msgstr "Paketleri Yükselt"
-
#, fuzzy
#~| msgid "Create User"
#~ msgid "Create archive"
@@ -10155,9 +10396,6 @@ msgstr "Gujarati"
#~ msgid "IP Check URL"
#~ msgstr "IP Kontrol Bağlantısı"
-#~ msgid "Bridge"
-#~ msgstr "Köprü"
-
#~ msgid "Enable network time"
#~ msgstr "Ağ zamanını etkinleştir"
@@ -10370,9 +10608,6 @@ msgstr "Gujarati"
#~ msgid "The operating system is up to date now. "
#~ msgstr "İşletim sistemi artık günceldir. "
-#~ msgid "Show Details"
-#~ msgstr "Ayrıntıları Göster"
-
#~ msgid ""
#~ "This will run unattended-upgrades, which will attempt to upgrade your "
#~ "system with the latest Debian packages. It may take a few minutes to "
diff --git a/plinth/locale/uk/LC_MESSAGES/django.po b/plinth/locale/uk/LC_MESSAGES/django.po
index fcf2a9728..3ab718040 100644
--- a/plinth/locale/uk/LC_MESSAGES/django.po
+++ b/plinth/locale/uk/LC_MESSAGES/django.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
-"PO-Revision-Date: 2022-07-05 01:21+0000\n"
-"Last-Translator: Andrij Mizyk \n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
+"PO-Revision-Date: 2022-08-18 17:21+0000\n"
+"Last-Translator: Andrij Mizyk \n"
"Language-Team: Ukrainian \n"
"Language: uk\n"
@@ -18,13 +18,13 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.13.1-dev\n"
+"X-Generator: Weblate 4.14-dev\n"
#: doc/dev/_templates/layout.html:11
msgid "Page source"
msgstr "Джерело сторінки"
-#: plinth/context_processors.py:23 plinth/views.py:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr "FreedomBox"
@@ -54,10 +54,24 @@ msgid "Cannot connect to {host}:{port}"
msgstr "Неможливо підключитись до {host}:{port}"
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+#, fuzzy
+#| msgid "Repository not found"
+msgid "Repository to backup to"
+msgstr "Репозиторій не знайдено"
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr "Оберіть назву домена, яка використовуватиметься для цього застосунка"
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
@@ -65,12 +79,12 @@ msgstr ""
"Попередження! Застосунок може працювати неправильно, якщо пізніше зміниться "
"назва домену."
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr "TLS-домен"
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
@@ -79,41 +93,27 @@ msgstr ""
"Оберіть домен для використання з TLS. Якщо список порожній, будь ласка, "
"налаштуйте хоча б один домен зі сертифікатами."
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr "Мова"
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr "Мова, що використовується для надання цього інтерфейсу"
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr "Використовувати мовні налаштування оглядача"
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr "Застосунок встановлено."
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr "Помилка при встановленні застосунку: {string} {details}"
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr "Помилка при встановлені застосунку: {error}"
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr "Сервер HTTP Apache"
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr "Вебсервер"
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr "Вебінтерфейс {box_name} (Plinth)"
@@ -144,11 +144,11 @@ msgstr ""
"сервісів не головне і працює лише у внутрішніх мережах. Це можна вимкнути "
"для підвищення безпеки, особливо при підключенні до недовіреної мережі."
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr "Виявлення служб"
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr "Домен локальної мережі"
@@ -157,12 +157,12 @@ msgid "Backups allows creating and managing backup archives."
msgstr ""
"Резервне копіювання дозволяє створювати та керувати резервними архівами."
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr "Резервні копії"
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
@@ -171,18 +171,18 @@ msgstr ""
"Для резервних копій надається перевага віддаленому зашифрованому "
"розташуванню або зовнішньому знімному диску."
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr "Дозволити планування резервних копій"
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr "Перейти в {app_name}"
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
@@ -191,7 +191,7 @@ msgstr ""
"Невдале заплановане резервне копіювання. Минулі {error_count} спроб не були "
"успішними. Остання помилка: {error_message}"
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr "Помилка під час резервного копіювання"
@@ -277,7 +277,7 @@ msgstr "Репозиторій"
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr "Назва"
@@ -443,7 +443,7 @@ msgid "{box_name} storage"
msgstr "Сховище {box_name}"
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr "Створити нову резервну копію"
@@ -495,7 +495,7 @@ msgid "Create Location"
msgstr "Створити розташування"
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr "Створити репозиторій"
@@ -553,7 +553,7 @@ msgstr "Завантажити"
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr "Відновити"
@@ -655,99 +655,99 @@ msgstr ""
msgid "Verify Host"
msgstr "Перевірити власника"
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr "Планування резервного копіювання оновлено."
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr "Спланувати резервне копіювання"
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr "Архів створено."
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr "Видалити архів"
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr "Архів видалено."
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr "Вивантажити і відновити резервну копію"
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr "Відновлені файли з резервної копії."
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr "Не занйдено файлу резервної копії."
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr "Відновити з вивантаженого файлу"
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr "Нема доступних дисків для додавання репозиторію."
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr "Створити репозиторій резервних копій"
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr "Створити віддалений репозиторій резервних копій"
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr "Додано новий віддалений SSH-репозиторій."
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr "Перевірити ключ власника SSH"
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr "Власника SSH вже перевірено."
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr "Власника SSH перевірено."
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr "Публічний ключ власника SSH не можливо перевірити."
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr "Не вдалося автентифікуватися на віддаленому сервері."
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr "Помилка встановлення зʼєднання зі сервером: {}"
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr "Репозиторій вилучено."
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr "Видалити репозиторій"
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr "Репозиторій вилучено. Резервні копії не видалено."
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr "Не вдалося відмонтувати!"
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr "Не вдалося змонтувати"
@@ -786,39 +786,39 @@ msgstr ""
"різним людям або групам. Це дозволить скасувати доступ до певної особи або "
"групи видаливши її пароль зі списку."
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr "Прочитати файл, якщо вебпосилання на файл доступне"
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr "Створити або відвантажити файли"
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr "Показати всі файли і їхні вебпосилання"
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr "Видалити файли"
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr "Адміністрування файлів: блокувати/розблокувати файли"
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr "Нічого, пароль обовʼязковий"
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr "Показати і зчитати всі файли"
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr "bepasty"
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr "Обмін файлами і фрагментами коду"
@@ -909,16 +909,15 @@ msgstr "Видалити"
msgid "Admin"
msgstr "Адміністратор"
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr "Налаштування оновлено."
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr "Під час налаштування відбулася помилка."
@@ -953,11 +952,11 @@ msgstr ""
"інших машин у локальній мережі. Це також не сумісно зі спільним доступом до "
"Інтернету з {box_name}."
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr "BIND"
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr "Сервер доменних імен"
@@ -1010,12 +1009,12 @@ msgstr "IP-адреси"
msgid "Refresh IP address and domains"
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:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -1058,15 +1057,15 @@ msgstr ""
"до застосунку. Усі користувачі з доступом можуть користуватися всіма "
"бібліотеками."
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "Використання бібліотеки ел. книжок calibre"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "Бібліотека ел. книжок"
@@ -1130,25 +1129,25 @@ msgstr "Перейти до бібліотеки %(library)s"
msgid "Delete library %(library)s"
msgstr "Видалити бібліотеку %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "Бібліотеку створено."
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "Помилка виникла під час створення бібліотеки."
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} видалено."
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "Не вдалося видалити {name}: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1161,7 +1160,7 @@ msgstr ""
"розширених функцій, які зазвичай не потрібні. Також доступний вебтермінал "
"для консольних операцій."
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1173,7 +1172,7 @@ msgstr ""
"відкривання власних портів фаєрволу та розширеної роботи з мережею, як-от "
"роботи зі звʼязком, мостами та керуванням VLAN."
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1182,32 +1181,16 @@ msgstr ""
"До нього може мати доступ будь-який користувач "
"на {box_name}, що належить до групи admin."
-#: plinth/modules/cockpit/__init__.py:40
-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:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Адміністрування сервера"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Доступ"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Cockpit працюватиме лише, якщо входити через наступні URL-адреси."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1222,7 +1205,7 @@ msgstr "Загальні налаштування"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Налаштування"
@@ -1302,6 +1285,12 @@ msgid ""
"is set to something other than {box_name} Service (Plinth), your users must "
"explicitly type /plinth or /freedombox to reach {box_name} Service (Plinth)."
msgstr ""
+"Виберіть типову сторінку, яка має відображатися, коли хтось відвідує Ваш "
+"{box_name} в Інтернеті. Типовим використанням є встановлення Вашого блоґу "
+"або вікі домашньою сторінкою, коли хтось відвідує доменну назву. Зверніть "
+"увагу, що коли для домашньої сторінки встановлено щось інше, ніж сервіс "
+"{box_name} (Plinth), Ваші користувачі повинні явно вводити /plinth або /"
+"freedombox, щоб отримати доступ до сервісу {box_name} (Plinth)."
#: plinth/modules/config/forms.py:98
msgid "Show advanced apps and features"
@@ -1312,43 +1301,67 @@ msgid "Show apps and features that require more technical knowledge."
msgstr ""
"Показувати застосунки і можливості, що вимагають більш технічних знань."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr "Запис в системний журнал"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr "Вимкнути запис в журнал, для приватності"
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr "Зберігати дещо в памʼяті до перезапуску для продуктивності"
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr "Записати на диск, зручно під час зневадження"
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+"Журнали містять інформацію про те, хто мав доступ до системи та інформацію "
+"про зневадження від різних сервісів"
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Помилка параметру hostname: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Назву компʼютера задано"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Помилка встановлення доменної назви: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Доменну назву задано"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Помилка налаштування домашньої сторінки вебсервера: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Домашню сторінку вебсервера задано"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Помилка зміни розширеного режиму: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Відображення розширених застосунків і можливостей"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Приховування розширених застосунків і можливостей"
@@ -1375,11 +1388,11 @@ msgstr ""
"от Matrix Synapse або ejabberd"
"a> потрібно налаштовувати з урахуванням деталей наведених тут."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "Помічник VoIP"
@@ -1405,11 +1418,11 @@ msgstr ""
"Сервер мережевого часу — це програма, що підтримує системний час "
"синхронізовано зі серверами в Інтернеті."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Дата і час"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Час синхронізовано зі сервером NTP"
@@ -1450,17 +1463,17 @@ msgstr ""
"Типовий пароль – 'deluge', але Ви можете ввійти і змінити його відразу після "
"ввімкнення цього сервісу."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Завантаження файлів через застосунки BitTorrent"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "Вебклієнт BitTorrent"
@@ -1481,49 +1494,49 @@ msgstr ""
"що застосунки і сервіси працюють так, як очікується."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Діагностика"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "пройдено"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "невдало"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "помилка"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "попередження"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "МіБ"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "ҐіБ"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
"Ви повинні вимкнути деякі застосунки, щоб зменшити використання памʼяті."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Не слід встановлювати нові застосунки в цій системі."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1532,7 +1545,7 @@ msgstr ""
"У системі бракує памʼяті: {percent_used}% використано, {memory_available} "
"{memory_available_unit} вільно. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Мало памʼяті"
@@ -1582,7 +1595,7 @@ msgstr "Тест"
msgid "Result"
msgstr "Результат"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Тест діагностики"
@@ -1616,11 +1629,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Клієнт динамічної DNS"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Динамічна доменна назва"
@@ -1737,13 +1750,14 @@ msgid "This field is required."
msgstr "Це поле обовʼязкове."
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1824,12 +1838,12 @@ msgstr ""
"застосунок Coturn або налаштуйте зовнішній "
"сервер."
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "Сервер чату"
@@ -1937,7 +1951,7 @@ msgstr "Dino"
msgid "Gajim"
msgstr "Gajim"
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1988,19 +2002,19 @@ msgid ""
msgstr ""
"Під час встановлення всі інші сервери ел. пошти в системі буде видалено."
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr "Postfix/Dovecot"
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "Сервер електронної пошти"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr "Мої псевдоніми ел. пошти"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr "Керування псевдонімами для скриньки"
@@ -2036,7 +2050,7 @@ msgstr "Не може бути числом"
msgid "Aliases"
msgstr "Псевдоніми"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2120,7 +2134,7 @@ msgstr ""
"трафік Вашого {box_name}. Тримайте фаєрвол увімкненим і належно "
"налаштованим, це зменшить ризик загроз безпеці з Інтернету."
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "Фаєрвол"
@@ -2224,7 +2238,7 @@ msgstr "Налаштування завершено!"
#: plinth/modules/first_boot/templates/firstboot_complete.html:14
#, python-format
msgid "Without any apps, your %(box_name)s cannot do very much."
-msgstr "Без застосунків Ваш %(box_name)s не зможе багато зробити."
+msgstr "Без застосунків Ваш %(box_name)s багато не зробить."
#: plinth/modules/first_boot/templates/firstboot_complete.html:21
msgid "Install Apps"
@@ -2273,15 +2287,15 @@ msgstr ""
"Щоб дізнатися більше про те, як користуватися Git відвідайте навчання Git."
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr "Доступ до читання-запису репозиторіїв Git"
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr "Gitweb"
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr "Просте розміщення Git"
@@ -2378,54 +2392,54 @@ msgstr "Видалити Git-репозиторій %(name)s"
msgid "Delete this repository permanently?"
msgstr "Видалити цей репозиторій безповоротно?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "Репозиторій створено."
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "Помилка відбулася під час створення репозиторію."
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "Репозиторій змінено."
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "Змінити репозиторій"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "Документація"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "Посібник"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "Отримати підтримку"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr "Надіслати відгук"
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "Співпрацювати"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "Про FreedomBox"
@@ -2530,6 +2544,41 @@ msgstr ""
msgid "Learn more..."
msgstr "Дізнатися більше..."
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr "Як я можу допомогти?"
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr "Показати проблеми"
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr "Пакунки, які були вилучені з Debian testing"
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr "Пакунки, яких нема в Debian testing"
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2665,16 +2714,16 @@ msgstr ""
"Будь ласка, перед надсиланням звітів про помилки вилучіть із журналів будь-"
"яку особисту інформацію чи інформацію про паролі."
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "Документація та ЧаП"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "Про {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "Посібник для {box_name}"
@@ -2706,19 +2755,19 @@ msgid ""
msgstr ""
"Перше відвідування наданого вебінтерфейсу розпочне процес налаштування."
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "Керування застосунком I2P"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr "I2P"
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "Мережа анонімності"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "Проксі I2P"
@@ -2779,15 +2828,15 @@ msgstr ""
"\"{users_url}\">налаштуваннях користувача Ви можете змінити ці права або "
"додавати нових користувачів."
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Вікі та блоґ"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "Перегляд і редагування застосунків вікі"
@@ -2825,8 +2874,8 @@ msgstr "Видалити сайт %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Оновити налаштування"
@@ -2841,32 +2890,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "Створено вікі {name}."
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "Не можливо створити вікі: {error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "Створено блоґ {name}."
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "Не можливо створити блоґ: {error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} видалено."
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "Не можливо видалити {title}: {error}"
@@ -2886,11 +2935,11 @@ msgstr ""
"Gobby, стільничний клієнт і встановіть їх. Потім запустіть Gobby, "
"виберіть «Зʼєднатися зі сервером» і введіть Вашу доменну назву {box_name}."
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr "infinoted"
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Сервер Gobby"
@@ -2911,26 +2960,26 @@ msgstr ""
"Запустіть Gobby, виберіть «Зʼєднатися зі сервером» і введіть Вашу доменну "
"назву {box_name}."
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr "Janus — це легкий сервер WebRTC."
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr "Входить проста кімната для відеоконференцій."
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr "Для використання Janus потрібен Coturn."
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr "Janus"
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
-msgstr "Сервер WebRTC"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr "Відеокімната"
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2942,7 +2991,7 @@ msgstr "Відеокімната Janus"
msgid "JavaScript license information"
msgstr "Інформація про ліцензію JavaScript"
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
@@ -2950,11 +2999,11 @@ msgstr ""
"JSXC – це вебклієнт для XMPP. Як правило, використовується зі запущеним "
"локальним сервером XMPP."
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr "JSXC"
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "Клієнт чату"
@@ -3055,6 +3104,8 @@ msgid ""
"Certificate successfully revoked for domain {domain}.This may take a few "
"moments to take effect."
msgstr ""
+"Сертифікат успішно відкликано для домена {domain}. Це може зайняти кілька "
+"хвилин, перш ніж почне діяти."
#: plinth/modules/letsencrypt/views.py:47
#, python-brace-format
@@ -3100,7 +3151,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3132,8 +3183,8 @@ msgid "FluffyChat"
msgstr "FluffyChat"
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Налаштування"
@@ -3223,12 +3274,12 @@ msgstr ""
"Будь-хто, хто має посилання на цю вікі може читати її. Лише користувачі, що "
"ввійшли можуть робити зміни вмісту."
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr "MediaWiki"
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "Вікі"
@@ -3263,7 +3314,7 @@ msgstr "Назва сайту"
#: plinth/modules/mediawiki/forms.py:42
msgid "Name of the site as displayed throughout the wiki."
-msgstr ""
+msgstr "Назва сайту, що відображається у вікі."
#: plinth/modules/mediawiki/forms.py:46
msgid "Enable public registrations"
@@ -3301,39 +3352,39 @@ msgstr ""
"Оберіть типову шкурку для Вашого встановлення MediaWiki. Користувачі мають "
"можливість вибирати бажану шкурку."
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "Пароль оновлено"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr "Не вдалося оновити пароль. Оберіть сильніший пароль"
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "Публічні реєстрації дозволено"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "Публічні реєстрації вимкнено"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "Приватний режим дозволено"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "Приватний режим вимкнено"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "Типову шкурку змінено"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr "Доменну назву оновлено"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr "Назву сайту оновлено"
@@ -3350,11 +3401,11 @@ msgstr ""
"портом (30000). Щоб підʼєднатися до сервера потрібено клієнт Minetest."
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr "Minetest"
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "Блокова пісочниця"
@@ -3404,7 +3455,7 @@ msgstr ""
msgid "Address"
msgstr "Адреса"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3415,15 +3466,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr "Сервер потокового медія"
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr "MiniDLNA"
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "Простий сервер медія"
@@ -3478,11 +3529,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr "Mumble"
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "Голосовий чат"
@@ -3508,7 +3559,7 @@ msgstr ""
#: plinth/modules/mumble/forms.py:48
msgid "Set the name for the root channel"
-msgstr ""
+msgstr "Вкажіть назву кореневого каналу"
#: plinth/modules/mumble/forms.py:52
msgid ""
@@ -3524,17 +3575,17 @@ msgstr "Mumblefly"
msgid "Mumla"
msgstr "Mumla"
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "Пароль суперкористувача успішно оновлено."
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr "Долучення пароля змінено"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
-msgstr ""
+msgstr "Змінено назву кореневого каналу."
#: plinth/modules/names/__init__.py:22
#, python-brace-format
@@ -3565,7 +3616,7 @@ msgstr "Захищена оболонка"
msgid "Services"
msgstr "Сервіси"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
@@ -3573,7 +3624,7 @@ msgstr ""
"Налаштування мережевих пристроїв. Зʼєднання з Інтернетом через Ethernet, Wi-"
"Fi або PPPoE. Ділитися цим зʼєднанням з іншими пристроями в мережі."
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
@@ -3581,15 +3632,10 @@ msgstr ""
"Пристрої, що адмініструються іншими способами, можуть бути недоступними для "
"налаштування тут."
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "Мережі"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "Використання DNSSEC на IPv{kind}"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "Тип зʼєднання"
@@ -3861,7 +3907,7 @@ msgid ""
"connectivity. If you have a public IP address but are unsure if it changes "
"over time or not, it is safer to choose this option."
msgstr ""
-"Я маю публічну IP-адресу, яка час від часу змінюватися
Це означає, що пристрої в Інтернеті можуть звʼязуватися з Вами, коли Ви "
"підключені до Інтернету. Кожного разу, коли Ви підʼєднуєтеся до Інтернету, "
"Ваш постачальник Інтернет-послуг (ISP) може надавати Вам іншу IP-адресу, "
@@ -3989,7 +4035,7 @@ msgstr "Зміни"
#: plinth/modules/networks/templates/connection_show.html:43
#: plinth/modules/networks/templates/connections_list.html:61
msgid "Deactivate"
-msgstr ""
+msgstr "Деактивувати"
#: plinth/modules/networks/templates/connection_show.html:50
#: plinth/modules/networks/templates/connections_list.html:69
@@ -4052,7 +4098,7 @@ msgstr "Фізична ланка"
#: plinth/modules/networks/templates/connection_show.html:114
msgid "Link state"
-msgstr ""
+msgstr "Стан посилання"
#: plinth/modules/networks/templates/connection_show.html:117
msgid "cable is connected"
@@ -4159,7 +4205,7 @@ msgid "Create Connection"
msgstr "Створити зʼєднання"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "Видалити зʼєднання"
@@ -4179,13 +4225,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "Ethernet"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4206,7 +4252,7 @@ msgid "Computer"
msgstr "Компʼютер"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "Змінити зʼєднання"
@@ -4216,13 +4262,13 @@ msgstr "Зʼєднання"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "Мережі Wi-Fi поблизу"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "Додати зʼєднання"
@@ -4433,246 +4479,242 @@ msgstr ""
"Дізнайтеся номер моделі свого маршрутизатора і пошукайте в мережі для нього "
"посібник . Це надасть повну інструкцію для виконання цього завдання."
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "вимкнено"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "автоматично"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "вручну"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr "невідомо"
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "недоступно"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "відʼєднано"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "зʼєднання"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "потрібна автентифікація"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr "запит адреси"
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr "перевірка"
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "активовано"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "деактивовано"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "нема причини"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr "невідома помилка"
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "конфіґурація невдала"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr "Не вдалося запустити клієнт DHCP"
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr "Помилка клієнта DHCP"
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "Помилка клієнта DHCP"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "помилка сервісу спільного зʼєднання"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "пристрій вилучено"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "пристрій відʼєднано користувачем"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "Не знайдено мережі Wi-Fi"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr "друге зʼєднання невдале"
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr "виявлено дублювання IP-адрес"
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr "вибраний метод IP не підтримується"
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "загальний"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "інтерфейс TUN або TAP"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr "WireGuard"
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad-hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "інфраструктура"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "точка доступу"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "точка mesh"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "Мережеві зʼєднання"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "Не можливо показати зʼєднання: Зʼєднання не знайдено."
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "Інформація про зʼєднання"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "Не можливо змінити зʼєднання: Зʼєднання не знайдено."
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "Активовано зʼєднання {name}."
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "Не вдалося активувати зʼєднання: Зʼєднання не знайдено."
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
"Не вдалося активувати зʼєднання {name}: Не доступний підходящий пристрій."
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "Деактивовано зʼєднання {name}."
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "Не вдалося деактивувати зʼєднання: Зʼєднання не знайдено."
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "Додавання нового зʼєднання Ethernet"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "Додавання нового зʼєднання PPPoE"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "Додавання нового зʼєднання Wi-Fi"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "Зʼєднання {name} видалено."
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "Не вдалося видалити зʼєднання: Зʼєднання не знайдено."
@@ -4687,20 +4729,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "Підʼєднання до сервісів VPN"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "Віртуальна приватна мережа"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4815,15 +4857,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "Публічна видимість"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "Домен PageKite"
@@ -4931,36 +4973,38 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Вебсервер (HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
-msgstr ""
+msgstr "Сайт буде доступний за адресою http://{0}"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Вебсервер (HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "Сайт доступний за адресою https://{0}"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "Захищена оболонка (SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
+"Дивіться інструкції налаштування клієнта SSH"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr "Продуктивність"
@@ -4977,7 +5021,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "Моніторинг системи"
@@ -5053,21 +5097,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Веб-проксі"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -5100,11 +5145,11 @@ msgstr ""
"клієнти для настільного ПК "
"і мобільного."
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr "Quassel"
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "Клієнт IRC"
@@ -5134,12 +5179,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr "Radicale"
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "Календар і адресна книга"
@@ -5207,7 +5252,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "Оновлено налаштування прав доступу"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5220,7 +5265,7 @@ msgstr ""
"MIME, адресної книжки, маніпулювання теками, пошуку повідомлень та перевірки "
"правопису."
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5234,7 +5279,7 @@ msgstr ""
"imap.example.com. Для IMAP через SSL (рекомендується), поле "
"сервера виглядає як imaps://imap.example.com."
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5249,7 +5294,7 @@ msgstr ""
"Google (https://www.google.com/settings/security/lesssecureapps)."
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr "Клієнт ел. пошти"
@@ -5264,6 +5309,42 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Коли дозволено, RSS-Bridge може бути доступним для будь-якого користувача, що належить до групи feed-reader."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr "Читати і підписатися на стрічки новин"
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5295,15 +5376,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr "Доступ до приватних поширень"
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr "Samba"
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "Мережеве сховище файлів"
@@ -5427,15 +5508,15 @@ msgstr ""
"Searx може використовуватися для обходу стеження та профілювання пошуковими "
"системами."
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr "Пошук в Інтернеті"
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr "Searx"
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Вебпошук"
@@ -5524,7 +5605,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "Звіт безпеки"
@@ -5589,12 +5670,12 @@ msgstr "Ні"
msgid "Not running"
msgstr "Не запущено"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "Оновлено конфіґурацію безпеки"
@@ -5610,11 +5691,11 @@ msgstr ""
"Зауважте, що Shaarli підтримує лише одну користувацьку обліківку, яку можна "
"налаштувати під час початкового відвідування."
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "Закладки"
@@ -5644,11 +5725,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr "Проксі Socks5"
@@ -5679,7 +5760,7 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr "Метод шифрування. Має відповідати налаштуванням на сервері."
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
@@ -5688,7 +5769,7 @@ msgstr ""
"Обмін дозволяє Вам обмінюватися файлами і теками з Вашого {box_name}, через "
"Інтернет, до обраної групи користувачів."
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "Обмін"
@@ -5738,28 +5819,28 @@ msgstr "Ділянка з такою назвою вже існує."
msgid "Shares should be either public or shared with at least one group"
msgstr "Ділянка має бути спільною або публічною для щонайменше однієї групи"
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "Додати ділянку"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr "Ще нема налаштованих спільних ділянок."
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr "Шлях на диску"
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "З групами"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr "публічний доступ"
@@ -5917,7 +5998,7 @@ msgstr "Дата"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "Видалити зріз"
@@ -5965,53 +6046,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "створено вручну"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr "за часом"
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr "apt"
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "Керування зрізами"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "Створено зріз."
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "Налаштування зрізів сховища оновлено"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "Помилка дії: {0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "Видалити вибрані зрізи"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr "Зріз зараз використовується. Повторіть пізніше."
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "Відкочено до зрізу #{number}."
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "Систему потрібно перезапустити, щоб завершити відкат."
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -6023,7 +6104,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "Сервер захищеної оболонки (SSH)"
@@ -6069,7 +6150,7 @@ msgstr "автентифікація SSH із вимкненим паролем.
msgid "SSH authentication with password enabled."
msgstr "автентифікація SSH із дозволеним паролем."
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -6088,110 +6169,110 @@ msgid ""
"You can view the storage media currently in use, mount and unmount removable "
"media, expand the root partition etc."
msgstr ""
-"Цей модуль дозволяє Вам керувати медія-сховищем, яке привʼязане до "
-"{box_name}. Ви можете переглядати медія-сховище під час використання, "
-"монтувати і відмонтовувати знімні накопичувачі, розширювати розділ root тощо."
+"Цей модуль дозволяє Вам керувати сховищем даних, яке привʼязане до "
+"{box_name}. Під час використання сховище даних можна переглядати, монтувати "
+"і відмонтовувати знімні накопичувачі, розширювати розділ root тощо."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "Сховище"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} байтів"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} КБ"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} МБ"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} ҐБ"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} ТБ"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr "Операція невдала."
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr "Операцію скасовано."
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Пристрій вже відмонтований."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr "Час операції вийшов."
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr "Операція вже була скасована."
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Пристрій уже змонтовано."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Пристрій не змонтовано."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Пристрій змонтовано іншим користувачем."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
"Мало місця в розділі системи: {percent_used}% використано, {free_space} "
"вільно."
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr "Мало місця на диску"
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6327,16 +6408,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "Адміністрування програми Syncthing"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr "Syncthing"
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr "Синхронізація файлів"
@@ -6360,40 +6441,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr "Tor"
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6403,37 +6484,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr "Уведіть правильний міст у форматі: [transport] IP:ORPort [fingerprint]"
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "Дозволити Tor"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6441,22 +6518,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "Дозволити приховані сервіси Tor"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6464,18 +6541,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "Завантажувати пакунки програмного забезпечення через Tor"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6487,21 +6564,25 @@ msgstr "Tor Browser"
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "Налаштування Tor оновлюються"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "Сервіс Onion"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "Порти"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "Налаштування не змінено"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "Error updating configuration"
+msgid "Updating configuration"
+msgstr "Помилка оновлення налаштувань"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Помилка при встановлені застосунку: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6551,7 +6632,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -6583,15 +6664,11 @@ msgstr ""
"Коли використовуєте мобільний або стільничний застосунок для Tiny Tiny RSS, "
"використовуйте URL /tt-rss-app для зʼєднання."
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr "Читати і підписатися на стрічки новин"
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr "Tiny Tiny RSS"
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "Читання новинних стрічок"
@@ -6612,33 +6689,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "Оновлення ПЗ"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox оновлено"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr "Не можливо запустити оновлення дистрибутиву"
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "Оновлення дистрибутиву розпочато"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6728,6 +6805,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr "Відхилити"
@@ -6783,39 +6861,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "Дозволено оновлення дистрибутиву"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "Дозволено оновлення дистрибутиву"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "Дозволено автоматичні оновлення"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "Вимкнено автоматичні оновлення"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "Дозволено оновлення дистрибутиву"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "Вимкнено оновлення дистрибутиву"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "Процес оновлення розпочато."
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "Не вдалося розпочати оновлення."
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr "Оновлення частих можливостей активовано."
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "Дозволено оновлення дистрибутиву"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6839,15 +6941,15 @@ msgstr ""
"користувачі з групи admin можуть змінювати застосунки або системні "
"налаштування."
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "Користувачі і групи"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr "Доступ до всіх сервісів і налаштувань системи"
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "Перевірка запису LDAP \"{search_item}\""
@@ -7427,12 +7529,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "Вебсайт і блоґ"
@@ -7479,11 +7581,11 @@ msgstr ""
"Для додаткових користувачів потрібно створити облікові записи і в "
"{box_name}, і в Zoph з тим же іменем користувача."
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr "Zoph"
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr "Упорядник світлин"
@@ -7519,37 +7621,135 @@ msgstr "PPPoE"
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Помилка параметру hostname: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr "Пакунок {package_name} має останню версію ({latest_version})"
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "Помилка під час встановлення"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Помилка під час резервного копіювання"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "встановлення"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "завантаження"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "зміна медія"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "файл конфіґурації: {file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Installing app"
+msgstr "Встановити застосунки"
+
+#: plinth/setup.py:42
+#, fuzzy
+#| msgid "Updating..."
+msgid "Updating app"
+msgstr "Оновлення..."
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Помилка при встановленні застосунку: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Помилка при встановленні застосунку: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Помилка при встановлені застосунку: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Помилка при встановлені застосунку: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Застосунок встановлено."
+
+#: plinth/setup.py:87
+#, fuzzy
+#| msgid "Last update"
+msgid "App updated"
+msgstr "Востаннє оновлено"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Install Apps"
+msgid "Uninstalling app"
+msgstr "Встановити застосунки"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Помилка при встановленні застосунку: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Помилка при встановлені застосунку: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Застосунок встановлено."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr "403 Недозволено"
@@ -7600,7 +7800,7 @@ msgstr ""
msgid "Installation"
msgstr "Встановлення"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "Сервіс %(service_name)s не запущено."
@@ -7865,6 +8065,10 @@ msgstr "Від портів маршрутизатора/WAN"
msgid "To %(box_name)s Ports"
msgstr "До портів %(box_name)s"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Застосунок встановлено."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "Встановити цей застосунок?"
@@ -7874,22 +8078,14 @@ msgid "This application needs an update. Update now?"
msgstr "Цей застосунок потребує оновлення. Оновити зараз?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-"Інше встановлення або оновлення вже запущено. Будь ласка, зачекайте кілька "
-"хвилин і спробуйте ще раз."
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "Цей застосунок поки що не доступний у Вашому дистрибутиві."
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr "Перевірити знову"
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
@@ -7899,36 +8095,103 @@ msgstr ""
"конфліктують зі встановленням цієї програми. Наступні пакунки видаляться, "
"якщо Ви продовжите:"
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "Встановити"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Оновити"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "Виконання передінсталяційних операцій"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "Встановити"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "Виконання післяінсталяційних операцій"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Зміни користувача %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "Встановлюється %(package_names)s: %(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "%(percentage)s%% завершено"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "Налаштування не змінено"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "Gujarati"
+#~ msgid "Network Connections"
+#~ msgstr "Мережеві зʼєднання"
+
+#~ msgid "Enable Tor"
+#~ msgstr "Дозволити Tor"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Налаштування Tor оновлюються"
+
+#~ msgid "Error during installation"
+#~ msgstr "Помилка під час встановлення"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "Використання DNSSEC на IPv{kind}"
+
+#~ msgid ""
+#~ "Another installation or upgrade is already running. Please wait for a few "
+#~ "moments before trying again."
+#~ msgstr ""
+#~ "Інше встановлення або оновлення вже запущено. Будь ласка, зачекайте "
+#~ "кілька хвилин і спробуйте ще раз."
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "Виконання передінсталяційних операцій"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "Виконання післяінсталяційних операцій"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "Встановлюється %(package_names)s: %(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "%(percentage)s%% завершено"
+
+#~ 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."
+
+#~ msgid "Access"
+#~ msgstr "Доступ"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "Cockpit працюватиме лише, якщо входити через наступні URL-адреси."
+
+#~ msgid "WebRTC server"
+#~ msgstr "Сервер WebRTC"
+
#~ msgid "Server URL"
#~ msgstr "URL сервера"
@@ -8203,9 +8466,6 @@ msgstr "Gujarati"
#~ msgid "Postfix domain name config"
#~ msgstr "Налаштування доменної назви Postfix"
-#~ msgid "Error updating configuration"
-#~ msgstr "Помилка оновлення налаштувань"
-
#~ msgid "The alias was taken"
#~ msgstr "Аліяс взято"
diff --git a/plinth/locale/vi/LC_MESSAGES/django.po b/plinth/locale/vi/LC_MESSAGES/django.po
index e5172d2fe..3ffb45a45 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-07-28 08:34+0000\n"
"Last-Translator: bruh \n"
"Language-Team: Vietnamese any user on {box_name} "
@@ -1191,32 +1190,16 @@ msgstr ""
"Nó có thể được truy cập bởi bất kỳ người dùng nào"
"a> trên {box_name} thuộc về nhóm admin."
-#: plinth/modules/cockpit/__init__.py:40
-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 yêu cầu bạn truy cập nó qua một tên miền. Nó sẽ không hoạt động khi "
-"được truy cập vào bằng một địa chỉ IP với tư cách là một phần của URL."
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "Quản trị máy chủ"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "Truy cập"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Cockpit sẽ chỉ hoạt động khi được truy cập bằng các URL sau."
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1231,7 +1214,7 @@ msgstr "Thiết lập chung"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "Thiết lập"
@@ -1325,43 +1308,65 @@ msgstr "Hiện các ứng dụng và tính năng nâng cao"
msgid "Show apps and features that require more technical knowledge."
msgstr "Hiện các ứng dụng và tính năng yêu cầu nhiều kiến thức kĩ thuật hơn."
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "Lỗi khi đặt tên máy chủ: {exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "Đã đặt tên máy chủ"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "Lỗi khi đặt tên miền: {exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "Đã đặt tên miền"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "Lỗi khi đặt trang chủ của máy chủ web: {exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "Đã đặt trang chủ của máy chủ web"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "Lỗi khi thay đổi chế độ nâng cao: {exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "Đang hiện các ứng dụng và tính năng nâng cao"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "Đang ẩn các ứng dụng và tính năng nâng cao"
@@ -1389,11 +1394,11 @@ msgstr ""
"\"{e_url}\">ejabberd cần phải được thiết lập với các chi tiết được cung "
"cấp ở đây."
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "Trợ giúp cho VoIP"
@@ -1417,11 +1422,11 @@ msgstr ""
"Máy chủ thời gian mạng là một chương trình giữ cho thời gian hệ thống được "
"đồng bộ với các máy chủ trên Internet."
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "Ngày & Giờ"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "Đã đồng bộ thời gian đến máy chủ NTP"
@@ -1462,17 +1467,17 @@ msgstr ""
"Mật khẩu mặc định là 'deluge', nhưng bạn nên đăng nhập và đổi nó ngay lập "
"tức sau khi bật dịch vụ này."
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "Tải các tệp xuống bằng các ứng dụng BitTorrent"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "Ứng dụng khách trên web cho BitTorrent"
@@ -1493,48 +1498,48 @@ msgstr ""
"xác nhận rằng các ứng dụng và dịch vụ đang hoạt động như mong đợi."
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "Chẩn đoán"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "đã qua"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "đã trượt"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "lỗi"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "cảnh báo"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr "Bạn nên tắt một số ứng dụng để sử dụng ít bộ nhớ hơn."
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "Bạn không nên cài đặt bất kỳ ứng dụng mới nào trên hệ thống này."
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1543,7 +1548,7 @@ msgstr ""
"Hệ thống còn ít bộ nhớ: đã sử dụng {percent_used}%, còn trống "
"{memory_available} {memory_available_unit}. {advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "Ít bộ nhớ"
@@ -1593,7 +1598,7 @@ msgstr "Kiểm tra"
msgid "Result"
msgstr "Kết quả"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "Kiểm tra chẩn đoán"
@@ -1645,11 +1650,11 @@ msgstr ""
"phí dựa trên URL cập nhật tại freedns.afraid.org."
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "Ứng dụng khách DNS động"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "Tên miền động"
@@ -1781,13 +1786,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1869,12 +1875,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1969,7 +1975,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -2014,23 +2020,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Domain Name Server"
msgid "Email Server"
msgstr "Máy chủ tên miền"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Manage Libraries"
msgid "My Email Aliases"
msgstr "Quản lý thư viện"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage Aliases for Mailbox"
@@ -2070,7 +2076,7 @@ msgstr ""
msgid "Aliases"
msgstr "Quản lý thư viện"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -2157,7 +2163,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2294,15 +2300,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2398,54 +2404,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr ""
@@ -2548,6 +2554,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2654,16 +2695,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2688,19 +2729,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2753,15 +2794,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2799,8 +2840,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "Cập nhật thiết lập"
@@ -2815,32 +2856,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2857,11 +2898,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2880,28 +2921,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "Máy chủ web"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2913,17 +2952,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -3067,7 +3106,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -3099,8 +3138,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "Thiết lập"
@@ -3171,12 +3210,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3239,41 +3278,41 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "Đã đặt tên miền"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3288,11 +3327,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3337,7 +3376,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3348,15 +3387,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3409,11 +3448,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3455,17 +3494,17 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Password added."
msgid "Join password changed"
msgstr "Đã thêm mật khẩu."
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3498,27 +3537,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -4038,7 +4072,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -4058,13 +4092,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -4085,7 +4119,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -4095,13 +4129,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4284,245 +4318,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4537,20 +4567,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4658,15 +4688,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4772,36 +4802,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4818,7 +4848,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4890,21 +4920,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4928,11 +4959,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4957,12 +4988,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -5025,7 +5056,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5033,7 +5064,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5042,7 +5073,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5052,7 +5083,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -5067,6 +5098,45 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "It can be accessed by any user on {box_name} "
+#| "belonging to the admin group."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"Nó có thể được truy cập bởi bất kỳ người dùng nào"
+"a> trên {box_name} thuộc về nhóm admin."
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5098,15 +5168,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -5226,15 +5296,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5315,7 +5385,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5380,12 +5450,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5399,11 +5469,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5433,11 +5503,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5466,14 +5536,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5521,28 +5591,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5682,7 +5752,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5730,53 +5800,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5788,7 +5858,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5829,7 +5899,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5852,104 +5922,104 @@ msgstr ""
"của bạn. Bạn có thể xem phương tiện lưu trữ hiện đang sử dụng, gắn và bỏ gắn "
"phương tiện có thể rút ra, mở rộng phân vùng root, v.v."
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "Thiết bị này đã đang bỏ gắn rồi."
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr "Đang thử bỏ gắn một thiết bị đang bận."
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "Thiết bị này đã được gắn rồi."
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "Thiết bị này chưa được gắn."
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr "Thiết bị này được một người dùng khác gắn."
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6083,16 +6153,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6112,40 +6182,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6155,37 +6225,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6193,22 +6259,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6216,18 +6282,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6239,21 +6305,25 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr ""
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "Đã xảy ra lỗi trong khi thiết lập."
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "Lỗi khi cài đặt ứng dụng: {error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6302,7 +6372,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6332,15 +6402,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6361,33 +6427,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6465,6 +6531,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6520,39 +6587,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6568,15 +6653,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -7141,12 +7226,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -7181,11 +7266,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7219,37 +7304,129 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "Lỗi khi đặt tên máy chủ: {exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr ""
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "Lỗi trong khi sao lưu"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "Lỗi khi cài đặt ứng dụng: {string} {details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "Lỗi khi cài đặt ứng dụng: {string} {details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "Lỗi khi cài đặt ứng dụng: {error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "Lỗi khi cài đặt ứng dụng: {error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "Ứng dụng đã được cài đặt."
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Error installing application: {error}"
+msgid "Uninstalling app"
+msgstr "Lỗi khi cài đặt ứng dụng: {error}"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "Lỗi khi cài đặt ứng dụng: {string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "Lỗi khi cài đặt ứng dụng: {error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "Ứng dụng đã được cài đặt."
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7292,7 +7469,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7537,6 +7714,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "Ứng dụng đã được cài đặt."
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7546,56 +7727,82 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "Cập nhật"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Application installed."
+msgid "Uninstall"
+msgstr "Ứng dụng đã được cài đặt."
+
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "App: %(app_name)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "Ứng dụng: %(app_name)s"
+
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
msgstr ""
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
msgstr ""
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+#: plinth/views.py:221
+msgid "Setting unchanged"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr ""
+#~ 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 yêu cầu bạn truy cập nó qua một tên miền. Nó sẽ không hoạt động "
+#~ "khi được truy cập vào bằng một địa chỉ IP với tư cách là một phần của URL."
+
+#~ msgid "Access"
+#~ msgstr "Truy cập"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "Cockpit sẽ chỉ hoạt động khi được truy cập bằng các URL sau."
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "Máy chủ web"
+
#, fuzzy
#~| msgid "Enable DNSSEC"
#~ msgid "Enable"
@@ -7720,11 +7927,6 @@ msgstr ""
#~ msgid "Postfix domain name config"
#~ msgstr "Lỗi khi đặt tên miền: {exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "Đã xảy ra lỗi trong khi thiết lập."
-
#, fuzzy
#~| msgid "Enable scheduled backups"
#~ msgid "Enable selected"
diff --git a/plinth/locale/zh_Hans/LC_MESSAGES/django.po b/plinth/locale/zh_Hans/LC_MESSAGES/django.po
index 9f39725d5..0eccffd9b 100644
--- a/plinth/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/plinth/locale/zh_Hans/LC_MESSAGES/django.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Plinth\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-04 21:22-0400\n"
-"PO-Revision-Date: 2022-06-22 17:14+0000\n"
-"Last-Translator: Eric \n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
+"PO-Revision-Date: 2022-08-24 03:19+0000\n"
+"Last-Translator: Hugel \n"
"Language-Team: Chinese (Simplified) \n"
"Language: zh_Hans\n"
@@ -17,13 +17,13 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.13.1-dev\n"
+"X-Generator: Weblate 4.14-dev\n"
#: doc/dev/_templates/layout.html:11
msgid "Page source"
msgstr "来源页面"
-#: plinth/context_processors.py:23 plinth/views.py:84
+#: plinth/context_processors.py:23 plinth/views.py:83
msgid "FreedomBox"
msgstr "FreedomBox"
@@ -53,62 +53,62 @@ msgid "Cannot connect to {host}:{port}"
msgstr "不能连接到主机 {host}:{port}"
#: plinth/forms.py:36
+msgid "Backup app before uninstall"
+msgstr ""
+
+#: plinth/forms.py:37
+msgid "Restoring from the backup will restore app data."
+msgstr ""
+
+#: plinth/forms.py:39
+#, fuzzy
+#| msgid "Repository not found"
+msgid "Repository to backup to"
+msgstr "找不到存储库"
+
+#: plinth/forms.py:56
msgid "Select a domain name to be used with this application"
msgstr "选择要与此应用程序一起使用的域名"
-#: plinth/forms.py:38
+#: plinth/forms.py:58
msgid ""
"Warning! The application may not work properly if domain name is changed "
"later."
msgstr "警告!如果以后更改了域名, 应用程序可能无法正常工作。"
-#: plinth/forms.py:52 plinth/modules/coturn/forms.py:30
+#: plinth/forms.py:72 plinth/modules/coturn/forms.py:30
#: plinth/modules/mumble/forms.py:21
msgid "TLS domain"
msgstr "TLS 域"
-#: plinth/forms.py:54 plinth/modules/coturn/forms.py:32
+#: plinth/forms.py:74 plinth/modules/coturn/forms.py:32
#: plinth/modules/mumble/forms.py:23
msgid ""
"Select a domain to use TLS with. If the list is empty, please configure at "
"least one domain with certificates."
msgstr "选择一个要使用TLS的域。如果列表中是空的,请至少配置一个带有证书的域。"
-#: plinth/forms.py:64
+#: plinth/forms.py:84
msgid "Language"
msgstr "语言"
-#: plinth/forms.py:65
+#: plinth/forms.py:85
msgid "Language to use for presenting this web interface"
msgstr "此 web 管理界面的语言"
-#: plinth/forms.py:72
+#: plinth/forms.py:92
msgid "Use the language preference set in the browser"
msgstr "使用浏览器中设置的语言首选项"
-#: plinth/middleware.py:38 plinth/templates/setup.html:18
-msgid "Application installed."
-msgstr "应用程序已安装。"
-
-#: plinth/middleware.py:43
-#, python-brace-format
-msgid "Error installing application: {string} {details}"
-msgstr "安装应用程序出错:{string}{details}"
-
-#: plinth/middleware.py:47
-#, python-brace-format
-msgid "Error installing application: {error}"
-msgstr "安装应用程序出错:{error}"
-
-#: plinth/modules/apache/__init__.py:33
+#: plinth/modules/apache/__init__.py:31
msgid "Apache HTTP Server"
msgstr "Apache HTTP 服务"
-#: plinth/modules/apache/__init__.py:41
+#: plinth/modules/apache/__init__.py:39
msgid "Web Server"
msgstr "Web 服务器"
-#: plinth/modules/apache/__init__.py:47
+#: plinth/modules/apache/__init__.py:45
#, python-brace-format
msgid "{box_name} Web Interface (Plinth)"
msgstr "{box_name} Web 界面(Plinth)"
@@ -138,11 +138,11 @@ msgstr ""
"在内部网络上运行。可以禁用以提高安全性,尤其是当连接到一个充满敌意的本地网"
"络。"
-#: plinth/modules/avahi/__init__.py:51
+#: plinth/modules/avahi/__init__.py:49
msgid "Service Discovery"
msgstr "服务发现"
-#: plinth/modules/avahi/__init__.py:64
+#: plinth/modules/avahi/__init__.py:62
msgid "Local Network Domain"
msgstr "本地网络领域"
@@ -150,29 +150,29 @@ msgstr "本地网络领域"
msgid "Backups allows creating and managing backup archives."
msgstr "备份允许创建和管理备份存档。"
-#: plinth/modules/backups/__init__.py:50 plinth/modules/backups/__init__.py:202
-#: plinth/modules/backups/__init__.py:247
+#: plinth/modules/backups/__init__.py:48 plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:244
msgid "Backups"
msgstr "备份"
-#: plinth/modules/backups/__init__.py:199
+#: plinth/modules/backups/__init__.py:196
msgid ""
"Enable an automatic backup schedule for data safety. Prefer an encrypted "
"remote backup location or an extra attached disk."
msgstr "为数据安全启用自动备份计划,最好使用加密的远程备份位置或附加的磁盘。"
-#: plinth/modules/backups/__init__.py:205
+#: plinth/modules/backups/__init__.py:202
msgid "Enable a Backup Schedule"
msgstr "启用备份计划"
-#: plinth/modules/backups/__init__.py:209
-#: plinth/modules/backups/__init__.py:256
-#: plinth/modules/storage/__init__.py:329
+#: plinth/modules/backups/__init__.py:206
+#: plinth/modules/backups/__init__.py:253
+#: plinth/modules/storage/__init__.py:326
#, python-brace-format
msgid "Go to {app_name}"
msgstr "转到 {app_name}"
-#: plinth/modules/backups/__init__.py:244
+#: plinth/modules/backups/__init__.py:241
#, python-brace-format
msgid ""
"A scheduled backup failed. Past {error_count} attempts for backup did not "
@@ -180,7 +180,7 @@ msgid ""
msgstr ""
"定时备份失败,尝试{error_count}次备份未成功。最后的错误是:{error_message}"
-#: plinth/modules/backups/__init__.py:252
+#: plinth/modules/backups/__init__.py:249
msgid "Error During Backup"
msgstr "备份时出错"
@@ -261,7 +261,7 @@ msgstr "存储库"
#: plinth/modules/ikiwiki/forms.py:15
#: plinth/modules/networks/templates/connection_show.html:71
#: plinth/modules/samba/templates/samba.html:66
-#: plinth/modules/sharing/templates/sharing.html:33
+#: plinth/modules/sharing/templates/sharing.html:32
msgid "Name"
msgstr "名称"
@@ -418,7 +418,7 @@ msgid "{box_name} storage"
msgstr "{box_name} 存储"
#: plinth/modules/backups/templates/backups.html:17
-#: plinth/modules/backups/views.py:111
+#: plinth/modules/backups/views.py:113
msgid "Create a new backup"
msgstr "创建新备份"
@@ -469,7 +469,7 @@ msgid "Create Location"
msgstr "创建存储位置"
#: plinth/modules/backups/templates/backups_add_repository.html:19
-#: plinth/modules/gitweb/views.py:50
+#: plinth/modules/gitweb/views.py:52
msgid "Create Repository"
msgstr "创建存储库"
@@ -525,7 +525,7 @@ msgstr "下载"
#: plinth/modules/backups/templates/backups_repository.html:87
#: plinth/modules/backups/templates/backups_restore.html:27
-#: plinth/modules/backups/views.py:206
+#: plinth/modules/backups/views.py:208
msgid "Restore"
msgstr "恢复"
@@ -622,99 +622,99 @@ msgstr ""
msgid "Verify Host"
msgstr "核实本地计算机"
-#: plinth/modules/backups/views.py:55
+#: plinth/modules/backups/views.py:57
msgid "Backup schedule updated."
msgstr "备份计划已更新。"
-#: plinth/modules/backups/views.py:74
+#: plinth/modules/backups/views.py:76
msgid "Schedule Backups"
msgstr "计划备份"
-#: plinth/modules/backups/views.py:106
+#: plinth/modules/backups/views.py:108
msgid "Archive created."
msgstr "文档已创建。"
-#: plinth/modules/backups/views.py:134
+#: plinth/modules/backups/views.py:136
msgid "Delete Archive"
msgstr "删除文档"
-#: plinth/modules/backups/views.py:146
+#: plinth/modules/backups/views.py:148
msgid "Archive deleted."
msgstr "归档已删除。"
-#: plinth/modules/backups/views.py:159
+#: plinth/modules/backups/views.py:161
msgid "Upload and restore a backup"
msgstr "上传并且储存一个备份"
-#: plinth/modules/backups/views.py:194
+#: plinth/modules/backups/views.py:196
msgid "Restored files from backup."
msgstr "从备份中恢复了文件。"
-#: plinth/modules/backups/views.py:222
+#: plinth/modules/backups/views.py:224
msgid "No backup file found."
msgstr "没有找到备份文件。"
-#: plinth/modules/backups/views.py:230
+#: plinth/modules/backups/views.py:232
msgid "Restore from uploaded file"
msgstr "从已上传的文件中恢复"
-#: plinth/modules/backups/views.py:289
+#: plinth/modules/backups/views.py:291
msgid "No additional disks available to add a repository."
msgstr "没有可增加到信息库的额外可用磁盘。"
-#: plinth/modules/backups/views.py:297
+#: plinth/modules/backups/views.py:299
msgid "Create backup repository"
msgstr "创建备份存储库"
-#: plinth/modules/backups/views.py:324
+#: plinth/modules/backups/views.py:326
msgid "Create remote backup repository"
msgstr "创建远程备份存储库"
-#: plinth/modules/backups/views.py:344
+#: plinth/modules/backups/views.py:346
msgid "Added new remote SSH repository."
msgstr "已添加新的远程 SSH 存储库。"
-#: plinth/modules/backups/views.py:366
+#: plinth/modules/backups/views.py:368
msgid "Verify SSH hostkey"
msgstr "验证 SSH hostkey"
-#: plinth/modules/backups/views.py:392
+#: plinth/modules/backups/views.py:394
msgid "SSH host already verified."
msgstr "SSH 主机已经验证过了。"
-#: plinth/modules/backups/views.py:402
+#: plinth/modules/backups/views.py:404
msgid "SSH host verified."
msgstr "SSH 主机已验证。"
-#: plinth/modules/backups/views.py:417
+#: plinth/modules/backups/views.py:419
msgid "SSH host public key could not be verified."
msgstr "SSH 主机的公钥无法被验证。"
-#: plinth/modules/backups/views.py:419
+#: plinth/modules/backups/views.py:421
msgid "Authentication to remote server failed."
msgstr "远程服务器认证失败。"
-#: plinth/modules/backups/views.py:421
+#: plinth/modules/backups/views.py:423
msgid "Error establishing connection to server: {}"
msgstr "启用到服务器的连接时错误:{}"
-#: plinth/modules/backups/views.py:432
+#: plinth/modules/backups/views.py:434
msgid "Repository removed."
msgstr "储存库被移除。"
-#: plinth/modules/backups/views.py:446
+#: plinth/modules/backups/views.py:448
msgid "Remove Repository"
msgstr "移除存储"
-#: plinth/modules/backups/views.py:455
+#: plinth/modules/backups/views.py:457
msgid "Repository removed. Backups were not deleted."
msgstr "存储库被删除,备份并没有被删除。"
-#: plinth/modules/backups/views.py:465
+#: plinth/modules/backups/views.py:467
msgid "Unmounting failed!"
msgstr "卸载失败!"
-#: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484
+#: plinth/modules/backups/views.py:482 plinth/modules/backups/views.py:486
msgid "Mounting failed"
msgstr "安装失败"
@@ -749,39 +749,39 @@ msgstr ""
"你也可以创建具有相同权限的多个密码,并将它们分配给不同的人或团体。这将使你以"
"后可以通过从列表中删除某个人或团体的密码来撤销其访问权。"
-#: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47
+#: plinth/modules/bepasty/__init__.py:36 plinth/modules/bepasty/__init__.py:45
msgid "Read a file, if a web link to the file is available"
msgstr "读取文,如果文件的 Web 链接可用"
-#: plinth/modules/bepasty/__init__.py:39
+#: plinth/modules/bepasty/__init__.py:37
msgid "Create or upload files"
msgstr "创建或上传文件"
-#: plinth/modules/bepasty/__init__.py:40
+#: plinth/modules/bepasty/__init__.py:38
msgid "List all files and their web links"
msgstr "列出所有文件及其 Web 链接"
-#: plinth/modules/bepasty/__init__.py:41
+#: plinth/modules/bepasty/__init__.py:39
msgid "Delete files"
msgstr "删除文件"
-#: plinth/modules/bepasty/__init__.py:42
+#: plinth/modules/bepasty/__init__.py:40
msgid "Administer files: lock/unlock files"
msgstr "管理文件:锁定/解锁文件"
-#: plinth/modules/bepasty/__init__.py:46
+#: plinth/modules/bepasty/__init__.py:44
msgid "None, password is always required"
msgstr "无,总是需要密码"
-#: plinth/modules/bepasty/__init__.py:48
+#: plinth/modules/bepasty/__init__.py:46
msgid "List and read all files"
msgstr "列出并阅读所有文件"
-#: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6
+#: plinth/modules/bepasty/__init__.py:61 plinth/modules/bepasty/manifest.py:6
msgid "bepasty"
msgstr "bepasty"
-#: plinth/modules/bepasty/__init__.py:65
+#: plinth/modules/bepasty/__init__.py:63
msgid "File & Snippet Sharing"
msgstr "文件和片段共享"
@@ -872,16 +872,15 @@ msgstr "删除"
msgid "Admin"
msgstr "管理员"
-#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38
-#: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:132
-#: plinth/modules/tor/views.py:159 plinth/modules/zoph/views.py:69
+#: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:40
+#: plinth/modules/searx/views.py:51 plinth/modules/tor/views.py:75
+#: plinth/modules/zoph/views.py:71
msgid "Configuration updated."
msgstr "配置已更新。"
#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48
-#: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41
-#: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:161
-#: plinth/modules/zoph/views.py:72
+#: plinth/modules/gitweb/views.py:119 plinth/modules/searx/views.py:43
+#: plinth/modules/searx/views.py:54 plinth/modules/zoph/views.py:74
msgid "An error occurred during configuration."
msgstr "在配置过程中出错。"
@@ -915,11 +914,11 @@ msgstr ""
"目前,在 {box_name} 上,BIND 只用于解决本地网络其它机器的 DNS 查询。它也不适"
"用于从 {box_name} 分享来的互联网连接。"
-#: plinth/modules/bind/__init__.py:76
+#: plinth/modules/bind/__init__.py:74
msgid "BIND"
msgstr "BIND"
-#: plinth/modules/bind/__init__.py:77
+#: plinth/modules/bind/__init__.py:75
msgid "Domain Name Server"
msgstr "域名服务器"
@@ -971,12 +970,12 @@ msgstr "IP 地址"
msgid "Refresh IP address and domains"
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:78
-#: plinth/modules/ejabberd/views.py:96 plinth/modules/email/views.py:45
-#: plinth/modules/matrixsynapse/views.py:124
-#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:35
-#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28
+#: plinth/modules/bind/views.py:71 plinth/modules/config/views.py:99
+#: plinth/modules/coturn/views.py:41 plinth/modules/deluge/views.py:42
+#: plinth/modules/dynamicdns/views.py:78 plinth/modules/ejabberd/views.py:96
+#: plinth/modules/email/views.py:45 plinth/modules/matrixsynapse/views.py:126
+#: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:37
+#: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:29
#: plinth/modules/roundcube/views.py:32 plinth/modules/shadowsocks/views.py:59
#: plinth/modules/transmission/views.py:43 plinth/modules/ttrss/views.py:26
#: plinth/modules/wordpress/views.py:37
@@ -1014,15 +1013,15 @@ msgstr ""
"只有属于calibre组的用户才能够访问该应用程序。所有有权限的用户都可以"
"使用所有的图书馆。"
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "使用 calibre 电子书库"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "电子书库"
@@ -1082,25 +1081,25 @@ msgstr "转到库%(library)s"
msgid "Delete library %(library)s"
msgstr "删除站点 %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "创建了库。"
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "在创建库时发生了一个错误。"
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} 已删除。"
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "不能删除 {name}:{error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1112,7 +1111,7 @@ msgstr ""
"个 {box_name} 上,许多通常不会需要的高级功能也可被控制。您也可以使用基于网页"
"的终端来进行控制台操作。"
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1122,7 +1121,7 @@ msgstr ""
"Cockpit可以用来执行高级存储操作,如磁盘分区和RAID管理。它还可以用来打开自定义"
"防火墙端口和高级网络,如绑定、桥接和VLAN管理。"
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1130,32 +1129,16 @@ msgid ""
msgstr ""
"它可以由属于管理组的{box_name}上的任何用户访问。"
-#: plinth/modules/cockpit/__init__.py:40
-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:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "服务器管理"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "访问"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Cockpit只有在使用以下URL访问时才能工作。"
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1168,7 +1151,7 @@ msgstr "常规配置"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "配置"
@@ -1257,43 +1240,65 @@ msgstr "展示先进的应用和特点"
msgid "Show apps and features that require more technical knowledge."
msgstr "展示需要更多专业知识的应用和特点。"
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr "系统级日志记录"
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr "由于保护隐私,所以禁用了日志记录"
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr "为了提高性能,一直保留在内存中,直到重新启动"
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr "写入磁盘,用于调试"
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr "日志记录了访问系统的人员,以及各种服务的调试信息"
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "设置主机名错误:{exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "主机名设置"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "设置域名错误:{exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "域名集"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "设置主机名错误:{exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "网页服务器主页已设置"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "更改为高级模式时错误:{exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "展现先进的应用和特征"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "隐藏先进的应用和特征"
@@ -1317,11 +1322,11 @@ msgstr ""
"它并不意味着可以被用户直接使用。诸如Matrix Synapse或"
"ejabberd等服务器需要用这里提供的细节进行配置。"
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "网络电话助手"
@@ -1343,11 +1348,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr "网络时间服务是与 Internet 上的服务器同步系统时间的一个程序。"
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "日期与时间"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "时间同步到NTP服务器"
@@ -1384,17 +1389,17 @@ msgid ""
"immediately after enabling this service."
msgstr "默认密码是“deluge”,但是你需要在启用此服务以后立刻登录并修改它。"
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "使用BitTorrent应用程序下载文件"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "启用 Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "BitTorrent 网页客户端"
@@ -1414,48 +1419,48 @@ msgstr ""
"系统诊断将运行测试程序检查您的系统以确认应用程序和服务正在按预期方式运行。"
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr "诊断程序"
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr "通过了"
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr "失败"
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr "错误"
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr "警告"
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr "MiB"
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr "GiB"
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr "你应该禁用一些应用程序以减少内存的使用。"
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr "你不应该在这个系统上安装任何新的应用程序。"
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
@@ -1464,7 +1469,7 @@ msgstr ""
"系统内存不足:已使用 {percent_used},{memory_available} "
"{memory_available_unit}可用。{advice_message}"
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr "低内存"
@@ -1514,7 +1519,7 @@ msgstr "测试"
msgid "Result"
msgstr "结果"
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr "诊断测试"
@@ -1556,11 +1561,11 @@ msgstr ""
"服务,或您可以在freedns.afraid.org 找到免费更新网址服务。"
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr "动态 DNS 客户端"
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr "动态域名"
@@ -1679,13 +1684,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1765,12 +1771,12 @@ msgstr ""
"ejabberd需要一个STUN/TURN服务器用于音频/视频呼叫。安装Coturn应用程序或配置一个外部服务器。"
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr "ejabberd"
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr "聊天服务器"
@@ -1868,7 +1874,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1916,19 +1922,19 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
msgid "Email Server"
msgstr "邮件服务器"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
msgid "My Email Aliases"
msgstr "我的邮箱别名"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
msgid "Manage Aliases for Mailbox"
msgstr "管理邮箱别名"
@@ -1962,7 +1968,7 @@ msgstr ""
msgid "Aliases"
msgstr "别名"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr "Roundcube"
@@ -2045,7 +2051,7 @@ msgstr ""
"防火墙控制你的 {box_name} 上的进出网络流量。启用并正确配置防火墙上可以减少来"
"自互联网的安全威胁。"
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr "防火墙"
@@ -2188,15 +2194,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2292,54 +2298,54 @@ msgstr "删除 Git 存储库 %(name)s "
msgid "Delete this repository permanently?"
msgstr "永久删除此存储库?"
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr "已创建储存库。"
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr "创建存储库时发生错误。"
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr "已编辑储存库。"
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr "编辑存储库"
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr "文档"
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr "手册"
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr "获取帮助"
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr "贡献"
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "关于"
@@ -2455,6 +2461,41 @@ msgstr ""
msgid "Learn more..."
msgstr "了解更多……"
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2574,16 +2615,16 @@ msgid ""
"before submitting the bug report."
msgstr "提交日志报告前,请从日志中删除任何密码和其他个人信息。"
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr "文档和 FAQ"
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr "关于 {box_name}"
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr "{box_name} 手册"
@@ -2610,19 +2651,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr "管理 I2P 应用程序"
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr "匿名网络"
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr "I2P 代理"
@@ -2677,15 +2718,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr "ikiwiki"
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr "Wiki 和博客"
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr "查看和编辑 wiki 应用程序"
@@ -2723,8 +2764,8 @@ msgstr "删除站点 %(site)s"
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr "更新安装程序"
@@ -2740,32 +2781,32 @@ msgid ""
msgstr ""
"此操作将删除所有文章、 网页和评论包括修订历史记录。 永久删除此 wiki 或博客吗?"
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr "创建 wiki {name}。"
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr "不能创建 wiki:{error}"
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr "已创建的博客 {name}。"
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr "不能创建博客:{error}"
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr "{title} 已被删除。"
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr "无法删除 {title}: {error}"
@@ -2784,11 +2825,11 @@ msgstr ""
"要使用它, 下载 Gobby 的桌面客户端并"
"安装。然后启动 Gobby 并选择“连接到服务器”并书入你的 {box_name} 域名即可。"
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr "Gobby 服务器"
@@ -2807,26 +2848,26 @@ msgid ""
"domain name."
msgstr "启动 Gobby ,选择“连接到服务器”并输入你的 {box_name} 域名。"
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-msgid "WebRTC server"
-msgstr "WebRTC 服务器"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2838,17 +2879,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr "JSXC 是一个 XMPP 网页客户端,主要用于连接本地 XMPP 服务器的连接。"
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr "聊天客户端"
@@ -3000,7 +3041,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr "Matrix Synapse"
@@ -3032,8 +3073,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr "配置"
@@ -3067,7 +3108,7 @@ msgid ""
"the initial setup is currently not supported."
msgstr ""
"Matrix 服务器域名已设置为 %(domain_name)s 。用户 ID 看起来像是这样 "
-"@username:%(domain_name)s。尚不支持在初始设置后更改域名."
+"@username:%(domain_name)s。尚不支持在初始设置后更改域名。"
#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:22
msgid ""
@@ -3106,12 +3147,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr "共笔文档"
@@ -3172,39 +3213,39 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr "密码已更新"
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr "公开注册已启用"
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr "已禁用公开注册"
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr "已启用私密模式"
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr "已禁用私密模式"
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr "默认皮肤已更改"
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
msgid "Domain name updated"
msgstr "域名已更新"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
msgid "Site name updated"
msgstr "站点名已更新"
@@ -3220,11 +3261,11 @@ msgstr ""
"(30000)上运行 Minetest 服务器。要连接到服务器,需要 Minetest 客户端。"
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr "方块沙盒"
@@ -3269,7 +3310,7 @@ msgstr "禁用后,玩家不能死或受到任何伤害。"
msgid "Address"
msgstr "地址"
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3280,15 +3321,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr "简单媒体服务器"
@@ -3343,11 +3384,11 @@ msgstr ""
"您可以使用常规端口 64738 连接到您的 Mumble 服务器。您可以从桌面和移动设备连"
"接 Mumble 客户端。"
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr "语音聊天"
@@ -3389,15 +3430,15 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr "超级用户密码更新成功。"
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
msgid "Join password changed"
msgstr "加入密码已更改"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3430,27 +3471,22 @@ msgstr "安全 Shell"
msgid "Services"
msgstr "服务"
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr "网络"
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr "在 IPv{kind} 上使用 DNSSEC"
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr "连接类型"
@@ -3984,7 +4020,7 @@ msgid "Create Connection"
msgstr "创建连接"
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr "删除连接"
@@ -4004,13 +4040,13 @@ msgstr "间距"
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr "以太网"
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr "Wi-Fi"
@@ -4031,7 +4067,7 @@ msgid "Computer"
msgstr "计算机"
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr "编辑连接"
@@ -4041,13 +4077,13 @@ msgstr "连接"
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr "附近的无线网络"
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr "添加连接"
@@ -4230,245 +4266,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr "已禁用"
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr "自动"
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr "手动"
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr "共享"
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr "不受管理的"
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr "不可用"
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr "已断开连接"
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr "正在准备"
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr "连接"
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr "需要身份验证"
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr "已激活"
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr "停用"
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr "没有原因"
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr "设备现在处于受管状态"
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr "设备现在处于不受管状态"
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr "配置失败"
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr "DHCP 客户端失败"
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr "共享连接服务失败"
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr "设备被移除"
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr "用户断开了设备连接"
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr "未找到 Wi-Fi 网络"
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr "通用"
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr "TUN 或 TAP 接口"
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr "ad-hoc"
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr "基础架构"
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr "访问点"
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr "mesh 网络点"
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr "网络连接"
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr "不能显示连接: 找不到连接。"
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr "连接信息"
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr "不能编辑连接: 找不到连接。"
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr "这种类型的连接尚没有引入。"
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr "激活的连接 {name}。"
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr "未能激活连接: 找不到连接。"
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr "未能激活连接 {name}: 没有合适的设备是可用。"
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr "停用的连接 {name}。"
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr "无法取消激活连接: 找不到连接。"
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr "添加新的常规连接"
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr "添加新的以太网连接"
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr "添加新的 PPPoE 连接"
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr "添加新的 Wi-Fi 连接"
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr "连接 {name} 已删除。"
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr "删除连接失败: 找不到连接。"
@@ -4487,20 +4519,20 @@ msgstr ""
"供的私人/内部服务。您还可以通过 {box_name} 访问互联网的其他部分,以增加安全性"
"和匿名性。"
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr "连接到 VPN 服务"
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr "OpenVPN"
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr "虚拟专用网络"
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4617,15 +4649,15 @@ msgstr ""
"使用任何 pagekite 服务提供商,例如pagekite."
"net。将来,您或许可以使用好友的 {box_name} 来使用此服务。"
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr "PageKite"
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr "公开可见性"
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr "PageKite 域名"
@@ -4735,29 +4767,29 @@ msgstr ""
"警告: 您的 PageKite 前端服务器可能不支持您在此处定义的所有协议/端"
"口组合。例如,已知443以外的端口上的HTTPS会导致问题。"
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr "Web 服务器(HTTP)"
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr "网站可从 http://{0} 访问"
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr "Web 服务器(HTTPS)"
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr "网站可从 https://{0} 访问"
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr "安全 Shell(SSH)"
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
@@ -4766,7 +4798,7 @@ msgstr ""
"SshOverPageKite/\"> 说明"
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4783,7 +4815,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr "系统监控"
@@ -4858,25 +4890,26 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-"将浏览器代理设置修改为使用 {box_name} 的主机名(或 IP 地址)和端口 8118,这样"
-"就可以使用 Privoxy。使用 Privoxy 时,您可以在 http://config.privoxy.org/ 或 http://p.p"
-"a> 中查看其配置详细信息和文档。"
+"将浏览器代理设置修改为使用 {box_name} 的主机名(或 IP 地址)和端口 8118。仅允"
+"许来自本地网络 IP 地址的连接。使用 Privoxy 时,您可以在 http://config.privoxy.org/ 或 http://p.p 中查看其配置详细信息和文档。"
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr "Privoxy"
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr "Web 代理"
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr "在 tcp{kind} 上通过 {proxy} 访问 {url}"
@@ -4907,11 +4940,11 @@ msgstr ""
"quassel-irc.org/downloads\">桌面和移动设备客户端连接到 Quassel 的核心。"
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr "IRC 客户端"
@@ -4940,12 +4973,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr "日历和通讯录"
@@ -5010,7 +5043,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr "访问权配置已更新"
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -5021,7 +5054,7 @@ msgstr ""
"户界面。它提供您需要的从电子邮件客户端、MIME支持、地址簿、文件夹操作、消息搜"
"索到拼写检查的完整功能。"
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -5033,7 +5066,7 @@ msgstr ""
"IMAP 服务器域名,像是 imap.example.com。对于 IMAP over SSL (推"
"荐),应该填入类似 imaps://imap.example.com 的地址。"
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -5047,7 +5080,7 @@ 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/__init__.py:50
msgid "Email Client"
msgstr "邮件客户端"
@@ -5062,6 +5095,42 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, python-brace-format
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"启用后,属于该订阅源阅读器群的 任何用户均可访问"
+"RSS-Bridge。"
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr "RSS-Bridge"
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -5093,15 +5162,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr "网络文件存储"
@@ -5221,15 +5290,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr "Web 搜索"
@@ -5312,7 +5381,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr "安全报告"
@@ -5377,12 +5446,12 @@ msgstr ""
msgid "Not running"
msgstr "未运行"
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr "设置限制访问错误:{exception}"
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr "安全配置已更新"
@@ -5396,11 +5465,11 @@ msgid ""
"to setup on the initial visit."
msgstr "注意,Shaarli 只支持单用户帐户,您需要在初次访问时设置该帐户。"
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr "Shaarli"
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr "书签"
@@ -5430,11 +5499,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5463,14 +5532,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr "共享"
@@ -5518,28 +5587,28 @@ msgstr "已存在同名共享。"
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr "添加共享"
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr "共享方式"
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr "群组"
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5681,7 +5750,7 @@ msgstr "日期"
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr "删除快照"
@@ -5731,53 +5800,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr "回滚到快照 #%(number)s"
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr "已手动创建"
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr "管理快照"
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr "创建快照。"
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr "存储快照配置已更新"
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr "操作错误:{0} [{1}] [{2}]"
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr "已删除选定的快照"
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr "回滚到快照 #{number}。"
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr "系统需要重启以完成完全回滚。"
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr "回滚到快照"
@@ -5789,7 +5858,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr "安全 Shell(SSH)服务器"
@@ -5830,7 +5899,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr "启用密码的 SSH 身份验证。"
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5850,104 +5919,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr "存储"
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr "{disk_size:.1f} 字节"
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr "{disk_size:.1f} KiB"
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr "{disk_size:.1f} MiB"
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr "{disk_size:.1f} GiB"
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr "{disk_size:.1f} TiB"
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr "已经在卸载设备。"
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr "已挂载此设备。"
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr "此设备未挂载。"
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -6085,16 +6154,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr "管理 Syncthing 程序"
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -6118,40 +6187,40 @@ msgid ""
"TCP port 9050."
msgstr "你的 {box_name} 有一个 Tor SOCKS 端口在 TCP 端口 9050 上对内网可用。"
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr "Tor 洋葱服务"
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr "Tor 网桥中继"
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr "Tor 中继端口可用"
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr "已注册 Obfs3 传输"
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr "已注册 Obfs4 传输"
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr "在 tcp{kind} 上通过 Tor 访问 {url}"
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr "确认使用 Tor 通过 tcp{kind} 访问 {url}"
@@ -6161,37 +6230,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr "启用 Tor"
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr "启用 Tor 中继"
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6201,11 +6266,11 @@ msgstr ""
"启用后,您的 {box_name} 将运行 Tor 中继,并向 Tor 网络分配带宽。如果您的上传"
"和下载带宽超过 2 MB/s,请执行此操作。"
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr "启用 Tor 网桥中继"
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
@@ -6214,11 +6279,11 @@ msgstr ""
"当启用时,中继信息在 Tor 桥数据库中发布,而不是公共 Tor 中继数据库,使得更难"
"以检查此节点。这有助于其他人绕过审查。"
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr "启用 Tor 隐藏服务"
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6228,11 +6293,11 @@ msgstr ""
"隐藏的服务将允许 {box_name} 提供所选服务(如维基或聊天),而不暴露其位置。如"
"果对匿名性要求很高,暂时不要使用它。"
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr "通过 Tor 下载软件包"
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
@@ -6241,7 +6306,7 @@ msgstr ""
"当启用时,软件将会下载 Tor 网络的安装和升级。这在软件下载过程中添加了一定程度"
"的隐私和安全。"
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6253,21 +6318,25 @@ msgstr "洋葱浏览器"
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr "Tor 配置已更新"
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr "洋葱服务"
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr "端口"
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr "设置未改变"
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "在配置过程中出错。"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error updating app: {error}"
+msgid "Error configuring app: {error}"
+msgstr "更新应用出错:{error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6313,7 +6382,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr "Transmission"
@@ -6342,15 +6411,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr "新闻源阅读器"
@@ -6371,33 +6436,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr "软件更新"
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr "FreedomBox 已更新"
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr "已启动分发更新"
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6480,6 +6545,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6537,39 +6603,63 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test Distribution Upgrade"
+msgstr "已启用分发升级"
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Test distribution upgrade now"
+msgstr "已启用分发升级"
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr "配置无人参与升级时错误:{error}"
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr "已启用自动升级"
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr "已禁用自动升级"
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr "已启用分发升级"
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr "已禁用分发升级"
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr "升级过程开始。"
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr "开始升级失败。"
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+#, fuzzy
+#| msgid "Distribution upgrade enabled"
+msgid "Starting distribution upgrade test."
+msgstr "已启用分发升级"
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6585,15 +6675,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr "用户和组"
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr "请检查 LDAP 条目“{search_item}”"
@@ -7165,12 +7255,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr "WordPress"
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr "网站和博客"
@@ -7205,11 +7295,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7243,37 +7333,122 @@ msgstr "PPPoE"
msgid "Generic"
msgstr "通用"
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, python-brace-format
+msgid "Error: {name}: {exception_message}"
+msgstr "错误: {name}:{exception_message}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr "已完成:{name}"
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr "安装时错误"
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "备份时出错"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr "安装"
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr "下载中"
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr "媒体改变"
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr "配置文件:{file}"
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr "安装应用中"
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, python-brace-format
+msgid "Error installing app: {string} {details}"
+msgstr "安装应用出错:{string} {details}"
+
+#: plinth/setup.py:72
+#, python-brace-format
+msgid "Error updating app: {string} {details}"
+msgstr "更新应用出错:{string} {details}"
+
+#: plinth/setup.py:78
+#, python-brace-format
+msgid "Error installing app: {error}"
+msgstr "安装应用出错:{error}"
+
+#: plinth/setup.py:81
+#, python-brace-format
+msgid "Error updating app: {error}"
+msgstr "更新应用出错:{error}"
+
+#: plinth/setup.py:85
+msgid "App installed."
+msgstr "应用已安装。"
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr "应用已更新"
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Installing app"
+msgid "Uninstalling app"
+msgstr "安装应用中"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "安装应用出错:{string} {details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing app: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "安装应用出错:{error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "App installed."
+msgid "App uninstalled."
+msgstr "应用已安装。"
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr "更新软件包中"
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7323,7 +7498,7 @@ msgstr ""
msgid "Installation"
msgstr "安装"
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr "服务 %(service_name)s 未在运行。"
@@ -7573,6 +7748,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr "到 %(box_name)s 端口"
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "应用程序已安装。"
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr "安装此应用程序?"
@@ -7582,56 +7761,110 @@ msgid "This application needs an update. Update now?"
msgstr "此应用程序需要一次更新。立即更新?"
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr "此应用程序目前在您的发行版中不可用。"
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr "安装"
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr "更新"
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr "执行安装前操作"
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Install"
+msgid "Uninstall"
+msgstr "安装"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr "执行安装后操作"
+#: plinth/templates/uninstall.html:11
+#, fuzzy, python-format
+#| msgid "Edit User %(username)s"
+msgid "Uninstall App %(app_name)s?"
+msgstr "编辑用户 %(username)s"
-#: plinth/templates/setup.html:94
-#, python-format
-msgid "Installing %(package_names)s: %(status)s"
-msgstr "正在安装 %(package_names)s:%(status)s"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
-msgstr "已完成 %(percentage)s%%"
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr "设置未改变"
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
+msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr "古吉拉特语"
+#~ msgid "Network Connections"
+#~ msgstr "网络连接"
+
+#~ msgid "Enable Tor"
+#~ msgstr "启用 Tor"
+
+#~ msgid "Tor configuration is being updated"
+#~ msgstr "Tor 配置已更新"
+
+#~ msgid "Error during installation"
+#~ msgstr "安装时错误"
+
+#, python-brace-format
+#~ msgid "Using DNSSEC on IPv{kind}"
+#~ msgstr "在 IPv{kind} 上使用 DNSSEC"
+
+#~ msgid "Performing pre-install operation"
+#~ msgstr "执行安装前操作"
+
+#~ msgid "Performing post-install operation"
+#~ msgstr "执行安装后操作"
+
+#, python-format
+#~ msgid "Installing %(package_names)s: %(status)s"
+#~ msgstr "正在安装 %(package_names)s:%(status)s"
+
+#, python-format
+#~ msgid "%(percentage)s%% complete"
+#~ msgstr "已完成 %(percentage)s%%"
+
+#~ 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的一部分访问时,它将"
+#~ "无法工作。"
+
+#~ msgid "Access"
+#~ msgstr "访问"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "Cockpit只有在使用以下URL访问时才能工作。"
+
+#~ msgid "WebRTC server"
+#~ msgstr "WebRTC 服务器"
+
#~ msgid "Server URL"
#~ msgstr "服务器 URL"
@@ -7938,11 +8171,6 @@ msgstr "古吉拉特语"
#~ msgid "Postfix domain name config"
#~ msgstr "设置域名错误:{exception}"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "在配置过程中出错。"
-
#, fuzzy
#~| msgid "Disabled"
#~ msgid "Disable selected"
@@ -8370,9 +8598,6 @@ msgstr "古吉拉特语"
#~ msgid "Service enabled: {name}"
#~ msgstr "启用的服务:{name}"
-#~ msgid "Service disabled: {name}"
-#~ msgstr "已禁用的服务:{name}"
-
#~ msgid "PageKite Account"
#~ msgstr "PageKite 帐户"
@@ -8645,9 +8870,6 @@ msgstr "古吉拉特语"
#~ msgid "Automatic Upgrades"
#~ msgstr "自动升级"
-#~ msgid "Upgrade Packages"
-#~ msgstr "升级软件包"
-
#, fuzzy
#~| msgid "Create User"
#~ msgid "Create archive"
@@ -8906,9 +9128,6 @@ msgstr "古吉拉特语"
#~ msgid "IP Check URL"
#~ msgstr "IP 检查 URL"
-#~ msgid "Bridge"
-#~ msgstr "网桥"
-
#~ msgid "Enable network time"
#~ msgstr "启用网络时间"
diff --git a/plinth/locale/zh_Hant/LC_MESSAGES/django.po b/plinth/locale/zh_Hant/LC_MESSAGES/django.po
index c09692759..5186f0c8b 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: 2022-07-04 21:22-0400\n"
+"POT-Creation-Date: 2022-08-29 21:10-0400\n"
"PO-Revision-Date: 2021-12-23 12:50+0000\n"
"Last-Translator: pesder \n"
"Language-Team: Chinese (Traditional) calibre 群組的使用者可以存取這個 app。每個能存取的使用者都"
"可以使用所有的圖書館。"
-#: plinth/modules/calibre/__init__.py:57
+#: plinth/modules/calibre/__init__.py:55
msgid "Use calibre e-book libraries"
msgstr "使用 calibre 電子書庫"
-#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6
+#: plinth/modules/calibre/__init__.py:58 plinth/modules/calibre/manifest.py:6
msgid "calibre"
msgstr "calibre"
-#: plinth/modules/calibre/__init__.py:61
+#: plinth/modules/calibre/__init__.py:59
msgid "E-book Library"
msgstr "電子書圖書館"
@@ -1090,25 +1089,25 @@ msgstr "前往至圖書館 %(library)s"
msgid "Delete library %(library)s"
msgstr "刪除圖書館 %(library)s"
-#: plinth/modules/calibre/views.py:39
+#: plinth/modules/calibre/views.py:41
msgid "Library created."
msgstr "圖書已建立。"
-#: plinth/modules/calibre/views.py:50
+#: plinth/modules/calibre/views.py:52
msgid "An error occurred while creating the library."
msgstr "建立圖書館時發生錯誤。"
-#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
+#: plinth/modules/calibre/views.py:66 plinth/modules/gitweb/views.py:141
#, python-brace-format
msgid "{name} deleted."
msgstr "{name} 已刪除。"
-#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
+#: plinth/modules/calibre/views.py:70 plinth/modules/gitweb/views.py:145
#, python-brace-format
msgid "Could not delete {name}: {error}"
msgstr "無法刪除 {name}: {error}"
-#: plinth/modules/cockpit/__init__.py:25
+#: plinth/modules/cockpit/__init__.py:22
#, python-brace-format
msgid ""
"Cockpit is a server manager that makes it easy to administer GNU/Linux "
@@ -1120,7 +1119,7 @@ msgstr ""
"服器。在 {box_name} 上,控制器可以用於許多不常見的進階功能。另外也提供網頁式"
"終端機可以進行主控台操作。"
-#: plinth/modules/cockpit/__init__.py:31
+#: plinth/modules/cockpit/__init__.py:28
msgid ""
"Cockpit can be used to perform advanced storage operations such as disk "
"partitioning and RAID management. It can also be used for opening custom "
@@ -1130,7 +1129,7 @@ msgstr ""
"Cockpit 可以用來進行進階的儲存裝置操作,像是磁碟分𨜌和 RAID 管理。它也可以用"
"來開啟自訂防火牆連接埠與進階的網路功能,像是綁定、橋接和 VLAN 管理。"
-#: plinth/modules/cockpit/__init__.py:36
+#: plinth/modules/cockpit/__init__.py:33
#, python-brace-format
msgid ""
"It can be accessed by any user on {box_name} "
@@ -1139,32 +1138,16 @@ msgstr ""
"它可以由 {box_name} 上屬於 admin 群組的 任何使用者"
"a>存取。"
-#: plinth/modules/cockpit/__init__.py:40
-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 需要您透過網域名稱存取它。當 URL 使用 IP 位址為其中一部分時會無法使"
-"用。"
-
-#: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9
+#: plinth/modules/cockpit/__init__.py:52 plinth/modules/cockpit/manifest.py:9
#: plinth/modules/performance/manifest.py:9
msgid "Cockpit"
msgstr "Cockpit"
-#: plinth/modules/cockpit/__init__.py:64
+#: plinth/modules/cockpit/__init__.py:54
msgid "Server Administration"
msgstr "伺服器管理"
-#: plinth/modules/cockpit/templates/cockpit.html:11
-msgid "Access"
-msgstr "存取"
-
-#: plinth/modules/cockpit/templates/cockpit.html:14
-msgid "Cockpit will only work when accessed using the following URLs."
-msgstr "Cockpit 只有在使用下列 URL 存取時才能存取。"
-
-#: plinth/modules/config/__init__.py:23
+#: plinth/modules/config/__init__.py:25
msgid ""
"Here you can set some general configuration options like hostname, domain "
"name, webserver home page etc."
@@ -1179,7 +1162,7 @@ msgstr "一般配置"
#: plinth/modules/config/__init__.py:58
#: plinth/modules/names/templates/names.html:30
#: plinth/modules/names/templates/names.html:44
-#: plinth/modules/snapshot/views.py:35 plinth/templates/index.html:38
+#: plinth/modules/snapshot/views.py:37 plinth/templates/index.html:38
msgid "Configure"
msgstr "配置"
@@ -1267,43 +1250,65 @@ msgstr "顯示進階的 app 與功能"
msgid "Show apps and features that require more technical knowledge."
msgstr "顯示需要更多技術知識的 app 與功能。"
-#: plinth/modules/config/views.py:46
+#: plinth/modules/config/forms.py:104
+msgid "System-wide logging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:105
+msgid "Disable logging, for privacy"
+msgstr ""
+
+#: plinth/modules/config/forms.py:107
+msgid "Keep some in memory until a restart, for performance"
+msgstr ""
+
+#: plinth/modules/config/forms.py:110
+msgid "Write to disk, useful for debugging"
+msgstr ""
+
+#: plinth/modules/config/forms.py:112
+msgid ""
+"Logs contain information about who accessed the system and debug information "
+"from various services"
+msgstr ""
+
+#: plinth/modules/config/views.py:50
#, python-brace-format
msgid "Error setting hostname: {exception}"
msgstr "設定主機名稱時發生錯誤︰{exception}"
-#: plinth/modules/config/views.py:49
+#: plinth/modules/config/views.py:53
msgid "Hostname set"
msgstr "主機名稱設定"
-#: plinth/modules/config/views.py:58
+#: plinth/modules/config/views.py:62
#, python-brace-format
msgid "Error setting domain name: {exception}"
msgstr "設定網域名稱時發生錯誤︰{exception}"
-#: plinth/modules/config/views.py:61
+#: plinth/modules/config/views.py:65
msgid "Domain name set"
msgstr "網域名稱設定"
-#: plinth/modules/config/views.py:69
+#: plinth/modules/config/views.py:73
#, python-brace-format
msgid "Error setting webserver home page: {exception}"
msgstr "設定網頁伺服器首頁時發生錯誤︰{exception}"
-#: plinth/modules/config/views.py:72
+#: plinth/modules/config/views.py:76
msgid "Webserver home page set"
msgstr "網頁伺服器首頁設定"
-#: plinth/modules/config/views.py:80
+#: plinth/modules/config/views.py:84
#, python-brace-format
msgid "Error changing advanced mode: {exception}"
msgstr "改變進階模式時發生錯誤︰{exception}"
-#: plinth/modules/config/views.py:85
+#: plinth/modules/config/views.py:89
msgid "Showing advanced apps and features"
msgstr "顯示進階 app 與功能"
-#: plinth/modules/config/views.py:88
+#: plinth/modules/config/views.py:92
msgid "Hiding advanced apps and features"
msgstr "隱藏進階 app 與功能"
@@ -1328,11 +1333,11 @@ msgstr ""
"這不是讓使用者直接使用的。伺服器如 Matrix Synapse "
"或 ejabberd 都需要以在這裡提供的資料來設定。"
-#: plinth/modules/coturn/__init__.py:57
+#: plinth/modules/coturn/__init__.py:56
msgid "Coturn"
msgstr "Coturn"
-#: plinth/modules/coturn/__init__.py:58
+#: plinth/modules/coturn/__init__.py:57
msgid "VoIP Helper"
msgstr "VoIP 協助程式"
@@ -1354,11 +1359,11 @@ msgid ""
"synchronization with servers on the Internet."
msgstr "網路時刻伺服器是一種透過網際網路與伺服器同步以維護系統時刻的程式。"
-#: plinth/modules/datetime/__init__.py:68
+#: plinth/modules/datetime/__init__.py:66
msgid "Date & Time"
msgstr "日期 & 時刻"
-#: plinth/modules/datetime/__init__.py:117
+#: plinth/modules/datetime/__init__.py:115
msgid "Time synchronized to NTP server"
msgstr "時刻與 NTP 伺服器同步"
@@ -1395,17 +1400,17 @@ msgid ""
"immediately after enabling this service."
msgstr "預設的密碼是「deluge」,但啟用這個服務後您應該登入並立即改變它。"
-#: plinth/modules/deluge/__init__.py:44
-#: plinth/modules/transmission/__init__.py:64
+#: plinth/modules/deluge/__init__.py:42
+#: plinth/modules/transmission/__init__.py:62
msgid "Download files using BitTorrent applications"
msgstr "使用 BitTorrent 應用程式下載檔案"
-#: plinth/modules/deluge/__init__.py:48 plinth/modules/deluge/manifest.py:6
+#: plinth/modules/deluge/__init__.py:46 plinth/modules/deluge/manifest.py:6
msgid "Deluge"
msgstr "Deluge"
-#: plinth/modules/deluge/__init__.py:50
-#: plinth/modules/transmission/__init__.py:70
+#: plinth/modules/deluge/__init__.py:48
+#: plinth/modules/transmission/__init__.py:68
msgid "BitTorrent Web Client"
msgstr "BitTorrent 網頁客戶端"
@@ -1424,55 +1429,55 @@ msgid ""
msgstr ""
#: plinth/modules/diagnostics/__init__.py:50
-#: plinth/modules/diagnostics/__init__.py:236
+#: plinth/modules/diagnostics/__init__.py:241
msgid "Diagnostics"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:97
+#: plinth/modules/diagnostics/__init__.py:102
msgid "passed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:98
-#: plinth/modules/networks/views.py:49
+#: plinth/modules/diagnostics/__init__.py:103
+#: plinth/modules/networks/views.py:50
msgid "failed"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:99
+#: plinth/modules/diagnostics/__init__.py:104
msgid "error"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:100
+#: plinth/modules/diagnostics/__init__.py:105
msgid "warning"
msgstr ""
#. Translators: This is the unit of computer storage Mebibyte similar to
#. Megabyte.
-#: plinth/modules/diagnostics/__init__.py:202
+#: plinth/modules/diagnostics/__init__.py:207
msgid "MiB"
msgstr ""
#. Translators: This is the unit of computer storage Gibibyte similar to
#. Gigabyte.
-#: plinth/modules/diagnostics/__init__.py:207
+#: plinth/modules/diagnostics/__init__.py:212
msgid "GiB"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:214
+#: plinth/modules/diagnostics/__init__.py:219
msgid "You should disable some apps to reduce memory usage."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:219
+#: plinth/modules/diagnostics/__init__.py:224
msgid "You should not install any new apps on this system."
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:231
+#: plinth/modules/diagnostics/__init__.py:236
#, no-python-format, python-brace-format
msgid ""
"System is low on memory: {percent_used}% used, {memory_available} "
"{memory_available_unit} free. {advice_message}"
msgstr ""
-#: plinth/modules/diagnostics/__init__.py:233
+#: plinth/modules/diagnostics/__init__.py:238
msgid "Low Memory"
msgstr ""
@@ -1519,7 +1524,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: plinth/modules/diagnostics/views.py:57
+#: plinth/modules/diagnostics/views.py:68
msgid "Diagnostic Test"
msgstr ""
@@ -1550,11 +1555,11 @@ msgid ""
"href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org."
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:64
+#: plinth/modules/dynamicdns/__init__.py:62
msgid "Dynamic DNS Client"
msgstr ""
-#: plinth/modules/dynamicdns/__init__.py:77
+#: plinth/modules/dynamicdns/__init__.py:75
msgid "Dynamic Domain Name"
msgstr ""
@@ -1664,13 +1669,14 @@ msgid "This field is required."
msgstr ""
#: plinth/modules/dynamicdns/templates/dynamicdns.html:11
+#: plinth/modules/ejabberd/templates/ejabberd.html:13
#: plinth/modules/firewall/templates/firewall.html:16
#: plinth/modules/firewall/templates/firewall.html:36
#: plinth/modules/letsencrypt/templates/letsencrypt.html:17
+#: plinth/modules/matrixsynapse/templates/matrix-synapse.html:12
#: plinth/modules/networks/templates/connection_show.html:254
#: plinth/modules/samba/templates/samba.html:67
-#: plinth/modules/tor/templates/tor.html:12
-#: plinth/modules/tor/templates/tor.html:27
+#: plinth/modules/tor/templates/tor.html:19
#: plinth/modules/upgrades/templates/upgrades_configure.html:14
#: plinth/modules/wireguard/templates/wireguard_show_client.html:48
#: plinth/modules/wireguard/templates/wireguard_show_server.html:47
@@ -1750,12 +1756,12 @@ msgid ""
"href={coturn_url}>Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:65
+#: plinth/modules/ejabberd/__init__.py:63
msgid "ejabberd"
msgstr ""
-#: plinth/modules/ejabberd/__init__.py:66
-#: plinth/modules/matrixsynapse/__init__.py:71
+#: plinth/modules/ejabberd/__init__.py:64
+#: plinth/modules/matrixsynapse/__init__.py:69
msgid "Chat Server"
msgstr ""
@@ -1850,7 +1856,7 @@ msgstr ""
msgid "Gajim"
msgstr ""
-#: plinth/modules/ejabberd/templates/ejabberd.html:19
+#: plinth/modules/ejabberd/templates/ejabberd.html:18
#, python-format
msgid ""
"Your XMPP server domain is set to %(domainname)s. User IDs will look "
@@ -1895,23 +1901,23 @@ msgid ""
"uninstalled."
msgstr ""
-#: plinth/modules/email/__init__.py:62
+#: plinth/modules/email/__init__.py:61
msgid "Postfix/Dovecot"
msgstr ""
-#: plinth/modules/email/__init__.py:64
+#: plinth/modules/email/__init__.py:63
#, fuzzy
#| msgid "Domain Name Server"
msgid "Email Server"
msgstr "域名服務器 DNS"
-#: plinth/modules/email/__init__.py:84
+#: plinth/modules/email/__init__.py:83
#, fuzzy
#| msgid "Manage Libraries"
msgid "My Email Aliases"
msgstr "管理圖書館"
-#: plinth/modules/email/__init__.py:85
+#: plinth/modules/email/__init__.py:84
#, fuzzy
#| msgid "Manage Libraries"
msgid "Manage Aliases for Mailbox"
@@ -1949,7 +1955,7 @@ msgstr ""
msgid "Aliases"
msgstr "管理圖書館"
-#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54
+#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:49
#: plinth/modules/roundcube/manifest.py:6
msgid "Roundcube"
msgstr ""
@@ -2036,7 +2042,7 @@ msgid ""
"configured reduces risk of security threat from the Internet."
msgstr ""
-#: plinth/modules/firewall/__init__.py:62
+#: plinth/modules/firewall/__init__.py:60
msgid "Firewall"
msgstr ""
@@ -2173,15 +2179,15 @@ msgid ""
"gittutorial\">Git tutorial."
msgstr ""
-#: plinth/modules/gitweb/__init__.py:51
+#: plinth/modules/gitweb/__init__.py:49
msgid "Read-write access to Git repositories"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10
+#: plinth/modules/gitweb/__init__.py:54 plinth/modules/gitweb/manifest.py:10
msgid "Gitweb"
msgstr ""
-#: plinth/modules/gitweb/__init__.py:57
+#: plinth/modules/gitweb/__init__.py:55
msgid "Simple Git Hosting"
msgstr ""
@@ -2277,54 +2283,54 @@ msgstr ""
msgid "Delete this repository permanently?"
msgstr ""
-#: plinth/modules/gitweb/views.py:45
+#: plinth/modules/gitweb/views.py:47
msgid "Repository created."
msgstr ""
-#: plinth/modules/gitweb/views.py:69
+#: plinth/modules/gitweb/views.py:71
msgid "An error occurred while creating the repository."
msgstr ""
-#: plinth/modules/gitweb/views.py:84
+#: plinth/modules/gitweb/views.py:86
msgid "Repository edited."
msgstr ""
-#: plinth/modules/gitweb/views.py:89
+#: plinth/modules/gitweb/views.py:91
msgid "Edit repository"
msgstr ""
-#: plinth/modules/help/__init__.py:35
+#: plinth/modules/help/__init__.py:33
msgid "Documentation"
msgstr ""
-#: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20
+#: plinth/modules/help/__init__.py:37 plinth/templates/help-menu.html:20
#: plinth/templates/help-menu.html:21 plinth/templates/index.html:120
msgctxt "User guide"
msgid "Manual"
msgstr ""
-#: plinth/modules/help/__init__.py:43
+#: plinth/modules/help/__init__.py:41
#: plinth/modules/help/templates/help_support.html:9
-#: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27
+#: plinth/modules/help/views.py:90 plinth/templates/help-menu.html:27
#: plinth/templates/help-menu.html:28
msgid "Get Support"
msgstr ""
-#: plinth/modules/help/__init__.py:47
+#: plinth/modules/help/__init__.py:45
#: plinth/modules/help/templates/help_feedback.html:9
-#: plinth/modules/help/views.py:37 plinth/templates/help-menu.html:33
+#: plinth/modules/help/views.py:84 plinth/templates/help-menu.html:33
#: plinth/templates/help-menu.html:34
msgid "Submit Feedback"
msgstr ""
-#: plinth/modules/help/__init__.py:51
+#: plinth/modules/help/__init__.py:49
#: plinth/modules/help/templates/help_contribute.html:9
-#: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39
+#: plinth/modules/help/views.py:73 plinth/templates/help-menu.html:39
#: plinth/templates/help-menu.html:40
msgid "Contribute"
msgstr ""
-#: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46
+#: plinth/modules/help/__init__.py:53 plinth/templates/help-menu.html:46
#: plinth/templates/help-menu.html:47
msgid "About"
msgstr "關於"
@@ -2427,6 +2433,41 @@ msgstr ""
msgid "Learn more..."
msgstr ""
+#: plinth/modules/help/templates/help_contribute.html:46
+msgid "How can I help?"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:48
+msgid ""
+"Below is a list of opportunities for contributing to Debian. It has been "
+"filtered to only show packages that are installed on this system."
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:59
+msgid "Show issues"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:63
+msgid "Packages that will be removed from Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:69
+#: plinth/modules/help/templates/help_contribute.html:85
+msgid "source package:"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:80
+msgid "Packages that are not in Debian testing"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:92
+msgid "Good first issues for beginners"
+msgstr ""
+
+#: plinth/modules/help/templates/help_contribute.html:104
+msgid "Issues for which the package maintainer has requested help"
+msgstr ""
+
#: plinth/modules/help/templates/help_feedback.html:12
#, python-format
msgid "Your feedback will help us improve %(box_name)s!"
@@ -2533,16 +2574,16 @@ msgid ""
"before submitting the bug report."
msgstr ""
-#: plinth/modules/help/views.py:25
+#: plinth/modules/help/views.py:28
msgid "Documentation and FAQ"
msgstr ""
-#: plinth/modules/help/views.py:49
+#: plinth/modules/help/views.py:96
#, python-brace-format
msgid "About {box_name}"
msgstr ""
-#: plinth/modules/help/views.py:83
+#: plinth/modules/help/views.py:130
#, python-brace-format
msgid "{box_name} Manual"
msgstr ""
@@ -2567,19 +2608,19 @@ msgid ""
"configuration process."
msgstr ""
-#: plinth/modules/i2p/__init__.py:52
+#: plinth/modules/i2p/__init__.py:50
msgid "Manage I2P application"
msgstr ""
-#: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13
+#: plinth/modules/i2p/__init__.py:53 plinth/modules/i2p/manifest.py:13
msgid "I2P"
msgstr ""
-#: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:55
+#: plinth/modules/i2p/__init__.py:54 plinth/modules/tor/__init__.py:53
msgid "Anonymity Network"
msgstr ""
-#: plinth/modules/i2p/__init__.py:82
+#: plinth/modules/i2p/__init__.py:80
msgid "I2P Proxy"
msgstr ""
@@ -2632,15 +2673,15 @@ msgid ""
"Configuration you can change these permissions or add new users."
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6
+#: plinth/modules/ikiwiki/__init__.py:47 plinth/modules/ikiwiki/manifest.py:6
msgid "ikiwiki"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:50
+#: plinth/modules/ikiwiki/__init__.py:48
msgid "Wiki and Blog"
msgstr ""
-#: plinth/modules/ikiwiki/__init__.py:77
+#: plinth/modules/ikiwiki/__init__.py:75
msgid "View and edit wiki applications"
msgstr ""
@@ -2678,8 +2719,8 @@ msgstr ""
#: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:47
-#: plinth/modules/snapshot/templates/snapshot.html:15
-#: plinth/templates/app.html:54
+#: plinth/modules/snapshot/templates/snapshot.html:16
+#: plinth/templates/app.html:55
msgid "Update setup"
msgstr ""
@@ -2694,32 +2735,32 @@ msgid ""
"history. Delete this wiki or blog permanently?"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:70
+#: plinth/modules/ikiwiki/views.py:74
#, python-brace-format
msgid "Created wiki {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:73
+#: plinth/modules/ikiwiki/views.py:77
#, python-brace-format
msgid "Could not create wiki: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:83
+#: plinth/modules/ikiwiki/views.py:87
#, python-brace-format
msgid "Created blog {name}."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:86
+#: plinth/modules/ikiwiki/views.py:90
#, python-brace-format
msgid "Could not create blog: {error}"
msgstr ""
-#: plinth/modules/ikiwiki/views.py:101
+#: plinth/modules/ikiwiki/views.py:106
#, python-brace-format
msgid "{title} deleted."
msgstr ""
-#: plinth/modules/ikiwiki/views.py:105
+#: plinth/modules/ikiwiki/views.py:110
#, python-brace-format
msgid "Could not delete {title}: {error}"
msgstr ""
@@ -2736,11 +2777,11 @@ msgid ""
"enter your {box_name}'s domain name."
msgstr ""
-#: plinth/modules/infinoted/__init__.py:44
+#: plinth/modules/infinoted/__init__.py:42
msgid "infinoted"
msgstr ""
-#: plinth/modules/infinoted/__init__.py:45
+#: plinth/modules/infinoted/__init__.py:43
msgid "Gobby Server"
msgstr ""
@@ -2759,28 +2800,26 @@ msgid ""
"domain name."
msgstr ""
-#: plinth/modules/janus/__init__.py:23
+#: plinth/modules/janus/__init__.py:22
msgid "Janus is a lightweight WebRTC server."
msgstr ""
-#: plinth/modules/janus/__init__.py:24
+#: plinth/modules/janus/__init__.py:23
msgid "A simple video conference room is included."
msgstr ""
-#: plinth/modules/janus/__init__.py:26
+#: plinth/modules/janus/__init__.py:25
#, python-brace-format
msgid "Coturn is required to use Janus."
msgstr ""
-#: plinth/modules/janus/__init__.py:44
+#: plinth/modules/janus/__init__.py:41
msgid "Janus"
msgstr ""
-#: plinth/modules/janus/__init__.py:46
-#, fuzzy
-#| msgid "Web Server"
-msgid "WebRTC server"
-msgstr "網頁伺服器"
+#: plinth/modules/janus/__init__.py:43
+msgid "Video Room"
+msgstr ""
#: plinth/modules/janus/manifest.py:7
msgid "Janus Video Room"
@@ -2792,17 +2831,17 @@ msgstr ""
msgid "JavaScript license information"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:21
+#: plinth/modules/jsxc/__init__.py:19
msgid ""
"JSXC is a web client for XMPP. Typically it is used with an XMPP server "
"running locally."
msgstr ""
-#: plinth/modules/jsxc/__init__.py:44 plinth/modules/jsxc/manifest.py:7
+#: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7
msgid "JSXC"
msgstr ""
-#: plinth/modules/jsxc/__init__.py:45
+#: plinth/modules/jsxc/__init__.py:39
msgid "Chat Client"
msgstr ""
@@ -2946,7 +2985,7 @@ msgid ""
"Coturn app or configure an external server."
msgstr ""
-#: plinth/modules/matrixsynapse/__init__.py:70
+#: plinth/modules/matrixsynapse/__init__.py:68
msgid "Matrix Synapse"
msgstr ""
@@ -2978,8 +3017,8 @@ msgid "FluffyChat"
msgstr ""
#: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15
-#: plinth/modules/snapshot/templates/snapshot.html:12
-#: plinth/templates/app.html:46
+#: plinth/modules/snapshot/templates/snapshot.html:13
+#: plinth/templates/app.html:47
msgid "Configuration"
msgstr ""
@@ -3050,12 +3089,12 @@ msgid ""
"can make changes to the content."
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:56
+#: plinth/modules/mediawiki/__init__.py:54
#: plinth/modules/mediawiki/manifest.py:6
msgid "MediaWiki"
msgstr ""
-#: plinth/modules/mediawiki/__init__.py:57 plinth/templates/index.html:124
+#: plinth/modules/mediawiki/__init__.py:55 plinth/templates/index.html:124
msgid "Wiki"
msgstr ""
@@ -3118,41 +3157,41 @@ msgid ""
"to select their preferred skin."
msgstr ""
-#: plinth/modules/mediawiki/views.py:52
+#: plinth/modules/mediawiki/views.py:54
msgid "Password updated"
msgstr ""
-#: plinth/modules/mediawiki/views.py:57
+#: plinth/modules/mediawiki/views.py:59
msgid "Password update failed. Please choose a stronger password"
msgstr ""
-#: plinth/modules/mediawiki/views.py:67
+#: plinth/modules/mediawiki/views.py:69
msgid "Public registrations enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:76
+#: plinth/modules/mediawiki/views.py:78
msgid "Public registrations disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:81
+#: plinth/modules/mediawiki/views.py:83
msgid "Private mode enabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:88
+#: plinth/modules/mediawiki/views.py:90
msgid "Private mode disabled"
msgstr ""
-#: plinth/modules/mediawiki/views.py:95
+#: plinth/modules/mediawiki/views.py:98
msgid "Default skin changed"
msgstr ""
-#: plinth/modules/mediawiki/views.py:99
+#: plinth/modules/mediawiki/views.py:102
#, fuzzy
#| msgid "Domain name set"
msgid "Domain name updated"
msgstr "網域名稱設定"
-#: plinth/modules/mediawiki/views.py:103
+#: plinth/modules/mediawiki/views.py:106
#, fuzzy
#| msgid "Domain name set"
msgid "Site name updated"
@@ -3167,11 +3206,11 @@ msgid ""
"downloads/\">Minetest client is needed."
msgstr ""
-#: plinth/modules/minetest/__init__.py:60 plinth/modules/minetest/manifest.py:9
+#: plinth/modules/minetest/__init__.py:58 plinth/modules/minetest/manifest.py:9
msgid "Minetest"
msgstr ""
-#: plinth/modules/minetest/__init__.py:61
+#: plinth/modules/minetest/__init__.py:59
msgid "Block Sandbox"
msgstr ""
@@ -3216,7 +3255,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:20
+#: plinth/modules/minidlna/__init__.py:21
msgid ""
"MiniDLNA is a simple media server software, with the aim of being fully "
"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files "
@@ -3227,15 +3266,15 @@ msgid ""
"Kodi."
msgstr ""
-#: plinth/modules/minidlna/__init__.py:43
+#: plinth/modules/minidlna/__init__.py:42
msgid "Media streaming server"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:46
+#: plinth/modules/minidlna/__init__.py:45
msgid "MiniDLNA"
msgstr ""
-#: plinth/modules/minidlna/__init__.py:47
+#: plinth/modules/minidlna/__init__.py:46
msgid "Simple Media Server"
msgstr ""
@@ -3288,11 +3327,11 @@ msgid ""
"desktop and mobile devices are available."
msgstr ""
-#: plinth/modules/mumble/__init__.py:47 plinth/modules/mumble/manifest.py:9
+#: plinth/modules/mumble/__init__.py:45 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
-#: plinth/modules/mumble/__init__.py:48
+#: plinth/modules/mumble/__init__.py:46
msgid "Voice Chat"
msgstr ""
@@ -3334,17 +3373,17 @@ msgstr ""
msgid "Mumla"
msgstr ""
-#: plinth/modules/mumble/views.py:41
+#: plinth/modules/mumble/views.py:43
msgid "SuperUser password successfully updated."
msgstr ""
-#: plinth/modules/mumble/views.py:46
+#: plinth/modules/mumble/views.py:48
#, fuzzy
#| msgid "Password added."
msgid "Join password changed"
msgstr "密碼已新增。"
-#: plinth/modules/mumble/views.py:51
+#: plinth/modules/mumble/views.py:53
msgid "Root channel name changed."
msgstr ""
@@ -3377,27 +3416,22 @@ msgstr ""
msgid "Services"
msgstr ""
-#: plinth/modules/networks/__init__.py:36
+#: plinth/modules/networks/__init__.py:35
msgid ""
"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or "
"PPPoE. Share that connection with other devices on the network."
msgstr ""
-#: plinth/modules/networks/__init__.py:38
+#: plinth/modules/networks/__init__.py:37
msgid ""
"Devices administered through other methods may not be available for "
"configuration here."
msgstr ""
-#: plinth/modules/networks/__init__.py:59
+#: plinth/modules/networks/__init__.py:58
msgid "Networks"
msgstr ""
-#: plinth/modules/networks/__init__.py:180
-#, python-brace-format
-msgid "Using DNSSEC on IPv{kind}"
-msgstr ""
-
#: plinth/modules/networks/forms.py:16
msgid "Connection Type"
msgstr ""
@@ -3917,7 +3951,7 @@ msgid "Create Connection"
msgstr ""
#: plinth/modules/networks/templates/connections_delete.html:11
-#: plinth/modules/networks/views.py:517
+#: plinth/modules/networks/views.py:519
msgid "Delete Connection"
msgstr ""
@@ -3937,13 +3971,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:29
#: plinth/modules/networks/templates/connections_diagram.html:59
-#: plinth/modules/networks/views.py:99 plinth/network.py:27
+#: plinth/modules/networks/views.py:100 plinth/network.py:27
msgid "Ethernet"
msgstr ""
#: plinth/modules/networks/templates/connections_diagram.html:32
#: plinth/modules/networks/templates/connections_diagram.html:62
-#: plinth/modules/networks/views.py:100 plinth/network.py:28
+#: plinth/modules/networks/views.py:101 plinth/network.py:28
msgid "Wi-Fi"
msgstr ""
@@ -3964,7 +3998,7 @@ msgid "Computer"
msgstr ""
#: plinth/modules/networks/templates/connections_edit.html:20
-#: plinth/modules/networks/views.py:237 plinth/modules/networks/views.py:321
+#: plinth/modules/networks/views.py:239 plinth/modules/networks/views.py:323
msgid "Edit Connection"
msgstr ""
@@ -3974,13 +4008,13 @@ msgstr ""
#: plinth/modules/networks/templates/connections_list.html:12
#: plinth/modules/networks/templates/connections_list.html:14
-#: plinth/modules/networks/views.py:370
+#: plinth/modules/networks/views.py:372
msgid "Nearby Wi-Fi Networks"
msgstr ""
#: plinth/modules/networks/templates/connections_list.html:17
#: plinth/modules/networks/templates/connections_list.html:19
-#: plinth/modules/networks/views.py:394
+#: plinth/modules/networks/views.py:396
#: plinth/modules/wireguard/templates/wireguard_add_server.html:19
msgid "Add Connection"
msgstr ""
@@ -4163,245 +4197,241 @@ msgid ""
"full instructions on how to perform this task."
msgstr ""
-#: plinth/modules/networks/views.py:27
+#: plinth/modules/networks/views.py:28
msgid "disabled"
msgstr ""
-#: plinth/modules/networks/views.py:28
+#: plinth/modules/networks/views.py:29
msgid "automatic"
msgstr ""
-#: plinth/modules/networks/views.py:29
+#: plinth/modules/networks/views.py:30
msgid "manual"
msgstr ""
-#: plinth/modules/networks/views.py:30
+#: plinth/modules/networks/views.py:31
msgid "shared"
msgstr ""
-#: plinth/modules/networks/views.py:31
+#: plinth/modules/networks/views.py:32
msgid "link-local"
msgstr ""
-#: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98
-#: plinth/modules/networks/views.py:109
+#: plinth/modules/networks/views.py:38 plinth/modules/networks/views.py:99
+#: plinth/modules/networks/views.py:110
msgid "unknown"
msgstr ""
-#: plinth/modules/networks/views.py:38
+#: plinth/modules/networks/views.py:39
msgid "unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:39
+#: plinth/modules/networks/views.py:40
msgid "unavailable"
msgstr ""
-#: plinth/modules/networks/views.py:40
+#: plinth/modules/networks/views.py:41
msgid "disconnected"
msgstr ""
-#: plinth/modules/networks/views.py:41
+#: plinth/modules/networks/views.py:42
msgid "preparing"
msgstr ""
-#: plinth/modules/networks/views.py:42
+#: plinth/modules/networks/views.py:43
msgid "connecting"
msgstr ""
-#: plinth/modules/networks/views.py:43
+#: plinth/modules/networks/views.py:44
msgid "needs authentication"
msgstr ""
-#: plinth/modules/networks/views.py:44
+#: plinth/modules/networks/views.py:45
msgid "requesting address"
msgstr ""
-#: plinth/modules/networks/views.py:45
+#: plinth/modules/networks/views.py:46
msgid "checking"
msgstr ""
-#: plinth/modules/networks/views.py:46
+#: plinth/modules/networks/views.py:47
msgid "waiting for secondary"
msgstr ""
-#: plinth/modules/networks/views.py:47
+#: plinth/modules/networks/views.py:48
msgid "activated"
msgstr ""
-#: plinth/modules/networks/views.py:48
+#: plinth/modules/networks/views.py:49
msgid "deactivating"
msgstr ""
-#: plinth/modules/networks/views.py:56
+#: plinth/modules/networks/views.py:57
msgid "no reason"
msgstr ""
-#: plinth/modules/networks/views.py:58
+#: plinth/modules/networks/views.py:59
msgid "unknown error"
msgstr ""
-#: plinth/modules/networks/views.py:60
+#: plinth/modules/networks/views.py:61
msgid "device is now managed"
msgstr ""
-#: plinth/modules/networks/views.py:62
+#: plinth/modules/networks/views.py:63
msgid "device is now unmanaged"
msgstr ""
-#: plinth/modules/networks/views.py:64
+#: plinth/modules/networks/views.py:65
msgid "configuration failed"
msgstr ""
-#: plinth/modules/networks/views.py:66
+#: plinth/modules/networks/views.py:67
msgid "secrets required"
msgstr ""
-#: plinth/modules/networks/views.py:68
+#: plinth/modules/networks/views.py:69
msgid "DHCP client failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:70
+#: plinth/modules/networks/views.py:71
msgid "DHCP client error"
msgstr ""
-#: plinth/modules/networks/views.py:72
+#: plinth/modules/networks/views.py:73
msgid "DHCP client failed"
msgstr ""
-#: plinth/modules/networks/views.py:74
+#: plinth/modules/networks/views.py:75
msgid "shared connection service failed to start"
msgstr ""
-#: plinth/modules/networks/views.py:76
+#: plinth/modules/networks/views.py:77
msgid "shared connection service failed"
msgstr ""
-#: plinth/modules/networks/views.py:78
+#: plinth/modules/networks/views.py:79
msgid "device was removed"
msgstr ""
-#: plinth/modules/networks/views.py:80
+#: plinth/modules/networks/views.py:81
msgid "device disconnected by user"
msgstr ""
-#: plinth/modules/networks/views.py:82
+#: plinth/modules/networks/views.py:83
msgid "a dependency of the connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:84
+#: plinth/modules/networks/views.py:85
msgid "Wi-Fi network not found"
msgstr ""
-#: plinth/modules/networks/views.py:86
+#: plinth/modules/networks/views.py:87
msgid "a secondary connection failed"
msgstr ""
-#: plinth/modules/networks/views.py:88
+#: plinth/modules/networks/views.py:89
msgid "new connection activation was enqueued"
msgstr ""
-#: plinth/modules/networks/views.py:90
+#: plinth/modules/networks/views.py:91
msgid "a duplicate IP address was detected"
msgstr ""
-#: plinth/modules/networks/views.py:92
+#: plinth/modules/networks/views.py:93
msgid "selected IP method is not supported"
msgstr ""
-#: plinth/modules/networks/views.py:101
+#: plinth/modules/networks/views.py:102
msgid "generic"
msgstr ""
-#: plinth/modules/networks/views.py:102
+#: plinth/modules/networks/views.py:103
msgid "TUN or TAP interface"
msgstr ""
-#: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
+#: plinth/modules/networks/views.py:104 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
-#: plinth/modules/networks/views.py:110
+#: plinth/modules/networks/views.py:111
msgid "ad-hoc"
msgstr ""
-#: plinth/modules/networks/views.py:111
+#: plinth/modules/networks/views.py:112
msgid "infrastructure"
msgstr ""
-#: plinth/modules/networks/views.py:112
+#: plinth/modules/networks/views.py:113
msgid "access point"
msgstr ""
-#: plinth/modules/networks/views.py:113
+#: plinth/modules/networks/views.py:114
msgid "mesh point"
msgstr ""
-#: plinth/modules/networks/views.py:127
-msgid "Network Connections"
-msgstr ""
-
-#: plinth/modules/networks/views.py:142
+#: plinth/modules/networks/views.py:144
msgid "Cannot show connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:195
+#: plinth/modules/networks/views.py:197
msgid "Connection Information"
msgstr ""
-#: plinth/modules/networks/views.py:209
+#: plinth/modules/networks/views.py:211
msgid "Cannot edit connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:215
+#: plinth/modules/networks/views.py:217
msgid "This type of connection is not yet understood."
msgstr ""
-#: plinth/modules/networks/views.py:333
+#: plinth/modules/networks/views.py:335
#, python-brace-format
msgid "Activated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:337
+#: plinth/modules/networks/views.py:339
msgid "Failed to activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:343
+#: plinth/modules/networks/views.py:345
#, python-brace-format
msgid "Failed to activate connection {name}: No suitable device is available."
msgstr ""
-#: plinth/modules/networks/views.py:356
+#: plinth/modules/networks/views.py:358
#, python-brace-format
msgid "Deactivated connection {name}."
msgstr ""
-#: plinth/modules/networks/views.py:360
+#: plinth/modules/networks/views.py:362
msgid "Failed to de-activate connection: Connection not found."
msgstr ""
-#: plinth/modules/networks/views.py:412
+#: plinth/modules/networks/views.py:414
msgid "Adding New Generic Connection"
msgstr ""
-#: plinth/modules/networks/views.py:430
+#: plinth/modules/networks/views.py:432
msgid "Adding New Ethernet Connection"
msgstr ""
-#: plinth/modules/networks/views.py:448
+#: plinth/modules/networks/views.py:450
msgid "Adding New PPPoE Connection"
msgstr ""
-#: plinth/modules/networks/views.py:483
+#: plinth/modules/networks/views.py:485
msgid "Adding New Wi-Fi Connection"
msgstr ""
-#: plinth/modules/networks/views.py:498
+#: plinth/modules/networks/views.py:500
#, python-brace-format
msgid "Connection {name} deleted."
msgstr ""
-#: plinth/modules/networks/views.py:502 plinth/modules/networks/views.py:512
+#: plinth/modules/networks/views.py:504 plinth/modules/networks/views.py:514
msgid "Failed to delete connection: Connection not found."
msgstr ""
@@ -4416,20 +4446,20 @@ msgid ""
"security and anonymity."
msgstr ""
-#: plinth/modules/openvpn/__init__.py:55
+#: plinth/modules/openvpn/__init__.py:53
msgid "Connect to VPN services"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17
+#: plinth/modules/openvpn/__init__.py:56 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:59
-#: plinth/modules/wireguard/__init__.py:51
+#: plinth/modules/openvpn/__init__.py:57
+#: plinth/modules/wireguard/__init__.py:49
msgid "Virtual Private Network"
msgstr ""
-#: plinth/modules/openvpn/__init__.py:70
+#: plinth/modules/openvpn/__init__.py:68
#, python-brace-format
msgid ""
"Download Profile"
@@ -4537,15 +4567,15 @@ msgid ""
"the future it might be possible to use your buddy's {box_name} for this."
msgstr ""
-#: plinth/modules/pagekite/__init__.py:63
+#: plinth/modules/pagekite/__init__.py:61
msgid "PageKite"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:64
+#: plinth/modules/pagekite/__init__.py:62
msgid "Public Visibility"
msgstr ""
-#: plinth/modules/pagekite/__init__.py:77
+#: plinth/modules/pagekite/__init__.py:75
msgid "PageKite Domain"
msgstr ""
@@ -4651,36 +4681,36 @@ msgid ""
"HTTPS on ports other than 443 is known to cause problems."
msgstr ""
-#: plinth/modules/pagekite/utils.py:45
+#: plinth/modules/pagekite/utils.py:46
msgid "Web Server (HTTP)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:47
+#: plinth/modules/pagekite/utils.py:48
#, python-brace-format
msgid "Site will be available at http://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:59
+#: plinth/modules/pagekite/utils.py:60
msgid "Web Server (HTTPS)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:61
+#: plinth/modules/pagekite/utils.py:62
#, python-brace-format
msgid "Site will be available at https://{0}"
msgstr ""
-#: plinth/modules/pagekite/utils.py:73
+#: plinth/modules/pagekite/utils.py:74
msgid "Secure Shell (SSH)"
msgstr ""
-#: plinth/modules/pagekite/utils.py:75
+#: plinth/modules/pagekite/utils.py:76
msgid ""
"See SSH client setup instructions"
msgstr ""
#: plinth/modules/performance/__init__.py:16
-#: plinth/modules/performance/__init__.py:42
+#: plinth/modules/performance/__init__.py:40
msgid "Performance"
msgstr ""
@@ -4697,7 +4727,7 @@ msgid ""
"using the Cockpit app."
msgstr ""
-#: plinth/modules/performance/__init__.py:43
+#: plinth/modules/performance/__init__.py:41
msgid "System Monitoring"
msgstr ""
@@ -4769,21 +4799,22 @@ msgstr ""
#, python-brace-format
msgid ""
"You can use Privoxy by modifying your browser proxy settings to your "
-"{box_name} hostname (or IP address) with port 8118. While using Privoxy, you "
-"can see its configuration details and documentation at http://config.privoxy.org/ or http://config.privoxy.org/ or http://p.p."
msgstr ""
-#: plinth/modules/privoxy/__init__.py:52
+#: plinth/modules/privoxy/__init__.py:51
msgid "Privoxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:53
+#: plinth/modules/privoxy/__init__.py:52
msgid "Web Proxy"
msgstr ""
-#: plinth/modules/privoxy/__init__.py:114
+#: plinth/modules/privoxy/__init__.py:113
#, python-brace-format
msgid "Access {url} with proxy {proxy} on tcp{kind}"
msgstr ""
@@ -4807,11 +4838,11 @@ msgid ""
"\">mobile devices are available."
msgstr ""
-#: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9
+#: plinth/modules/quassel/__init__.py:54 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
-#: plinth/modules/quassel/__init__.py:57
+#: plinth/modules/quassel/__init__.py:55
msgid "IRC Client"
msgstr ""
@@ -4836,12 +4867,12 @@ msgid ""
"which must be done using a separate client."
msgstr ""
-#: plinth/modules/radicale/__init__.py:55
+#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
-#: plinth/modules/radicale/__init__.py:56
+#: plinth/modules/radicale/__init__.py:54
msgid "Calendar and Addressbook"
msgstr ""
@@ -4904,7 +4935,7 @@ msgstr ""
msgid "Access rights configuration updated"
msgstr ""
-#: plinth/modules/roundcube/__init__.py:21
+#: plinth/modules/roundcube/__init__.py:18
msgid ""
"Roundcube webmail is a browser-based multilingual IMAP client with an "
"application-like user interface. It provides full functionality you expect "
@@ -4912,7 +4943,7 @@ msgid ""
"manipulation, message searching and spell checking."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:26
+#: plinth/modules/roundcube/__init__.py:23
msgid ""
"You can use it by providing the username and password of the email account "
"you wish to access followed by the domain name of the IMAP server for your "
@@ -4921,7 +4952,7 @@ msgid ""
"code>."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:31
+#: plinth/modules/roundcube/__init__.py:28
msgid ""
"For Gmail, username will be your Gmail address, password will be your Google "
"account password and server will be imaps://imap.gmail.com. "
@@ -4931,7 +4962,7 @@ msgid ""
"a>)."
msgstr ""
-#: plinth/modules/roundcube/__init__.py:55
+#: plinth/modules/roundcube/__init__.py:50
msgid "Email Client"
msgstr ""
@@ -4946,6 +4977,45 @@ msgid ""
"can only read and send mails from this {box_name}."
msgstr ""
+#: plinth/modules/rssbridge/__init__.py:20
+msgid ""
+"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
+"Generated feeds can be consumed by any feed reader."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:23
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "It can be accessed by any user on {box_name} "
+#| "belonging to the admin group."
+msgid ""
+"When enabled, RSS-Bridge can be accessed by any "
+"user belonging to the feed-reader group."
+msgstr ""
+"它可以由 {box_name} 上屬於 admin 群組的 任何使用者"
+"a>存取。"
+
+#: plinth/modules/rssbridge/__init__.py:27
+#, python-brace-format
+msgid ""
+"You can use RSS-Bridge with Tiny Tiny RSS to "
+"follow various websites. When adding a feed, enable authentication and use "
+"your {box_name} credentials."
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:45 plinth/modules/ttrss/__init__.py:48
+msgid "Read and subscribe to news feeds"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:48
+#: plinth/modules/rssbridge/manifest.py:10
+msgid "RSS-Bridge"
+msgstr ""
+
+#: plinth/modules/rssbridge/__init__.py:49
+msgid "RSS Feed Generator"
+msgstr ""
+
#: plinth/modules/samba/__init__.py:27
msgid ""
"Samba allows to share files and folders between FreedomBox and other "
@@ -4977,15 +5047,15 @@ msgid ""
"private space."
msgstr ""
-#: plinth/modules/samba/__init__.py:56
+#: plinth/modules/samba/__init__.py:54
msgid "Access to the private shares"
msgstr ""
-#: plinth/modules/samba/__init__.py:59
+#: plinth/modules/samba/__init__.py:57
msgid "Samba"
msgstr ""
-#: plinth/modules/samba/__init__.py:60
+#: plinth/modules/samba/__init__.py:58
msgid "Network File Storage"
msgstr ""
@@ -5105,15 +5175,15 @@ msgid ""
"stores no cookies by default."
msgstr ""
-#: plinth/modules/searx/__init__.py:42
+#: plinth/modules/searx/__init__.py:40
msgid "Search the web"
msgstr ""
-#: plinth/modules/searx/__init__.py:45 plinth/modules/searx/manifest.py:6
+#: plinth/modules/searx/__init__.py:43 plinth/modules/searx/manifest.py:6
msgid "Searx"
msgstr ""
-#: plinth/modules/searx/__init__.py:46
+#: plinth/modules/searx/__init__.py:44
msgid "Web Search"
msgstr ""
@@ -5194,7 +5264,7 @@ msgid ""
msgstr ""
#: plinth/modules/security/templates/security_report.html:10
-#: plinth/modules/security/views.py:74
+#: plinth/modules/security/views.py:78
msgid "Security Report"
msgstr ""
@@ -5259,12 +5329,12 @@ msgstr ""
msgid "Not running"
msgstr ""
-#: plinth/modules/security/views.py:56
+#: plinth/modules/security/views.py:60
#, python-brace-format
msgid "Error setting restricted access: {exception}"
msgstr ""
-#: plinth/modules/security/views.py:59
+#: plinth/modules/security/views.py:63
msgid "Updated security configuration"
msgstr ""
@@ -5278,11 +5348,11 @@ msgid ""
"to setup on the initial visit."
msgstr ""
-#: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25
+#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
-#: plinth/modules/shaarli/__init__.py:39
+#: plinth/modules/shaarli/__init__.py:37
msgid "Bookmarks"
msgstr ""
@@ -5312,11 +5382,11 @@ msgid ""
"browser or application to http://freedombox_address:1080/"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:51
+#: plinth/modules/shadowsocks/__init__.py:49
msgid "Shadowsocks"
msgstr ""
-#: plinth/modules/shadowsocks/__init__.py:53
+#: plinth/modules/shadowsocks/__init__.py:51
msgid "Socks5 Proxy"
msgstr ""
@@ -5345,14 +5415,14 @@ msgstr ""
msgid "Encryption method. Must match setting on server."
msgstr ""
-#: plinth/modules/sharing/__init__.py:20
+#: plinth/modules/sharing/__init__.py:21
#, python-brace-format
msgid ""
"Sharing allows you to share files and folders on your {box_name} over the "
"web with chosen groups of users."
msgstr ""
-#: plinth/modules/sharing/__init__.py:39
+#: plinth/modules/sharing/__init__.py:38
msgid "Sharing"
msgstr ""
@@ -5400,28 +5470,28 @@ msgstr ""
msgid "Shares should be either public or shared with at least one group"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:19
-#: plinth/modules/sharing/templates/sharing.html:22
+#: plinth/modules/sharing/templates/sharing.html:18
+#: plinth/modules/sharing/templates/sharing.html:21
msgid "Add share"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:27
+#: plinth/modules/sharing/templates/sharing.html:26
msgid "No shares currently configured."
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:34
+#: plinth/modules/sharing/templates/sharing.html:33
msgid "Disk Path"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:35
+#: plinth/modules/sharing/templates/sharing.html:34
msgid "Shared Over"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:36
+#: plinth/modules/sharing/templates/sharing.html:35
msgid "With Groups"
msgstr ""
-#: plinth/modules/sharing/templates/sharing.html:53
+#: plinth/modules/sharing/templates/sharing.html:52
msgid "public access"
msgstr ""
@@ -5561,7 +5631,7 @@ msgstr ""
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:42
#: plinth/modules/snapshot/templates/snapshot_manage.html:20
-#: plinth/modules/snapshot/views.py:196
+#: plinth/modules/snapshot/views.py:203
msgid "Delete Snapshots"
msgstr ""
@@ -5609,53 +5679,53 @@ msgstr ""
msgid "Rollback to Snapshot #%(number)s"
msgstr ""
-#: plinth/modules/snapshot/views.py:27
+#: plinth/modules/snapshot/views.py:29
msgid "manually created"
msgstr ""
-#: plinth/modules/snapshot/views.py:28
+#: plinth/modules/snapshot/views.py:30
msgid "timeline"
msgstr ""
-#: plinth/modules/snapshot/views.py:29
+#: plinth/modules/snapshot/views.py:31
msgid "apt"
msgstr ""
-#: plinth/modules/snapshot/views.py:39
+#: plinth/modules/snapshot/views.py:41
msgid "Manage Snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:88
+#: plinth/modules/snapshot/views.py:94
msgid "Created snapshot."
msgstr ""
-#: plinth/modules/snapshot/views.py:151
+#: plinth/modules/snapshot/views.py:158
msgid "Storage snapshots configuration updated"
msgstr ""
-#: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:62
+#: plinth/modules/snapshot/views.py:162
#, python-brace-format
msgid "Action error: {0} [{1}] [{2}]"
msgstr ""
-#: plinth/modules/snapshot/views.py:183
+#: plinth/modules/snapshot/views.py:190
msgid "Deleted selected snapshots"
msgstr ""
-#: plinth/modules/snapshot/views.py:188
+#: plinth/modules/snapshot/views.py:195
msgid "Snapshot is currently in use. Please try again later."
msgstr ""
-#: plinth/modules/snapshot/views.py:207
+#: plinth/modules/snapshot/views.py:214
#, python-brace-format
msgid "Rolled back to snapshot #{number}."
msgstr ""
-#: plinth/modules/snapshot/views.py:210
+#: plinth/modules/snapshot/views.py:217
msgid "The system must be restarted to complete the rollback."
msgstr ""
-#: plinth/modules/snapshot/views.py:222
+#: plinth/modules/snapshot/views.py:229
msgid "Rollback to Snapshot"
msgstr ""
@@ -5667,7 +5737,7 @@ msgid ""
"connections."
msgstr ""
-#: plinth/modules/ssh/__init__.py:45
+#: plinth/modules/ssh/__init__.py:43
msgid "Secure Shell (SSH) Server"
msgstr ""
@@ -5708,7 +5778,7 @@ msgstr ""
msgid "SSH authentication with password enabled."
msgstr ""
-#: plinth/modules/sso/__init__.py:28
+#: plinth/modules/sso/__init__.py:26
msgid "Single Sign On"
msgstr ""
@@ -5728,104 +5798,104 @@ msgid ""
"media, expand the root partition etc."
msgstr ""
-#: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322
-#: plinth/modules/storage/__init__.py:353
+#: plinth/modules/storage/__init__.py:49 plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:350
msgid "Storage"
msgstr ""
-#: plinth/modules/storage/__init__.py:216
+#: plinth/modules/storage/__init__.py:227
#, python-brace-format
msgid "{disk_size:.1f} bytes"
msgstr ""
-#: plinth/modules/storage/__init__.py:220
+#: plinth/modules/storage/__init__.py:231
#, python-brace-format
msgid "{disk_size:.1f} KiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:224
+#: plinth/modules/storage/__init__.py:235
#, python-brace-format
msgid "{disk_size:.1f} MiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:228
+#: plinth/modules/storage/__init__.py:239
#, python-brace-format
msgid "{disk_size:.1f} GiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:231
+#: plinth/modules/storage/__init__.py:242
#, python-brace-format
msgid "{disk_size:.1f} TiB"
msgstr ""
-#: plinth/modules/storage/__init__.py:243
+#: plinth/modules/storage/__init__.py:254
msgid "The operation failed."
msgstr ""
-#: plinth/modules/storage/__init__.py:245
+#: plinth/modules/storage/__init__.py:256
msgid "The operation was cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:247
+#: plinth/modules/storage/__init__.py:258
msgid "The device is already unmounting."
msgstr ""
-#: plinth/modules/storage/__init__.py:249
+#: plinth/modules/storage/__init__.py:260
msgid "The operation is not supported due to missing driver/tool support."
msgstr ""
-#: plinth/modules/storage/__init__.py:252
+#: plinth/modules/storage/__init__.py:263
msgid "The operation timed out."
msgstr ""
-#: plinth/modules/storage/__init__.py:254
+#: plinth/modules/storage/__init__.py:265
msgid "The operation would wake up a disk that is in a deep-sleep state."
msgstr ""
-#: plinth/modules/storage/__init__.py:257
+#: plinth/modules/storage/__init__.py:268
msgid "Attempting to unmount a device that is busy."
msgstr ""
-#: plinth/modules/storage/__init__.py:259
+#: plinth/modules/storage/__init__.py:270
msgid "The operation has already been cancelled."
msgstr ""
-#: plinth/modules/storage/__init__.py:261
-#: plinth/modules/storage/__init__.py:263
-#: plinth/modules/storage/__init__.py:265
+#: plinth/modules/storage/__init__.py:272
+#: plinth/modules/storage/__init__.py:274
+#: plinth/modules/storage/__init__.py:276
msgid "Not authorized to perform the requested operation."
msgstr ""
-#: plinth/modules/storage/__init__.py:267
+#: plinth/modules/storage/__init__.py:278
msgid "The device is already mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:269
+#: plinth/modules/storage/__init__.py:280
msgid "The device is not mounted."
msgstr ""
-#: plinth/modules/storage/__init__.py:271
+#: plinth/modules/storage/__init__.py:282
msgid "Not permitted to use the requested option."
msgstr ""
-#: plinth/modules/storage/__init__.py:273
+#: plinth/modules/storage/__init__.py:284
msgid "The device is mounted by another user."
msgstr ""
-#: plinth/modules/storage/__init__.py:317
+#: plinth/modules/storage/__init__.py:314
#, no-python-format, python-brace-format
msgid "Low space on system partition: {percent_used}% used, {free_space} free."
msgstr ""
-#: plinth/modules/storage/__init__.py:319
+#: plinth/modules/storage/__init__.py:316
msgid "Low disk space"
msgstr ""
-#: plinth/modules/storage/__init__.py:347
+#: plinth/modules/storage/__init__.py:344
msgid "Disk failure imminent"
msgstr ""
-#: plinth/modules/storage/__init__.py:349
+#: plinth/modules/storage/__init__.py:346
#, python-brace-format
msgid ""
"Disk {id} is reporting that it is likely to fail in the near future. Copy "
@@ -5959,16 +6029,16 @@ msgid ""
"\"syncthing-access\" group."
msgstr ""
-#: plinth/modules/syncthing/__init__.py:57
+#: plinth/modules/syncthing/__init__.py:55
msgid "Administer Syncthing application"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:61
+#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
-#: plinth/modules/syncthing/__init__.py:62
+#: plinth/modules/syncthing/__init__.py:60
msgid "File Synchronization"
msgstr ""
@@ -5988,40 +6058,40 @@ msgid ""
"TCP port 9050."
msgstr ""
-#: plinth/modules/tor/__init__.py:54
+#: plinth/modules/tor/__init__.py:52
msgid "Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:71
+#: plinth/modules/tor/__init__.py:69
msgid "Tor Onion Service"
msgstr ""
-#: plinth/modules/tor/__init__.py:75
+#: plinth/modules/tor/__init__.py:73
msgid "Tor Socks Proxy"
msgstr ""
-#: plinth/modules/tor/__init__.py:79
+#: plinth/modules/tor/__init__.py:77
msgid "Tor Bridge Relay"
msgstr ""
-#: plinth/modules/tor/__init__.py:121
+#: plinth/modules/tor/__init__.py:132
msgid "Tor relay port available"
msgstr ""
-#: plinth/modules/tor/__init__.py:131
+#: plinth/modules/tor/__init__.py:142
msgid "Obfs3 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:141
+#: plinth/modules/tor/__init__.py:152
msgid "Obfs4 transport registered"
msgstr ""
-#: plinth/modules/tor/__init__.py:210
+#: plinth/modules/tor/__init__.py:220
#, python-brace-format
msgid "Access URL {url} on tcp{kind} via Tor"
msgstr ""
-#: plinth/modules/tor/__init__.py:221
+#: plinth/modules/tor/__init__.py:231
#, python-brace-format
msgid "Confirm Tor usage at {url} on tcp{kind}"
msgstr ""
@@ -6031,37 +6101,33 @@ msgid ""
"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]"
msgstr ""
-#: plinth/modules/tor/forms.py:75
-msgid "Enable Tor"
-msgstr ""
-
-#: plinth/modules/tor/forms.py:77
+#: plinth/modules/tor/forms.py:76
msgid "Use upstream bridges to connect to Tor network"
msgstr ""
-#: plinth/modules/tor/forms.py:79
+#: plinth/modules/tor/forms.py:78
msgid ""
"When enabled, the bridges configured below will be used to connect to the "
"Tor network. Use this option if your Internet Service Provider (ISP) blocks "
"or censors connections to the Tor Network. This will disable relay modes."
msgstr ""
-#: plinth/modules/tor/forms.py:84
+#: plinth/modules/tor/forms.py:83
msgid "Upstream bridges"
msgstr ""
-#: plinth/modules/tor/forms.py:86
+#: plinth/modules/tor/forms.py:85
msgid ""
"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information "
"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit."
msgstr ""
-#: plinth/modules/tor/forms.py:92
+#: plinth/modules/tor/forms.py:91
msgid "Enable Tor relay"
msgstr ""
-#: plinth/modules/tor/forms.py:93
+#: plinth/modules/tor/forms.py:92
#, python-brace-format
msgid ""
"When enabled, your {box_name} will run a Tor relay and donate bandwidth to "
@@ -6069,22 +6135,22 @@ msgid ""
"download bandwidth."
msgstr ""
-#: plinth/modules/tor/forms.py:98
+#: plinth/modules/tor/forms.py:97
msgid "Enable Tor bridge relay"
msgstr ""
-#: plinth/modules/tor/forms.py:100
+#: plinth/modules/tor/forms.py:99
msgid ""
"When enabled, relay information is published in the Tor bridge database "
"instead of public Tor relay database making it harder to censor this node. "
"This helps others circumvent censorship."
msgstr ""
-#: plinth/modules/tor/forms.py:105
+#: plinth/modules/tor/forms.py:104
msgid "Enable Tor Hidden Service"
msgstr ""
-#: plinth/modules/tor/forms.py:107
+#: plinth/modules/tor/forms.py:106
#, python-brace-format
msgid ""
"A hidden service will allow {box_name} to provide selected services (such as "
@@ -6092,18 +6158,18 @@ msgid ""
"anonymity yet."
msgstr ""
-#: plinth/modules/tor/forms.py:112
+#: plinth/modules/tor/forms.py:111
msgid "Download software packages over Tor"
msgstr ""
-#: plinth/modules/tor/forms.py:113
+#: plinth/modules/tor/forms.py:112
msgid ""
"When enabled, software will be downloaded over the Tor network for "
"installations and upgrades. This adds a degree of privacy and security "
"during software downloads."
msgstr ""
-#: plinth/modules/tor/forms.py:128
+#: plinth/modules/tor/forms.py:127
msgid "Specify at least one upstream bridge to use upstream bridges."
msgstr ""
@@ -6115,21 +6181,25 @@ msgstr ""
msgid "Orbot: Proxy with Tor"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:16
-msgid "Tor configuration is being updated"
-msgstr ""
-
-#: plinth/modules/tor/templates/tor.html:26
+#: plinth/modules/tor/templates/tor.html:18
msgid "Onion Service"
msgstr ""
-#: plinth/modules/tor/templates/tor.html:28
+#: plinth/modules/tor/templates/tor.html:20
msgid "Ports"
msgstr ""
-#: plinth/modules/tor/views.py:139 plinth/views.py:222
-msgid "Setting unchanged"
-msgstr ""
+#: plinth/modules/tor/views.py:55
+#, fuzzy
+#| msgid "An error occurred during configuration."
+msgid "Updating configuration"
+msgstr "設置過程中發生錯誤。"
+
+#: plinth/modules/tor/views.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error configuring app: {error}"
+msgstr "安裝應用遇到錯誤:{error}"
#: plinth/modules/transmission/__init__.py:23
msgid "Transmission is a BitTorrent client with a web interface."
@@ -6178,7 +6248,7 @@ msgid ""
"href=\"{sharing_url}\">Sharing app."
msgstr ""
-#: plinth/modules/transmission/__init__.py:68
+#: plinth/modules/transmission/__init__.py:66
#: plinth/modules/transmission/manifest.py:6
msgid "Transmission"
msgstr ""
@@ -6208,15 +6278,11 @@ msgid ""
"href=\"/tt-rss-app/\">/tt-rss-app for connecting."
msgstr ""
-#: plinth/modules/ttrss/__init__.py:50
-msgid "Read and subscribe to news feeds"
-msgstr ""
-
-#: plinth/modules/ttrss/__init__.py:53 plinth/modules/ttrss/manifest.py:18
+#: plinth/modules/ttrss/__init__.py:51 plinth/modules/ttrss/manifest.py:18
msgid "Tiny Tiny RSS"
msgstr ""
-#: plinth/modules/ttrss/__init__.py:54
+#: plinth/modules/ttrss/__init__.py:52
msgid "News Feed Reader"
msgstr ""
@@ -6237,33 +6303,33 @@ msgid ""
"automatically at 02:00 causing all apps to be unavailable briefly."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:74
-#: plinth/modules/upgrades/__init__.py:129
+#: plinth/modules/upgrades/__init__.py:72
+#: plinth/modules/upgrades/__init__.py:127
#: plinth/modules/upgrades/templates/update-firstboot-progress.html:11
#: plinth/modules/upgrades/templates/update-firstboot.html:11
msgid "Software Update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:132
+#: plinth/modules/upgrades/__init__.py:130
msgid "FreedomBox Updated"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:217
+#: plinth/modules/upgrades/__init__.py:222
msgid "Could not start distribution update"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:219
+#: plinth/modules/upgrades/__init__.py:224
msgid ""
"There is not enough free space in the root partition to start the "
"distribution update. Please ensure at least 5 GB is free. Distribution "
"update will be retried after 24 hours, if enabled."
msgstr ""
-#: plinth/modules/upgrades/__init__.py:230
+#: plinth/modules/upgrades/__init__.py:235
msgid "Distribution update started"
msgstr ""
-#: plinth/modules/upgrades/__init__.py:232
+#: plinth/modules/upgrades/__init__.py:237
msgid ""
"Started update to next stable release. This may take a long time to complete."
msgstr ""
@@ -6341,6 +6407,7 @@ msgstr ""
#: plinth/modules/upgrades/templates/upgrades-new-release.html:22
#: plinth/templates/notifications.html:44
+#: plinth/templates/operation-notification.html:23
msgid "Dismiss"
msgstr ""
@@ -6396,39 +6463,57 @@ msgstr ""
msgid "Show recent update logs"
msgstr ""
-#: plinth/modules/upgrades/views.py:67
+#: plinth/modules/upgrades/templates/upgrades_configure.html:138
+msgid "Test Distribution Upgrade"
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:140
+msgid ""
+"This will attempt to upgrade the system from stable to testing. It "
+"is meant only for development use."
+msgstr ""
+
+#: plinth/modules/upgrades/templates/upgrades_configure.html:150
+msgid "Test distribution upgrade now"
+msgstr ""
+
+#: plinth/modules/upgrades/views.py:68
#, python-brace-format
msgid "Error when configuring unattended-upgrades: {error}"
msgstr ""
-#: plinth/modules/upgrades/views.py:71
+#: plinth/modules/upgrades/views.py:72
msgid "Automatic upgrades enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:74
+#: plinth/modules/upgrades/views.py:75
msgid "Automatic upgrades disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:82
+#: plinth/modules/upgrades/views.py:83
msgid "Distribution upgrade enabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:85
+#: plinth/modules/upgrades/views.py:86
msgid "Distribution upgrade disabled"
msgstr ""
-#: plinth/modules/upgrades/views.py:127
+#: plinth/modules/upgrades/views.py:128
msgid "Upgrade process started."
msgstr ""
-#: plinth/modules/upgrades/views.py:129
+#: plinth/modules/upgrades/views.py:130
msgid "Starting upgrade failed."
msgstr ""
-#: plinth/modules/upgrades/views.py:139
+#: plinth/modules/upgrades/views.py:140
msgid "Frequent feature updates activated."
msgstr ""
+#: plinth/modules/upgrades/views.py:223
+msgid "Starting distribution upgrade test."
+msgstr ""
+
#: plinth/modules/users/__init__.py:29
msgid ""
"Create and manage user accounts. These accounts serve as centralized "
@@ -6444,15 +6529,15 @@ msgid ""
"group may alter apps or system settings."
msgstr ""
-#: plinth/modules/users/__init__.py:57
+#: plinth/modules/users/__init__.py:55
msgid "Users and Groups"
msgstr ""
-#: plinth/modules/users/__init__.py:77
+#: plinth/modules/users/__init__.py:75
msgid "Access to all services and system settings"
msgstr ""
-#: plinth/modules/users/__init__.py:113
+#: plinth/modules/users/__init__.py:111
#, python-brace-format
msgid "Check LDAP entry \"{search_item}\""
msgstr ""
@@ -7017,12 +7102,12 @@ msgid ""
"and upgraded at your own risk."
msgstr ""
-#: plinth/modules/wordpress/__init__.py:58
+#: plinth/modules/wordpress/__init__.py:56
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
-#: plinth/modules/wordpress/__init__.py:59
+#: plinth/modules/wordpress/__init__.py:57
msgid "Website and Blog"
msgstr ""
@@ -7057,11 +7142,11 @@ msgid ""
"in Zoph with the same user name."
msgstr ""
-#: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6
+#: plinth/modules/zoph/__init__.py:56 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
-#: plinth/modules/zoph/__init__.py:59
+#: plinth/modules/zoph/__init__.py:57
msgid "Photo Organizer"
msgstr ""
@@ -7095,37 +7180,129 @@ msgstr ""
msgid "Generic"
msgstr ""
-#: plinth/package.py:188
+#: plinth/operation.py:116
+#, fuzzy, python-brace-format
+#| msgid "Error setting hostname: {exception}"
+msgid "Error: {name}: {exception_message}"
+msgstr "設定主機名稱時發生錯誤︰{exception}"
+
+#: plinth/operation.py:119
+#, python-brace-format
+msgid "Waiting to start: {name}"
+msgstr ""
+
+#: plinth/operation.py:125
+#, python-brace-format
+msgid "Finished: {name}"
+msgstr ""
+
+#: plinth/package.py:191
#, python-brace-format
msgid "Package {expression} is not available for install"
msgstr ""
-#: plinth/package.py:201
+#: plinth/package.py:204
#, python-brace-format
msgid "Package {package_name} is the latest version ({latest_version})"
msgstr ""
-#: plinth/package.py:355
-msgid "Error during installation"
-msgstr ""
+#: plinth/package.py:367
+#, fuzzy
+#| msgid "Error During Backup"
+msgid "Error running apt-get"
+msgstr "備份時發生錯誤"
-#: plinth/package.py:377
+#: plinth/package.py:389
msgid "installing"
msgstr ""
-#: plinth/package.py:379
+#: plinth/package.py:391
msgid "downloading"
msgstr ""
-#: plinth/package.py:381
+#: plinth/package.py:393
msgid "media change"
msgstr ""
-#: plinth/package.py:383
+#: plinth/package.py:395
#, python-brace-format
msgid "configuration file: {file}"
msgstr ""
+#: plinth/package.py:423 plinth/package.py:448
+msgid "Timeout waiting for package manager"
+msgstr ""
+
+#: plinth/setup.py:40
+msgid "Installing app"
+msgstr ""
+
+#: plinth/setup.py:42
+msgid "Updating app"
+msgstr ""
+
+#: plinth/setup.py:68
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error installing app: {string} {details}"
+msgstr "安裝過程中遇到錯誤:{string}{details}"
+
+#: plinth/setup.py:72
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error updating app: {string} {details}"
+msgstr "安裝過程中遇到錯誤:{string}{details}"
+
+#: plinth/setup.py:78
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error installing app: {error}"
+msgstr "安裝應用遇到錯誤:{error}"
+
+#: plinth/setup.py:81
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error updating app: {error}"
+msgstr "安裝應用遇到錯誤:{error}"
+
+#: plinth/setup.py:85
+#, fuzzy
+#| msgid "Application installed."
+msgid "App installed."
+msgstr "應用已完成安裝。"
+
+#: plinth/setup.py:87
+msgid "App updated"
+msgstr ""
+
+#: plinth/setup.py:104
+#, fuzzy
+#| msgid "Error installing application: {error}"
+msgid "Uninstalling app"
+msgstr "安裝應用遇到錯誤:{error}"
+
+#: plinth/setup.py:122
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {string} {details}"
+msgid "Error uninstalling app: {string} {details}"
+msgstr "安裝過程中遇到錯誤:{string}{details}"
+
+#: plinth/setup.py:128
+#, fuzzy, python-brace-format
+#| msgid "Error installing application: {error}"
+msgid "Error uninstalling app: {error}"
+msgstr "安裝應用遇到錯誤:{error}"
+
+#: plinth/setup.py:131
+#, fuzzy
+#| msgid "Application installed."
+msgid "App uninstalled."
+msgstr "應用已完成安裝。"
+
+#: plinth/setup.py:451
+msgid "Updating app packages"
+msgstr ""
+
#: plinth/templates/403.html:10
msgid "403 Forbidden"
msgstr ""
@@ -7168,7 +7345,7 @@ msgstr ""
msgid "Installation"
msgstr ""
-#: plinth/templates/app.html:29
+#: plinth/templates/app.html:30
#, python-format
msgid "Service %(service_name)s is not running."
msgstr ""
@@ -7413,6 +7590,10 @@ msgstr ""
msgid "To %(box_name)s Ports"
msgstr ""
+#: plinth/templates/setup.html:18
+msgid "Application installed."
+msgstr "應用已完成安裝。"
+
#: plinth/templates/setup.html:24
msgid "Install this application?"
msgstr ""
@@ -7422,56 +7603,81 @@ msgid "This application needs an update. Update now?"
msgstr ""
#: plinth/templates/setup.html:39
-msgid ""
-"Another installation or upgrade is already running. Please wait for a few "
-"moments before trying again."
-msgstr ""
-
-#: plinth/templates/setup.html:46
msgid "This application is currently not available in your distribution."
msgstr ""
-#: plinth/templates/setup.html:50
+#: plinth/templates/setup.html:43
msgid "Check again"
msgstr ""
-#: plinth/templates/setup.html:55
+#: plinth/templates/setup.html:48
msgid ""
"Conflicting Packages: Some packages installed on the system "
"conflict with the installation of this app. The following packages will be "
"removed if you proceed:"
msgstr ""
-#: plinth/templates/setup.html:71
+#: plinth/templates/setup.html:64
msgid "Install"
msgstr ""
-#: plinth/templates/setup.html:73
+#: plinth/templates/setup.html:66
msgid "Update"
msgstr ""
-#: plinth/templates/setup.html:83
-msgid "Performing pre-install operation"
-msgstr ""
+#: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40
+#: plinth/templates/uninstall.html:36
+#, fuzzy
+#| msgid "Application installed."
+msgid "Uninstall"
+msgstr "應用已完成安裝。"
-#: plinth/templates/setup.html:88
-msgid "Performing post-install operation"
-msgstr ""
-
-#: plinth/templates/setup.html:94
+#: plinth/templates/uninstall.html:11
#, python-format
-msgid "Installing %(package_names)s: %(status)s"
+msgid "Uninstall App %(app_name)s?"
msgstr ""
-#: plinth/templates/setup.html:104
-#, python-format
-msgid "%(percentage)s%% complete"
+#: plinth/templates/uninstall.html:17
+msgid "Uninstalling an app is an exprimental feature."
+msgstr ""
+
+#: plinth/templates/uninstall.html:23
+msgid ""
+"All app data and configuration will be permanently lost. App may be "
+"installed freshly again."
+msgstr ""
+
+#: plinth/views.py:221
+msgid "Setting unchanged"
+msgstr ""
+
+#: plinth/views.py:401
+#, python-brace-format
+msgid "before uninstall of {app_id}"
msgstr ""
#: plinth/web_framework.py:114
msgid "Gujarati"
msgstr ""
+#~ 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 需要您透過網域名稱存取它。當 URL 使用 IP 位址為其中一部分時會無法"
+#~ "使用。"
+
+#~ msgid "Access"
+#~ msgstr "存取"
+
+#~ msgid "Cockpit will only work when accessed using the following URLs."
+#~ msgstr "Cockpit 只有在使用下列 URL 存取時才能存取。"
+
+#, fuzzy
+#~| msgid "Web Server"
+#~ msgid "WebRTC server"
+#~ msgstr "網頁伺服器"
+
#, fuzzy
#~| msgid "Enable DNSSEC"
#~ msgid "Enable"
@@ -7482,11 +7688,6 @@ msgstr ""
#~ msgid "Enter a valid domain"
#~ msgstr "無效的網域名稱"
-#, fuzzy
-#~| msgid "An error occurred during configuration."
-#~ msgid "Error updating configuration"
-#~ msgstr "設置過程中發生錯誤。"
-
#, fuzzy
#~| msgid "Delete files"
#~ msgid "Delete selected"
diff --git a/plinth/middleware.py b/plinth/middleware.py
index b68db7a89..0dec396ba 100644
--- a/plinth/middleware.py
+++ b/plinth/middleware.py
@@ -4,7 +4,6 @@ Common Django middleware.
"""
import logging
-import sys
from django import urls
from django.conf import settings
@@ -13,41 +12,26 @@ from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.shortcuts import render
from django.utils.deprecation import MiddlewareMixin
-from django.utils.translation import gettext_lazy as _
from stronghold.utils import is_view_func_public
from plinth import app as app_module
from plinth import setup
-from plinth.package import PackageException
from plinth.utils import is_user_admin
+from . import operation as operation_module
from . import views
logger = logging.getLogger(__name__)
-def _collect_setup_result(request, app):
- """Show success/fail message from previous install operation."""
- setup_helper = sys.modules[app.__module__].setup_helper
- if not setup_helper.is_finished:
- return
-
- exception = setup_helper.collect_result()
- if not exception:
- if not app.info.is_essential:
- messages.success(request, _('Application installed.'))
- else:
- if isinstance(exception, PackageException):
- error_string = getattr(exception, 'error_string', str(exception))
- error_details = getattr(exception, 'error_details', '')
- message = _('Error installing application: {string} '
- '{details}').format(string=error_string,
- details=error_details)
+def _collect_operations_results(request, app):
+ """Show success/fail messages from previous operations."""
+ operations = operation_module.manager.collect_results(app.app_id)
+ for operation in operations:
+ if operation.exception:
+ messages.error(request, operation.message)
else:
- message = _('Error installing application: {error}') \
- .format(error=exception)
-
- messages.error(request, message)
+ messages.success(request, operation.message)
class SetupMiddleware(MiddlewareMixin):
@@ -77,9 +61,9 @@ class SetupMiddleware(MiddlewareMixin):
app = app_module.App.get(app_id)
is_admin = is_user_admin(request)
- # Collect and show setup operation result to admins
+ # Collect and show operations' results to admins
if is_admin:
- _collect_setup_result(request, app)
+ _collect_operations_results(request, app)
# Check if application is up-to-date
if app.get_setup_state() == \
diff --git a/plinth/modules/apache/__init__.py b/plinth/modules/apache/__init__.py
index 4a6b3a4d3..ca567090e 100644
--- a/plinth/modules/apache/__init__.py
+++ b/plinth/modules/apache/__init__.py
@@ -15,15 +15,13 @@ from plinth.modules.letsencrypt.components import LetsEncrypt
from plinth.package import Packages
from plinth.utils import format_lazy, is_valid_user_name
-app = None
-
class ApacheApp(app_module.App):
"""FreedomBox app for Apache web server."""
app_id = 'apache'
- _version = 9
+ _version = 10
def __init__(self):
"""Create components for the app."""
@@ -59,14 +57,13 @@ class ApacheApp(app_module.App):
daemon = RelatedDaemon('related-daemon-apache', 'uwsgi')
self.add(daemon)
-
-def setup(helper, old_version=None):
- """Configure the module."""
- app.setup(old_version)
- actions.superuser_run(
- 'apache',
- ['setup', '--old-version', str(old_version)])
- helper.call('post', app.enable)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ actions.superuser_run('apache',
+ ['setup', '--old-version',
+ str(old_version)])
+ self.enable()
# (U)ser (W)eb (S)ites
diff --git a/plinth/modules/api/__init__.py b/plinth/modules/api/__init__.py
index 44fefaed8..153718faf 100644
--- a/plinth/modules/api/__init__.py
+++ b/plinth/modules/api/__init__.py
@@ -20,3 +20,8 @@ class ApiApp(app_module.App):
info = app_module.Info(app_id=self.app_id, version=self._version,
is_essential=True)
self.add(info)
+
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ self.enable()
diff --git a/plinth/modules/avahi/__init__.py b/plinth/modules/avahi/__init__.py
index 13ae5601a..f06bbf271 100644
--- a/plinth/modules/avahi/__init__.py
+++ b/plinth/modules/avahi/__init__.py
@@ -32,8 +32,6 @@ _description = [
'hostile local network.'), box_name=_(cfg.box_name))
]
-app = None
-
class AvahiApp(app_module.App):
"""FreedomBox app for Avahi."""
@@ -86,16 +84,14 @@ class AvahiApp(app_module.App):
post_hostname_change.connect(on_post_hostname_change)
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- # Reload avahi-daemon now that first-run does not reboot. After performing
- # FreedomBox Service (Plinth) package installation, new Avahi files will be
- # available and require restart.
- helper.call('post', actions.superuser_run, 'service',
- ['reload', 'avahi-daemon'])
- helper.call('post', app.enable)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ # Reload avahi-daemon now that first-run does not reboot. After
+ # performing FreedomBox Service (Plinth) package installation, new
+ # Avahi files will be available and require restart.
+ actions.superuser_run('service', ['reload', 'avahi-daemon'])
+ self.enable()
def on_post_hostname_change(sender, old_hostname, new_hostname, **kwargs):
diff --git a/plinth/modules/avahi/tests/test_functional.py b/plinth/modules/avahi/tests/test_functional.py
index 9263b3026..10f131f27 100644
--- a/plinth/modules/avahi/tests/test_functional.py
+++ b/plinth/modules/avahi/tests/test_functional.py
@@ -17,3 +17,4 @@ class TestAvahiApp(BaseAppTests):
app_name = 'avahi'
has_service = True
has_web = False
+ disable_after_tests = False
diff --git a/plinth/modules/backups/__init__.py b/plinth/modules/backups/__init__.py
index e40ad75ba..0583af152 100644
--- a/plinth/modules/backups/__init__.py
+++ b/plinth/modules/backups/__init__.py
@@ -31,8 +31,6 @@ MANIFESTS_FOLDER = '/var/lib/plinth/backups-manifests/'
# session variable name that stores when a backup file should be deleted
SESSION_PATH_VARIABLE = 'fbx-backups-upload-path'
-app = None
-
class BackupsApp(app_module.App):
"""FreedomBox app for backup and restore."""
@@ -67,18 +65,17 @@ class BackupsApp(app_module.App):
interval = 180 if cfg.develop else 3600
glib.schedule(interval, backup_by_schedule)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ from . import repository
+ actions.superuser_run(
+ 'backups', ['setup', '--path', repository.RootBorgRepository.PATH])
+ self.enable()
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- from . import repository
- helper.call('post', actions.superuser_run, 'backups',
- ['setup', '--path', repository.RootBorgRepository.PATH])
- helper.call('post', app.enable)
-
- # First time setup or upgrading from older versions.
- if old_version <= 2:
- _show_schedule_setup_notification()
+ # First time setup or upgrading from older versions.
+ if old_version <= 2:
+ _show_schedule_setup_notification()
def _backup_handler(packet, encryption_passphrase=None):
diff --git a/plinth/modules/backups/tests/test_api.py b/plinth/modules/backups/tests/test_api.py
index 395e2f271..cdcd6fa7d 100644
--- a/plinth/modules/backups/tests/test_api.py
+++ b/plinth/modules/backups/tests/test_api.py
@@ -14,8 +14,7 @@ from .. import api, forms, repository
from ..components import BackupRestore
# pylint: disable=protected-access
-
-setup_helper = MagicMock()
+pytestmark = pytest.mark.django_db
def _get_test_manifest(name):
diff --git a/plinth/modules/backups/urls.py b/plinth/modules/backups/urls.py
index fc9cdad03..4aace50db 100644
--- a/plinth/modules/backups/urls.py
+++ b/plinth/modules/backups/urls.py
@@ -5,14 +5,14 @@ URLs for the backups module.
from django.urls import re_path
-from .views import (AddRemoteRepositoryView, AddRepositoryView,
+from .views import (AddRemoteRepositoryView, AddRepositoryView, BackupsView,
CreateArchiveView, DeleteArchiveView, DownloadArchiveView,
- IndexView, RemoveRepositoryView, RestoreArchiveView,
+ RemoveRepositoryView, RestoreArchiveView,
RestoreFromUploadView, ScheduleView, UploadArchiveView,
VerifySshHostkeyView, mount_repository, umount_repository)
urlpatterns = [
- re_path(r'^sys/backups/$', IndexView.as_view(), name='index'),
+ re_path(r'^sys/backups/$', BackupsView.as_view(), name='index'),
re_path(r'^sys/backups/(?P[^/]+)/schedule/$', ScheduleView.as_view(),
name='schedule'),
re_path(r'^sys/backups/create/$', CreateArchiveView.as_view(),
diff --git a/plinth/modules/backups/views.py b/plinth/modules/backups/views.py
index feb9b0fbe..79b3cef19 100644
--- a/plinth/modules/backups/views.py
+++ b/plinth/modules/backups/views.py
@@ -22,6 +22,7 @@ from django.views.generic import FormView, TemplateView, View
from plinth.errors import PlinthError
from plinth.modules import backups, storage
+from plinth.views import AppView
from . import (SESSION_PATH_VARIABLE, api, forms, get_known_hosts_path,
is_ssh_hostkey_verified)
@@ -33,14 +34,15 @@ logger = logging.getLogger(__name__)
@method_decorator(delete_tmp_backup_file, name='dispatch')
-class IndexView(TemplateView):
+class BackupsView(AppView):
"""View to show list of archives."""
+
+ app_id = 'backups'
template_name = 'backups.html'
def get_context_data(self, **kwargs):
"""Return additional context for rendering the template."""
context = super().get_context_data(**kwargs)
- context['app_info'] = backups.app.info
context['repositories'] = [
repository.get_view_content() for repository in get_repositories()
]
diff --git a/plinth/modules/bepasty/__init__.py b/plinth/modules/bepasty/__init__.py
index 77ad279a1..e97e8caf9 100644
--- a/plinth/modules/bepasty/__init__.py
+++ b/plinth/modules/bepasty/__init__.py
@@ -32,8 +32,6 @@ _description = [
'their password from the list.'),
]
-app = None
-
PERMISSIONS = {
'read': _('Read a file, if a web link to the file is available'),
'create': _('Create or upload files'),
@@ -96,16 +94,17 @@ class BepastyApp(app_module.App):
**manifest.backup)
self.add(backup_restore)
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- helper.call('post', actions.superuser_run, 'bepasty',
- ['setup', '--domain-name', 'freedombox.local'])
- helper.call('post', app.enable)
- if old_version == 1 and not get_configuration().get('DEFAULT_PERMISSIONS'):
- # Upgrade to a better default only if user hasn't changed the value.
- set_default_permissions('read')
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ actions.superuser_run('bepasty',
+ ['setup', '--domain-name', 'freedombox.local'])
+ self.enable()
+ if old_version == 1 and not get_configuration().get(
+ 'DEFAULT_PERMISSIONS'):
+ # Upgrade to a better default only if user hasn't changed the
+ # value.
+ set_default_permissions('read')
def get_configuration():
diff --git a/plinth/modules/bind/__init__.py b/plinth/modules/bind/__init__.py
index 001d33ad3..ff61d51f4 100644
--- a/plinth/modules/bind/__init__.py
+++ b/plinth/modules/bind/__init__.py
@@ -16,7 +16,7 @@ from plinth import cfg, menu
from plinth.daemon import Daemon
from plinth.modules.backups.components import BackupRestore
from plinth.modules.firewall.components import Firewall
-from plinth.package import Packages
+from plinth.package import Packages, install
from plinth.utils import format_lazy
from . import manifest
@@ -58,8 +58,6 @@ listen-on-v6 { any; };
};
'''
-app = None
-
class BindApp(app_module.App):
"""FreedomBox app for Bind."""
@@ -99,20 +97,18 @@ class BindApp(app_module.App):
**manifest.backup)
self.add(backup_restore)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ actions.superuser_run('bind',
+ ['setup', '--old-version',
+ str(old_version)])
+ self.enable()
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- helper.call(
- 'post', actions.superuser_run, 'bind',
- ['setup', '--old-version', str(old_version)])
- helper.call('post', app.enable)
-
-
-def force_upgrade(helper, _packages):
- """Force upgrade the managed packages to resolve conffile prompt."""
- helper.install(['bind9'], force_configuration='old')
- return True
+ def force_upgrade(self, _packages):
+ """Force upgrade the managed packages to resolve conffile prompt."""
+ install(['bind9'], force_configuration='old')
+ return True
def get_config():
diff --git a/plinth/modules/calibre/__init__.py b/plinth/modules/calibre/__init__.py
index 0847bbf1d..93aeb164d 100644
--- a/plinth/modules/calibre/__init__.py
+++ b/plinth/modules/calibre/__init__.py
@@ -36,8 +36,6 @@ _description = [
'the app. All users with access can use all the libraries.')
]
-app = None
-
LIBRARY_NAME_PATTERN = r'[a-zA-Z0-9 _-]+'
@@ -101,11 +99,10 @@ class CalibreApp(app_module.App):
**manifest.backup)
self.add(backup_restore)
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- helper.call('post', app.enable)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ self.enable()
def validate_library_name(library_name):
diff --git a/plinth/modules/calibre/tests/test_views.py b/plinth/modules/calibre/tests/test_views.py
index 24ede010d..d1ee16747 100644
--- a/plinth/modules/calibre/tests/test_views.py
+++ b/plinth/modules/calibre/tests/test_views.py
@@ -100,7 +100,7 @@ def test_create_library_invalid_name(rf):
assert response.status_code == 200
-@patch('plinth.modules.calibre.app')
+@patch('plinth.app.App.get')
def test_delete_library_confirmation_view(_app, rf):
"""Test that deleting library confirmation shows correct name."""
response, _ = make_request(rf.get(''), views.delete_library,
@@ -110,7 +110,7 @@ def test_delete_library_confirmation_view(_app, rf):
@patch('plinth.modules.calibre.delete_library')
-@patch('plinth.modules.calibre.app')
+@patch('plinth.app.App.get')
def test_delete_library(_app, delete_library, rf):
"""Test that deleting a library works."""
response, messages = make_request(rf.post(''), views.delete_library,
diff --git a/plinth/modules/calibre/views.py b/plinth/modules/calibre/views.py
index 7e52b09c6..d8a9e6e5b 100644
--- a/plinth/modules/calibre/views.py
+++ b/plinth/modules/calibre/views.py
@@ -12,7 +12,9 @@ from django.urls import reverse_lazy
from django.utils.translation import gettext as _
from django.views.generic.edit import FormView
-from plinth import actions, views
+from plinth import actions
+from plinth import app as app_module
+from plinth import views
from plinth.modules import calibre
from . import forms
@@ -70,6 +72,6 @@ def delete_library(request, name):
return redirect(reverse_lazy('calibre:index'))
return TemplateResponse(request, 'calibre-delete-library.html', {
- 'title': calibre.app.info.name,
+ 'title': app_module.App.get('calibre').info.name,
'name': name
})
diff --git a/plinth/modules/cockpit/__init__.py b/plinth/modules/cockpit/__init__.py
index 0a5bc3a4b..53a89ec1b 100644
--- a/plinth/modules/cockpit/__init__.py
+++ b/plinth/modules/cockpit/__init__.py
@@ -6,19 +6,16 @@ FreedomBox app to configure Cockpit.
from django.urls import reverse_lazy
from django.utils.translation import gettext_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 import names
from plinth.modules.apache.components import Webserver
from plinth.modules.backups.components import BackupRestore
from plinth.modules.firewall.components import Firewall
from plinth.package import Packages
-from plinth.signals import domain_added, domain_removed
from plinth.utils import format_lazy
-from . import manifest, utils
+from . import manifest, privileged
_description = [
format_lazy(
@@ -36,31 +33,24 @@ _description = [
_('It can be accessed by any user on '
'{box_name} belonging to the admin group.'),
box_name=_(cfg.box_name), users_url=reverse_lazy('users:index')),
- format_lazy(
- _('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.')),
]
-app = None
-
class CockpitApp(app_module.App):
"""FreedomBox app for Cockpit."""
app_id = 'cockpit'
- _version = 1
-
- DAEMON = 'cockpit.socket'
+ _version = 2
def __init__(self):
"""Create components for the app."""
super().__init__()
info = app_module.Info(app_id=self.app_id, version=self._version,
- is_essential=True, name=_('Cockpit'),
- icon='fa-wrench', icon_filename='cockpit',
+ depends=['apache'], is_essential=True,
+ name=_('Cockpit'), icon='fa-wrench',
+ icon_filename='cockpit',
short_description=_('Server Administration'),
description=_description, manual_page='Cockpit',
clients=manifest.clients)
@@ -90,43 +80,16 @@ class CockpitApp(app_module.App):
urls=['https://{host}/_cockpit/'])
self.add(webserver)
- daemon = Daemon('daemon-cockpit', self.DAEMON)
+ daemon = Daemon('daemon-cockpit', 'cockpit.socket')
self.add(daemon)
backup_restore = BackupRestore('backup-restore-cockpit',
**manifest.backup)
self.add(backup_restore)
- @staticmethod
- def post_init():
- """Perform post initialization operations."""
- domain_added.connect(on_domain_added)
- domain_removed.connect(on_domain_removed)
-
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- domains = names.components.DomainName.list_names('https')
- helper.call('post', actions.superuser_run, 'cockpit',
- ['setup'] + list(domains))
- helper.call('post', app.enable)
-
-
-def on_domain_added(sender, domain_type, name='', description='',
- services=None, **kwargs):
- """Handle addition of a new domain."""
- if name and not app.needs_setup():
- if name not in utils.get_domains():
- actions.superuser_run('cockpit', ['add-domain', name])
- actions.superuser_run('service',
- ['try-restart', CockpitApp.DAEMON])
-
-
-def on_domain_removed(sender, domain_type, name='', **kwargs):
- """Handle removal of a domain."""
- if name and not app.needs_setup():
- if name in utils.get_domains():
- actions.superuser_run('cockpit', ['remove-domain', name])
- actions.superuser_run('service',
- ['try-restart', CockpitApp.DAEMON])
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ privileged.setup()
+ if not old_version:
+ self.enable()
diff --git a/plinth/modules/cockpit/data/etc/apache2/conf-available/cockpit-freedombox.conf b/plinth/modules/cockpit/data/etc/apache2/conf-available/cockpit-freedombox.conf
index 495037bbe..db203d231 100644
--- a/plinth/modules/cockpit/data/etc/apache2/conf-available/cockpit-freedombox.conf
+++ b/plinth/modules/cockpit/data/etc/apache2/conf-available/cockpit-freedombox.conf
@@ -14,9 +14,17 @@
ReWriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
- ProxyPass http://localhost:9090/_cockpit/
+ ProxyPass https://localhost:9090/_cockpit/
+ ProxyPreserveHost On
- ProxyPass ws://localhost:9090/_cockpit/socket
+ ProxyPass wss://localhost:9090/_cockpit/socket
+ ProxyPreserveHost On
+
+
+ SSLProxyEngine on
+ SSLProxyVerify none
+ SSLProxyCheckPeerName off
+
diff --git a/plinth/modules/cockpit/privileged.py b/plinth/modules/cockpit/privileged.py
new file mode 100644
index 000000000..e7cfdfaec
--- /dev/null
+++ b/plinth/modules/cockpit/privileged.py
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: AGPL-3.0-or-later
+"""
+Configure Cockpit.
+"""
+
+import augeas
+
+from plinth import action_utils
+from plinth.actions import privileged
+
+CONFIG_FILE = '/etc/cockpit/cockpit.conf'
+
+
+def _load_augeas():
+ """Initialize Augeas."""
+ aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
+ augeas.Augeas.NO_MODL_AUTOLOAD)
+ aug.set('/augeas/load/inifile/lens', 'Puppet.lns')
+ aug.set('/augeas/load/inifile/incl[last() + 1]', CONFIG_FILE)
+ aug.load()
+ return aug
+
+
+@privileged
+def setup():
+ """Setup Cockpit configuration."""
+ aug = _load_augeas()
+ aug.set('/files' + CONFIG_FILE + '/WebService/UrlRoot', '/_cockpit/')
+ aug.remove('/files' + CONFIG_FILE + '/WebService/Origins')
+ aug.save()
+ action_utils.service_restart('cockpit.socket')
+ # Accommodate changes in Apache configuration file from v1 to v2.
+ action_utils.service_reload('apache2')
diff --git a/plinth/modules/cockpit/templates/cockpit.html b/plinth/modules/cockpit/templates/cockpit.html
deleted file mode 100644
index f962db2e9..000000000
--- a/plinth/modules/cockpit/templates/cockpit.html
+++ /dev/null
@@ -1,24 +0,0 @@
-{% extends "app.html" %}
-{% comment %}
-# SPDX-License-Identifier: AGPL-3.0-or-later
-{% endcomment %}
-{% load bootstrap %}
-{% load i18n %}
-
-{% block status %}
- {{ block.super }}
-
-
{% trans "Access" %}
-
-
- {% blocktrans trimmed %}
- Cockpit will only work when accessed using the following URLs.
- {% endblocktrans %}
-
-
-
- {% for url_ in urls %}
-
{{ url_ }}
- {% endfor %}
-
-{% endblock %}
diff --git a/plinth/modules/cockpit/urls.py b/plinth/modules/cockpit/urls.py
index 041de1146..0b888270a 100644
--- a/plinth/modules/cockpit/urls.py
+++ b/plinth/modules/cockpit/urls.py
@@ -5,8 +5,9 @@ URLs for Cockpit module.
from django.urls import re_path
-from plinth.modules.cockpit.views import CockpitAppView
+from plinth.views import AppView
urlpatterns = [
- re_path(r'^sys/cockpit/$', CockpitAppView.as_view(), name='index'),
+ re_path(r'^sys/cockpit/$', AppView.as_view(app_id='cockpit'),
+ name='index'),
]
diff --git a/plinth/modules/cockpit/utils.py b/plinth/modules/cockpit/utils.py
deleted file mode 100644
index 385642174..000000000
--- a/plinth/modules/cockpit/utils.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
-Minor utility methods for Cockpit.
-"""
-
-import urllib.parse
-
-import augeas
-
-CONFIG_FILE = '/etc/cockpit/cockpit.conf'
-
-
-def load_augeas():
- """Initialize Augeas."""
- aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
- augeas.Augeas.NO_MODL_AUTOLOAD)
- aug.set('/augeas/load/inifile/lens', 'Puppet.lns')
- aug.set('/augeas/load/inifile/incl[last() + 1]', CONFIG_FILE)
- aug.load()
- return aug
-
-
-def get_origin_domains(aug):
- """Return the list of allowed origin domains."""
- origins = aug.get('/files' + CONFIG_FILE + '/WebService/Origins')
- return set(origins.split()) if origins else set()
-
-
-def get_origin_from_domain(domain):
- """Return the origin that should be allowed for a domain."""
- return 'https://{domain}'.format(domain=domain)
-
-
-def _get_domain_from_origin(origin):
- """Return the domain from an origin URL."""
- return urllib.parse.urlparse(origin).netloc
-
-
-def get_domains():
- """Return the domain name in origin URL."""
- aug = load_augeas()
- origins = get_origin_domains(aug)
- return [_get_domain_from_origin(origin) for origin in origins]
diff --git a/plinth/modules/cockpit/views.py b/plinth/modules/cockpit/views.py
deleted file mode 100644
index 231e6c67d..000000000
--- a/plinth/modules/cockpit/views.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
-Views for the Cockpit module
-"""
-from plinth.modules.cockpit.utils import get_origin_domains, load_augeas
-from plinth.views import AppView
-
-
-class CockpitAppView(AppView):
- app_id = 'cockpit'
- template_name = 'cockpit.html'
-
- def get_context_data(self, *args, **kwargs):
- context = super().get_context_data(**kwargs)
- urls = get_origin_domains(load_augeas())
- context['urls'] = [url for url in urls if 'localhost' not in url]
-
- return context
diff --git a/plinth/modules/config/__init__.py b/plinth/modules/config/__init__.py
index 0de181ce9..80d2adb9e 100644
--- a/plinth/modules/config/__init__.py
+++ b/plinth/modules/config/__init__.py
@@ -19,6 +19,8 @@ from plinth.modules.names.components import DomainType
from plinth.package import Packages
from plinth.signals import domain_added
+from . import privileged
+
_description = [
_('Here you can set some general configuration options '
'like hostname, domain name, webserver home page etc.')
@@ -32,15 +34,13 @@ FREEDOMBOX_APACHE_CONFIG = os.path.join(APACHE_CONF_ENABLED_DIR,
'freedombox.conf')
ADVANCED_MODE_KEY = 'advanced_mode'
-app = None
-
class ConfigApp(app_module.App):
"""FreedomBox app for basic system configuration."""
app_id = 'config'
- _version = 3
+ _version = 4
can_be_disabled = False
@@ -82,6 +82,25 @@ class ConfigApp(app_module.App):
domain_type='domain-type-static',
name=domainname, services='__all__')
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ _migrate_home_page_config()
+
+ if old_version <= 3:
+ privileged.set_logging_mode('volatile')
+
+ # systemd-journald is socket activated, it may not be running and it
+ # does not support reload.
+ actions.superuser_run('service', ['try-restart', 'systemd-journald'])
+ # rsyslog when enabled, is activated by syslog.socket (shipped by
+ # systemd). See:
+ # https://www.freedesktop.org/wiki/Software/systemd/syslog/ .
+ actions.superuser_run('service', ['disable', 'rsyslog'])
+ # Ensure that rsyslog is not started by something else as it is
+ # installed by default on Debian systems.
+ actions.superuser_run('service', ['mask', 'rsyslog'])
+
def get_domainname():
"""Return the domainname"""
@@ -190,22 +209,6 @@ def set_advanced_mode(advanced_mode):
kvstore.set(ADVANCED_MODE_KEY, advanced_mode)
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- _migrate_home_page_config()
-
- # systemd-journald is socket activated, it may not be running and it does
- # not support reload.
- actions.superuser_run('service', ['try-restart', 'systemd-journald'])
- # rsyslog when enabled, is activated by syslog.socket (shipped by systemd).
- # See: https://www.freedesktop.org/wiki/Software/systemd/syslog/ .
- actions.superuser_run('service', ['disable', 'rsyslog'])
- # Ensure that rsyslog is not started by something else as it is installed
- # by default on Debian systems.
- actions.superuser_run('service', ['mask', 'rsyslog'])
-
-
def _migrate_home_page_config():
"""Move the home page configuration to an external file."""
diff --git a/plinth/modules/config/forms.py b/plinth/modules/config/forms.py
index 1b57e41fb..a35044823 100644
--- a/plinth/modules/config/forms.py
+++ b/plinth/modules/config/forms.py
@@ -99,3 +99,15 @@ class ConfigurationForm(forms.Form):
help_text=gettext_lazy(
'Show apps and features that require more technical '
'knowledge.'))
+
+ logging_mode = forms.ChoiceField(
+ label=gettext_lazy('System-wide logging'),
+ choices=(('none', gettext_lazy('Disable logging, for privacy')),
+ ('volatile',
+ gettext_lazy('Keep some in memory until a restart, '
+ 'for performance')),
+ ('persistent',
+ gettext_lazy('Write to disk, useful for debugging'))),
+ help_text=gettext_lazy(
+ 'Logs contain information about who accessed the system and debug '
+ 'information from various services'))
diff --git a/plinth/modules/config/privileged.py b/plinth/modules/config/privileged.py
new file mode 100644
index 000000000..264f668ae
--- /dev/null
+++ b/plinth/modules/config/privileged.py
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: AGPL-3.0-or-later
+"""Configure miscellaneous system settings."""
+
+import pathlib
+
+import augeas
+
+from plinth import action_utils
+from plinth.actions import privileged
+
+JOURNALD_FILE = pathlib.Path('/etc/systemd/journald.conf.d/50-freedombox.conf')
+
+
+def load_augeas():
+ """Initialize Augeas."""
+ aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
+ augeas.Augeas.NO_MODL_AUTOLOAD)
+ aug.transform('Puppet', str(JOURNALD_FILE))
+ aug.set('/augeas/context', '/files' + str(JOURNALD_FILE))
+ aug.load()
+ return aug
+
+
+def get_logging_mode() -> str:
+ """Return the logging mode as none, volatile or persistent."""
+ aug = load_augeas()
+ storage = aug.get('Journal/Storage')
+ if storage in ('volatile', 'persistent', 'none'):
+ return storage
+
+ # journald's default is 'auto'. On Debian systems, 'auto' is same
+ # 'persistent' because /var/log/journal exists by default.
+ return 'persistent'
+
+
+@privileged
+def set_logging_mode(mode: str) -> None:
+ """Set the current logging mode."""
+ if mode not in ('volatile', 'persistent', 'none'):
+ raise ValueError('Invalid mode')
+
+ aug = load_augeas()
+ aug.set('Journal/Storage', mode)
+ if mode == 'volatile':
+ aug.set('Journal/RuntimeMaxUse', '5%')
+ aug.set('Journal/MaxFileSec', '6h')
+ aug.set('Journal/MaxRetentionSec', '2day')
+ else:
+ aug.remove('Journal/RuntimeMaxUse')
+ aug.remove('Journal/MaxFileSec')
+ aug.remove('Journal/MaxRetentionSec')
+
+ JOURNALD_FILE.parent.mkdir(exist_ok=True)
+ aug.save()
+
+ # systemd-journald is socket activated, it may not be running and it does
+ # not support reload.
+ action_utils.service_try_restart('systemd-journald')
diff --git a/plinth/modules/config/tests/test_config.py b/plinth/modules/config/tests/test_config.py
index 378626a4b..265512e25 100644
--- a/plinth/modules/config/tests/test_config.py
+++ b/plinth/modules/config/tests/test_config.py
@@ -29,14 +29,16 @@ def test_hostname_field():
for hostname in valid_hostnames:
form = ConfigurationForm({
'hostname': hostname,
- 'domainname': 'example.com'
+ 'domainname': 'example.com',
+ 'logging_mode': 'volatile'
})
assert form.is_valid()
for hostname in invalid_hostnames:
form = ConfigurationForm({
'hostname': hostname,
- 'domainname': 'example.com'
+ 'domainname': 'example.com',
+ 'logging_mode': 'volatile'
})
assert not form.is_valid()
@@ -57,14 +59,16 @@ def test_domainname_field():
for domainname in valid_domainnames:
form = ConfigurationForm({
'hostname': 'example',
- 'domainname': domainname
+ 'domainname': domainname,
+ 'logging_mode': 'volatile'
})
assert form.is_valid()
for domainname in invalid_domainnames:
form = ConfigurationForm({
'hostname': 'example',
- 'domainname': domainname
+ 'domainname': domainname,
+ 'logging_mode': 'volatile'
})
assert not form.is_valid()
diff --git a/plinth/modules/config/tests/test_functional.py b/plinth/modules/config/tests/test_functional.py
index e063fde61..0b3ee1a37 100644
--- a/plinth/modules/config/tests/test_functional.py
+++ b/plinth/modules/config/tests/test_functional.py
@@ -20,7 +20,7 @@ def fixture_background(session_browser):
def test_change_hostname(session_browser):
"""Test changing the hostname."""
- _set_hostname(session_browser, 'mybox')
+ functional.set_hostname(session_browser, 'mybox')
assert _get_hostname(session_browser) == 'mybox'
@@ -49,13 +49,6 @@ def _get_hostname(browser):
return browser.find_by_id('id_hostname').value
-def _set_hostname(browser, hostname):
- functional.nav_to_module(browser, 'config')
- browser.find_by_id('id_hostname').fill(hostname)
- update_setup = browser.find_by_css('.btn-primary')
- functional.submit(browser, element=update_setup)
-
-
def _get_domain_name(browser):
functional.nav_to_module(browser, 'config')
return browser.find_by_id('id_domainname').value
diff --git a/plinth/modules/config/views.py b/plinth/modules/config/views.py
index ceddffad2..1e5599022 100644
--- a/plinth/modules/config/views.py
+++ b/plinth/modules/config/views.py
@@ -13,6 +13,7 @@ from plinth.modules import config
from plinth.signals import (domain_added, domain_removed, post_hostname_change,
pre_hostname_change)
+from . import privileged
from .forms import ConfigurationForm
LOGGER = logging.getLogger(__name__)
@@ -30,6 +31,7 @@ class ConfigAppView(views.AppView):
'domainname': config.get_domainname(),
'homepage': config.get_home_page(),
'advanced_mode': config.get_advanced_mode(),
+ 'logging_mode': privileged.get_logging_mode(),
}
def form_valid(self, form):
@@ -37,6 +39,8 @@ class ConfigAppView(views.AppView):
old_status = form.initial
new_status = form.cleaned_data
+ is_changed = False
+
if old_status['hostname'] != new_status['hostname']:
try:
set_hostname(new_status['hostname'])
@@ -87,6 +91,13 @@ class ConfigAppView(views.AppView):
messages.success(self.request,
_('Hiding advanced apps and features'))
+ if old_status['logging_mode'] != new_status['logging_mode']:
+ privileged.set_logging_mode(new_status['logging_mode'])
+ is_changed = True
+
+ if is_changed:
+ messages.success(self.request, _('Configuration updated'))
+
return super(views.AppView, self).form_valid(form)
diff --git a/plinth/modules/coturn/__init__.py b/plinth/modules/coturn/__init__.py
index 7ccb8afe3..71498f5e8 100644
--- a/plinth/modules/coturn/__init__.py
+++ b/plinth/modules/coturn/__init__.py
@@ -34,11 +34,10 @@ _description = [
_('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.'),
- ms_url=reverse_lazy('matrixsynapse:index'), e_url=('ejabberd:index')),
+ ms_url=reverse_lazy('matrixsynapse:index'),
+ e_url=reverse_lazy('ejabberd:index')),
]
-app = None
-
logger = logging.getLogger(__name__)
@@ -107,16 +106,15 @@ class CoturnApp(app_module.App):
**manifest.backup)
self.add(backup_restore)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ actions.superuser_run('coturn', ['setup'])
+ if old_version == 0:
+ self.enable()
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- helper.call('post', actions.superuser_run, 'coturn', ['setup'])
- if old_version == 0:
- helper.call('post', app.enable)
-
- app.get_component('letsencrypt-coturn').setup_certificates()
- notify_configuration_change()
+ self.get_component('letsencrypt-coturn').setup_certificates()
+ notify_configuration_change()
def get_available_domains():
diff --git a/plinth/modules/coturn/views.py b/plinth/modules/coturn/views.py
index 07073968a..25e6e46b7 100644
--- a/plinth/modules/coturn/views.py
+++ b/plinth/modules/coturn/views.py
@@ -7,6 +7,7 @@ from django.contrib import messages
from django.utils.translation import gettext_lazy as _
import plinth.modules.coturn as coturn
+from plinth import app as app_module
from plinth import views
from . import forms
@@ -35,7 +36,8 @@ class CoturnAppView(views.AppView):
data = form.cleaned_data
if coturn.get_domain() != data['domain']:
coturn.set_domain(data['domain'])
- coturn.app.get_component('letsencrypt-coturn').setup_certificates()
+ app = app_module.App.get('coturn')
+ app.get_component('letsencrypt-coturn').setup_certificates()
messages.success(self.request, _('Configuration updated'))
return super().form_valid(form)
diff --git a/plinth/modules/datetime/__init__.py b/plinth/modules/datetime/__init__.py
index 0c5ea7acc..e51cd50cd 100644
--- a/plinth/modules/datetime/__init__.py
+++ b/plinth/modules/datetime/__init__.py
@@ -20,8 +20,6 @@ _description = [
'in synchronization with servers on the Internet.')
]
-app = None
-
class DateTimeApp(app_module.App):
"""FreedomBox app for date and time if time syncronization is unmanaged."""
@@ -97,10 +95,10 @@ class DateTimeApp(app_module.App):
"""Return that app has diagnostics only when time is managed."""
return self._is_time_managed()
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- helper.call('post', app.enable)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ self.enable()
def _diagnose_time_synchronized():
diff --git a/plinth/modules/deluge/__init__.py b/plinth/modules/deluge/__init__.py
index 3c4ede5d7..d6c65a743 100644
--- a/plinth/modules/deluge/__init__.py
+++ b/plinth/modules/deluge/__init__.py
@@ -24,8 +24,6 @@ _description = [
'change it immediately after enabling this service.')
]
-app = None
-
SYSTEM_USER = 'debian-deluged'
@@ -94,10 +92,9 @@ class DelugeApp(app_module.App):
**manifest.backup)
self.add(backup_restore)
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- add_user_to_share_group(SYSTEM_USER)
- helper.call('post', actions.superuser_run, 'deluge', ['setup'])
- helper.call('post', app.enable)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ add_user_to_share_group(SYSTEM_USER)
+ actions.superuser_run('deluge', ['setup'])
+ self.enable()
diff --git a/plinth/modules/diagnostics/__init__.py b/plinth/modules/diagnostics/__init__.py
index 7bb51f071..97dad9efa 100644
--- a/plinth/modules/diagnostics/__init__.py
+++ b/plinth/modules/diagnostics/__init__.py
@@ -25,8 +25,6 @@ _description = [
'expected.')
]
-app = None
-
logger = logging.Logger(__name__)
running_task = None
@@ -43,6 +41,8 @@ class DiagnosticsApp(app_module.App):
_version = 1
+ can_be_disabled = False
+
def __init__(self):
"""Create components for the app."""
super().__init__()
@@ -67,6 +67,11 @@ class DiagnosticsApp(app_module.App):
interval = 180 if cfg.develop else 3600
glib.schedule(interval, _warn_about_low_ram_space)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ self.enable()
+
def diagnose(self):
"""Run diagnostics and return the results."""
results = super().diagnose()
diff --git a/plinth/modules/diagnostics/templates/diagnostics.html b/plinth/modules/diagnostics/templates/diagnostics.html
index 624e39102..a6e4703f1 100644
--- a/plinth/modules/diagnostics/templates/diagnostics.html
+++ b/plinth/modules/diagnostics/templates/diagnostics.html
@@ -8,7 +8,7 @@
{% block configuration %}
- {% if not is_running %}
+ {% if not is_task_running %}
{% endblock %}
diff --git a/plinth/modules/help/tests/test_views.py b/plinth/modules/help/tests/test_views.py
index dc8b86354..b61730329 100644
--- a/plinth/modules/help/tests/test_views.py
+++ b/plinth/modules/help/tests/test_views.py
@@ -9,6 +9,7 @@ Pending: - status log
"""
+import json
import pathlib
import subprocess
from unittest.mock import patch
@@ -42,7 +43,6 @@ def fixture_app_urls():
@pytest.mark.parametrize("view_name, view", (
- ('contribute', views.contribute),
('feedback', views.feedback),
('support', views.support),
('index', views.index),
@@ -53,10 +53,46 @@ def test_simple_help_pages(rf, view_name, view):
assert _is_page(response)
-def test_about(rf):
+@patch('apt.Cache')
+@patch('gzip.decompress')
+@patch('requests.get')
+def test_contribute_page(requests_get, decompress, apt_cache, rf):
+ """Test the contribute page."""
+ issues = [{
+ 'type': 'testing-autorm',
+ 'packages': ['autormpkg'],
+ 'source': 'autormsrc',
+ 'bugs': ['123']
+ }, {
+ 'type': 'no-testing',
+ 'package': ['notestingpkg'],
+ 'source': 'nottestingsrc',
+ }, {
+ 'type': 'gift',
+ 'package': ['giftpkg'],
+ 'bug': '456',
+ 'title': 'bug 456 title',
+ }, {
+ 'type': 'help',
+ 'package': ['helppkg'],
+ 'bug': '567',
+ 'title': 'bug 567 title',
+ }]
+ decompress.return_value = json.dumps(issues)
+ response = views.contribute(rf.get(urls.reverse('help:contribute')))
+ assert _is_page(response)
+ assert issues == (response.context_data['testing_autorm'] +
+ response.context_data['no_testing'] +
+ response.context_data['gift'] +
+ response.context_data['help'])
+
+
+@patch('plinth.modules.upgrades.views.is_newer_version_available')
+@patch('plinth.modules.upgrades.views.get_os_release')
+def test_about(_get_os_release, _is_newer_version_available, rf):
"""Test some expected items in about view."""
- manual_url = urls.reverse('help:manual')
- response = views.about(rf.get(manual_url))
+ about_url = urls.reverse('help:about')
+ response = views.about(rf.get(about_url))
assert _is_page(response)
for item in ('version', 'new_version', 'os_release'):
assert item in response.context_data
diff --git a/plinth/modules/help/views.py b/plinth/modules/help/views.py
index 2ddef7f9f..f18d0dd1b 100644
--- a/plinth/modules/help/views.py
+++ b/plinth/modules/help/views.py
@@ -3,10 +3,14 @@
Help app for FreedomBox.
"""
+import gzip
+import json
import mimetypes
import os
import pathlib
+import apt
+import requests
from django.core.files.base import File
from django.http import Http404, HttpResponse, HttpResponseRedirect
from django.template.response import TemplateResponse
@@ -15,8 +19,7 @@ from django.utils.translation import get_language_from_request
from django.utils.translation import gettext as _
from plinth import __version__, actions, cfg
-from plinth.modules.upgrades.views import (get_os_release,
- is_newer_version_available)
+from plinth.modules.upgrades import views as upgrades_views
def index(request):
@@ -27,8 +30,52 @@ def index(request):
def contribute(request):
"""Serve the contribute page"""
- return TemplateResponse(request, 'help_contribute.html',
- {'title': _('Contribute')})
+ response = requests.get('https://udd.debian.org/how-can-i-help.json.gz')
+ data = gzip.decompress(response.content)
+ issues = json.loads(data)
+
+ # Split issues according to type and filter for installed packages.
+ testing_autorm = []
+ no_testing = []
+ gift = []
+ help_needed = []
+ cache = apt.Cache()
+ for issue in issues:
+ if issue['type'] == 'testing-autorm':
+ for package in issue['packages']:
+ try:
+ if cache[package].is_installed:
+ testing_autorm.append(issue)
+ break
+ except KeyError:
+ pass
+ elif issue['type'] == 'no-testing':
+ try:
+ if cache[issue['package']].is_installed:
+ no_testing.append(issue)
+ except KeyError:
+ pass
+ elif issue['type'] == 'gift':
+ try:
+ if cache[issue['package']].is_installed:
+ gift.append(issue)
+ except KeyError:
+ pass
+ elif issue['type'] == 'help':
+ try:
+ if cache[issue['package']].is_installed:
+ help_needed.append(issue)
+ except KeyError:
+ pass
+
+ return TemplateResponse(
+ request, 'help_contribute.html', {
+ 'title': _('Contribute'),
+ 'testing_autorm': testing_autorm,
+ 'no_testing': no_testing,
+ 'gift': gift,
+ 'help': help_needed,
+ })
def feedback(request):
@@ -48,8 +95,8 @@ def about(request):
context = {
'title': _('About {box_name}').format(box_name=_(cfg.box_name)),
'version': __version__,
- 'new_version': is_newer_version_available(),
- 'os_release': get_os_release()
+ 'new_version': upgrades_views.is_newer_version_available(),
+ 'os_release': upgrades_views.get_os_release()
}
return TemplateResponse(request, 'help_about.html', context)
diff --git a/plinth/modules/i2p/__init__.py b/plinth/modules/i2p/__init__.py
index 7c70dfa85..aad01f1e1 100644
--- a/plinth/modules/i2p/__init__.py
+++ b/plinth/modules/i2p/__init__.py
@@ -35,8 +35,6 @@ tunnels_to_manage = {
'Irc2P': 'i2p-irc-freedombox'
}
-app = None
-
class I2PApp(app_module.App):
"""FreedomBox app for I2P."""
@@ -98,33 +96,32 @@ class I2PApp(app_module.App):
backup_restore = BackupRestore('backup-restore-i2p', **manifest.backup)
self.add(backup_restore)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
+ self.disable()
+ # Add favorites to the configuration
+ for fav in FAVORITES:
+ args = [
+ 'add-favorite',
+ '--name',
+ fav.get('name'),
+ '--url',
+ fav.get('url'),
+ ]
+ if 'icon' in fav:
+ args.extend(['--icon', fav.get('icon')])
- helper.call('post', app.disable)
- # Add favorites to the configuration
- for fav in FAVORITES:
- args = [
- 'add-favorite',
- '--name',
- fav.get('name'),
- '--url',
- fav.get('url'),
- ]
- if 'icon' in fav:
- args.extend(['--icon', fav.get('icon')])
+ if 'description' in fav:
+ args.extend(['--description', fav.get('description')])
- if 'description' in fav:
- args.extend(['--description', fav.get('description')])
+ actions.superuser_run('i2p', args)
- helper.call('post', actions.superuser_run, 'i2p', args)
-
- # Tunnels to all interfaces
- for tunnel in tunnels_to_manage:
- helper.call('post', actions.superuser_run, 'i2p', [
- 'set-tunnel-property', '--name', tunnel, '--property', 'interface',
- '--value', '0.0.0.0'
- ])
- helper.call('post', app.enable)
+ # Tunnels to all interfaces
+ for tunnel in tunnels_to_manage:
+ actions.superuser_run('i2p', [
+ 'set-tunnel-property', '--name', tunnel, '--property',
+ 'interface', '--value', '0.0.0.0'
+ ])
+ self.enable()
diff --git a/plinth/modules/ikiwiki/__init__.py b/plinth/modules/ikiwiki/__init__.py
index e094ce128..f237a6657 100644
--- a/plinth/modules/ikiwiki/__init__.py
+++ b/plinth/modules/ikiwiki/__init__.py
@@ -31,8 +31,6 @@ _description = [
users_url=reverse_lazy('users:index'))
]
-app = None
-
class IkiwikiApp(app_module.App):
"""FreedomBox app for Ikiwiki."""
@@ -112,9 +110,8 @@ class IkiwikiApp(app_module.App):
return sites
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- helper.call('post', actions.superuser_run, 'ikiwiki', ['setup'])
- helper.call('post', app.enable)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ actions.superuser_run('ikiwiki', ['setup'])
+ self.enable()
diff --git a/plinth/modules/ikiwiki/views.py b/plinth/modules/ikiwiki/views.py
index 0959bfc04..b7f7c4e20 100644
--- a/plinth/modules/ikiwiki/views.py
+++ b/plinth/modules/ikiwiki/views.py
@@ -9,20 +9,23 @@ from django.template.response import TemplateResponse
from django.urls import reverse_lazy
from django.utils.translation import gettext as _
-from plinth import actions, views
-from plinth.modules import ikiwiki
+from plinth import actions
+from plinth import app as app_module
+from plinth import views
from .forms import IkiwikiCreateForm
class IkiwikiAppView(views.AppView):
"""Serve configuration page."""
+
app_id = 'ikiwiki'
template_name = 'ikiwiki_configure.html'
def get_context_data(self, **kwargs):
"""Return the context data for rendering the template view."""
- sites = ikiwiki.app.refresh_sites()
+ app = app_module.App.get('ikiwiki')
+ sites = app.refresh_sites()
sites = [name for name in sites if name != '']
context = super().get_context_data(**kwargs)
@@ -34,6 +37,7 @@ def create(request):
"""Form to create a wiki or blog."""
form = None
+ app = app_module.App.get('ikiwiki')
if request.method == 'POST':
form = IkiwikiCreateForm(request.POST, prefix='ikiwiki')
if form.is_valid():
@@ -46,16 +50,16 @@ def create(request):
form.cleaned_data['admin_name'],
form.cleaned_data['admin_password'])
- ikiwiki.app.refresh_sites()
- if ikiwiki.app.is_enabled():
- ikiwiki.app.set_enabled(True)
+ app.refresh_sites()
+ if app.is_enabled():
+ app.set_enabled(True)
return redirect(reverse_lazy('ikiwiki:index'))
else:
form = IkiwikiCreateForm(prefix='ikiwiki')
return TemplateResponse(request, 'ikiwiki_create.html', {
- 'title': ikiwiki.app.info.name,
+ 'title': app.info.name,
'form': form
})
@@ -92,11 +96,12 @@ def delete(request, name):
On GET, display a confirmation page.
On POST, delete the wiki/blog.
"""
- title = ikiwiki.app.components['shortcut-ikiwiki-' + name].name
+ app = app_module.App.get('ikiwiki')
+ title = app.components['shortcut-ikiwiki-' + name].name
if request.method == 'POST':
try:
actions.superuser_run('ikiwiki', ['delete', '--name', name])
- ikiwiki.app.remove_shortcut(name)
+ app.remove_shortcut(name)
messages.success(request,
_('{title} deleted.').format(title=title))
except actions.ActionError as error:
@@ -108,6 +113,6 @@ def delete(request, name):
return redirect(reverse_lazy('ikiwiki:index'))
return TemplateResponse(request, 'ikiwiki_delete.html', {
- 'title': ikiwiki.app.info.name,
+ 'title': app.info.name,
'name': title
})
diff --git a/plinth/modules/infinoted/__init__.py b/plinth/modules/infinoted/__init__.py
index 88a1faf7a..315b18161 100644
--- a/plinth/modules/infinoted/__init__.py
+++ b/plinth/modules/infinoted/__init__.py
@@ -26,8 +26,6 @@ _description = [
box_name=_(cfg.box_name)),
]
-app = None
-
class InfinotedApp(app_module.App):
"""FreedomBox app for infinoted."""
@@ -76,9 +74,8 @@ class InfinotedApp(app_module.App):
**manifest.backup)
self.add(backup_restore)
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- helper.call('post', actions.superuser_run, 'infinoted', ['setup'])
- helper.call('post', app.enable)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ actions.superuser_run('infinoted', ['setup'])
+ self.enable()
diff --git a/plinth/modules/janus/__init__.py b/plinth/modules/janus/__init__.py
index 9621553c4..734fb7368 100644
--- a/plinth/modules/janus/__init__.py
+++ b/plinth/modules/janus/__init__.py
@@ -6,7 +6,6 @@ FreedomBox app for janus.
from django.urls import reverse_lazy
from django.utils.translation import gettext_lazy as _
-from plinth import actions
from plinth import app as app_module
from plinth import frontpage, menu
from plinth.daemon import Daemon
@@ -14,10 +13,10 @@ from plinth.modules.apache.components import Webserver
from plinth.modules.backups.components import BackupRestore
from plinth.modules.coturn.components import TurnTimeLimitedConsumer
from plinth.modules.firewall.components import Firewall
-from plinth.package import Packages
-from plinth.utils import format_lazy
+from plinth.package import Packages, install
+from plinth.utils import Version, format_lazy
-from . import manifest
+from . import manifest, privileged
_description = [
_('Janus is a lightweight WebRTC server.'),
@@ -27,8 +26,6 @@ _description = [
'use Janus.'), coturn_url=reverse_lazy('coturn:index')),
]
-app = None
-
class JanusApp(app_module.App):
"""FreedomBox app for janus."""
@@ -43,7 +40,7 @@ class JanusApp(app_module.App):
info = app_module.Info(self.app_id, self._version, name=_('Janus'),
icon_filename='janus',
- short_description=_('WebRTC server'),
+ short_description=_('Video Room'),
description=_description, manual_page='Janus',
clients=manifest.clients)
self.add(info)
@@ -89,9 +86,22 @@ class JanusApp(app_module.App):
**manifest.backup)
self.add(backup_restore)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ privileged.setup()
+ self.enable()
-def setup(helper, old_version=None):
- """Install and configure the app."""
- app.setup(old_version)
- actions.superuser_run('janus', ['setup'])
- helper.call('post', app.enable)
+ def force_upgrade(self, packages):
+ """Force upgrade janus to resolve conffile prompts."""
+ if 'janus' not in packages:
+ return False
+
+ # Allow upgrades within 1.0.*
+ package = packages['janus']
+ if Version(package['new_version']) > Version('1.1~'):
+ return False
+
+ install(['janus'], force_configuration='new')
+ privileged.setup()
+ return True
diff --git a/plinth/modules/janus/privileged.py b/plinth/modules/janus/privileged.py
new file mode 100644
index 000000000..0ff50d556
--- /dev/null
+++ b/plinth/modules/janus/privileged.py
@@ -0,0 +1,25 @@
+# SPDX-License-Identifier: AGPL-3.0-or-later
+"""
+Configure Janus server.
+"""
+
+from plinth import action_utils
+from plinth.actions import privileged
+
+JANUS_CONF_PATH = '/etc/janus/janus.jcfg'
+
+
+@privileged
+def setup():
+ """Setup Janus server."""
+ with open(JANUS_CONF_PATH, 'r', encoding='utf-8') as config_file:
+ config_lines = config_file.readlines()
+
+ with open(JANUS_CONF_PATH, 'w', encoding='utf-8') as config_file:
+ for line in config_lines:
+ if '#rtp_port_range' in line:
+ config_file.write("\trtp_port_range = \"50176-51199\"\n")
+ else:
+ config_file.write(line)
+
+ action_utils.service_try_restart('janus')
diff --git a/plinth/modules/janus/views.py b/plinth/modules/janus/views.py
index 849a4da64..a86d1f636 100644
--- a/plinth/modules/janus/views.py
+++ b/plinth/modules/janus/views.py
@@ -5,7 +5,7 @@ Views for the Janus app.
from django.views.generic import TemplateView
-from plinth.modules import janus
+from plinth import app as app_module
class JanusRoomView(TemplateView):
@@ -14,7 +14,8 @@ class JanusRoomView(TemplateView):
def get_context_data(self, *args, **kwargs):
"""Add user's TURN server information to view context."""
- config = janus.app.get_component('turn-janus').get_configuration()
+ app = app_module.App.get('janus')
+ config = app.get_component('turn-janus').get_configuration()
context = super().get_context_data(*args, **kwargs)
context['user_turn_config'] = config.to_json()
return context
diff --git a/plinth/modules/jsxc/__init__.py b/plinth/modules/jsxc/__init__.py
index 059c29772..a5c4d10d1 100644
--- a/plinth/modules/jsxc/__init__.py
+++ b/plinth/modules/jsxc/__init__.py
@@ -1,7 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
-FreedomBox app to configure XMPP web client/jsxc.
-"""
+"""FreedomBox app to configure XMPP web client/jsxc."""
import logging
@@ -24,8 +22,6 @@ _description = [
logger = logging.getLogger(__name__)
-app = None
-
class JSXCApp(app_module.App):
"""FreedomBox app for JSXC."""
@@ -34,8 +30,6 @@ class JSXCApp(app_module.App):
_version = 1
- can_be_disabled = False
-
def __init__(self):
"""Create components for the app."""
super().__init__()
@@ -52,6 +46,9 @@ class JSXCApp(app_module.App):
parent_url_name='apps')
self.add(menu_item)
+ enable_state = app_module.EnableState('enable-state-jsxc')
+ self.add(enable_state)
+
shortcut = frontpage.Shortcut('shortcut-jsxc', name=info.name,
short_description=info.short_description,
icon=info.icon_filename,
@@ -80,8 +77,7 @@ class JSXCApp(app_module.App):
**manifest.backup)
self.add(backup_restore)
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- helper.call('post', app.enable)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ self.enable()
diff --git a/plinth/modules/jsxc/tests/test_functional.py b/plinth/modules/jsxc/tests/test_functional.py
index 53492cad0..f6f9bda40 100644
--- a/plinth/modules/jsxc/tests/test_functional.py
+++ b/plinth/modules/jsxc/tests/test_functional.py
@@ -1,7 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
-Functional, browser based tests for jsxc app.
-"""
+"""Functional, browser based tests for jsxc app."""
import pytest
@@ -10,21 +8,5 @@ from plinth.tests import functional
pytestmark = [pytest.mark.apps, pytest.mark.jsxc]
-@pytest.fixture(scope='module', autouse=True)
-def fixture_background(session_browser):
- """Login."""
- functional.login(session_browser)
-
-
-def test_install(session_browser):
- """Test installing the app."""
- functional.install(session_browser, 'jsxc')
- assert functional.is_available(session_browser, 'jsxc')
-
-
-@pytest.mark.backups
-def test_backup(session_browser):
- """Test backing up and restoring."""
- functional.backup_create(session_browser, 'jsxc', 'test_jsxc')
- functional.backup_restore(session_browser, 'jsxc', 'test_jsxc')
- assert functional.is_available(session_browser, 'jsxc')
+class TestJSXCApp(functional.BaseAppTests):
+ app_name = 'jsxc'
diff --git a/plinth/modules/jsxc/views.py b/plinth/modules/jsxc/views.py
index 547ce1f61..c3e583211 100644
--- a/plinth/modules/jsxc/views.py
+++ b/plinth/modules/jsxc/views.py
@@ -1,17 +1,26 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
-Views for the JSXC module
-"""
+"""Views for the JSXC module."""
+from django.http import Http404
from django.views.generic import TemplateView
+import plinth.app as app_module
from plinth.modules import config
class JsxcView(TemplateView):
"""A simple page to embed Javascript XMPP Client library."""
+
template_name = 'jsxc_launch.html'
+ def dispatch(self, request, *args, **kwargs):
+ """Don't serve the view when app is disabled."""
+ app = app_module.App.get('jsxc')
+ if not app.is_enabled():
+ raise Http404
+
+ return super().dispatch(request, *args, **kwargs)
+
def get_context_data(self, *args, **kwargs):
"""Add domain information to view context."""
context = super().get_context_data(*args, **kwargs)
diff --git a/plinth/modules/letsencrypt/__init__.py b/plinth/modules/letsencrypt/__init__.py
index e01141c6e..76b067e10 100644
--- a/plinth/modules/letsencrypt/__init__.py
+++ b/plinth/modules/letsencrypt/__init__.py
@@ -42,8 +42,6 @@ LIVE_DIRECTORY = '/etc/letsencrypt/live/'
CERTIFICATE_CHECK_DELAY = 120
logger = logging.getLogger(__name__)
-app = None
-
class LetsEncryptApp(app_module.App):
"""FreedomBox app for Let's Encrypt."""
@@ -52,6 +50,8 @@ class LetsEncryptApp(app_module.App):
_version = 3
+ can_be_disabled = False
+
def __init__(self):
"""Create components for the app."""
super().__init__()
@@ -99,13 +99,12 @@ class LetsEncryptApp(app_module.App):
return results
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- actions.superuser_run(
- 'letsencrypt',
- ['setup', '--old-version', str(old_version)])
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ actions.superuser_run('letsencrypt',
+ ['setup', '--old-version',
+ str(old_version)])
def certificate_obtain(domain):
diff --git a/plinth/modules/letsencrypt/urls.py b/plinth/modules/letsencrypt/urls.py
index 1934ff167..764eb922e 100644
--- a/plinth/modules/letsencrypt/urls.py
+++ b/plinth/modules/letsencrypt/urls.py
@@ -8,7 +8,8 @@ from django.urls import re_path
from . import views
urlpatterns = [
- re_path(r'^sys/letsencrypt/$', views.index, name='index'),
+ re_path(r'^sys/letsencrypt/$', views.LetsEncryptAppView.as_view(),
+ name='index'),
re_path(r'^sys/letsencrypt/obtain/(?P[^/]+)/$', views.obtain,
name='obtain'),
re_path(r'^sys/letsencrypt/re-obtain/(?P[^/]+)/$', views.reobtain,
diff --git a/plinth/modules/letsencrypt/views.py b/plinth/modules/letsencrypt/views.py
index 0bf67a38e..f6b9906f1 100644
--- a/plinth/modules/letsencrypt/views.py
+++ b/plinth/modules/letsencrypt/views.py
@@ -7,28 +7,28 @@ import logging
from django.contrib import messages
from django.shortcuts import redirect
-from django.template.response import TemplateResponse
from django.urls import reverse_lazy
from django.utils.translation import gettext as _
from django.views.decorators.http import require_POST
from plinth.errors import ActionError
from plinth.modules import letsencrypt
+from plinth.views import AppView
logger = logging.getLogger(__name__)
-def index(request):
- """Serve configuration page."""
- status = letsencrypt.get_status()
- return TemplateResponse(
- request, 'letsencrypt.html', {
- 'app_id': 'letsencrypt',
- 'app_info': letsencrypt.app.info,
- 'status': status,
- 'has_diagnostics': True,
- 'is_enabled': letsencrypt.app.is_enabled(),
- })
+class LetsEncryptAppView(AppView):
+ """Show Let's Encrypt app main page."""
+
+ app_id = 'letsencrypt'
+ template_name = 'letsencrypt.html'
+
+ def get_context_data(self, *args, **kwargs):
+ """Add additional context data for template."""
+ context = super().get_context_data(*args, **kwargs)
+ context['status'] = letsencrypt.get_status()
+ return context
@require_POST
diff --git a/plinth/modules/matrixsynapse/__init__.py b/plinth/modules/matrixsynapse/__init__.py
index d78afc809..c007994df 100644
--- a/plinth/modules/matrixsynapse/__init__.py
+++ b/plinth/modules/matrixsynapse/__init__.py
@@ -20,7 +20,7 @@ from plinth.modules.backups.components import BackupRestore
from plinth.modules.coturn.components import TurnConfiguration, TurnConsumer
from plinth.modules.firewall.components import Firewall
from plinth.modules.letsencrypt.components import LetsEncrypt
-from plinth.package import Packages
+from plinth.package import Packages, install
from plinth.utils import format_lazy, is_non_empty_file
from . import manifest
@@ -51,8 +51,6 @@ REGISTRATION_CONF_PATH = CONF_DIR + 'freedombox-registration.yaml'
TURN_CONF_PATH = CONF_DIR + 'freedombox-turn.yaml'
OVERRIDDEN_TURN_CONF_PATH = CONF_DIR + 'turn.yaml'
-app = None
-
class MatrixSynapseApp(app_module.App):
"""FreedomBox app for Matrix Synapse."""
@@ -118,6 +116,23 @@ class MatrixSynapseApp(app_module.App):
turn = MatrixSynapseTurnConsumer('turn-matrixsynapse')
self.add(turn)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ if old_version and old_version < 6:
+ upgrade()
+ else:
+ actions.superuser_run('matrixsynapse', ['post-install'])
+
+ if not old_version:
+ self.enable()
+
+ self.get_component('letsencrypt-matrixsynapse').setup_certificates()
+
+ # Configure STUN/TURN only if there's a valid TLS domain set for Coturn
+ config = self.get_component('turn-matrixsynapse').get_configuration()
+ update_turn_configuration(config, force=True)
+
class MatrixSynapseTurnConsumer(TurnConsumer):
"""Component to manage Coturn configuration for Matrix Synapse."""
@@ -127,31 +142,12 @@ class MatrixSynapseTurnConsumer(TurnConsumer):
update_turn_configuration(config)
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- if old_version and old_version < 6:
- helper.call('post', upgrade, helper)
- else:
- helper.call('post', actions.superuser_run, 'matrixsynapse',
- ['post-install'])
-
- if not old_version:
- helper.call('post', app.enable)
-
- app.get_component('letsencrypt-matrixsynapse').setup_certificates()
-
- # Configure STUN/TURN only if there's a valid TLS domain set for Coturn
- config = app.get_component('turn-matrixsynapse').get_configuration()
- update_turn_configuration(config, force=True)
-
-
-def upgrade(helper):
+def upgrade():
"""Upgrade matrix-synapse configuration to avoid conffile prompt."""
public_registration_status = get_public_registration_status()
actions.superuser_run('matrixsynapse', ['move-old-conf'])
- helper.install(['matrix-synapse'], force_configuration='new',
- reinstall=True, force_missing_configuration=True)
+ install(['matrix-synapse'], force_configuration='new', reinstall=True,
+ force_missing_configuration=True)
actions.superuser_run('matrixsynapse', ['post-install'])
if public_registration_status:
actions.superuser_run('matrixsynapse',
@@ -160,6 +156,7 @@ def upgrade(helper):
def setup_domain(domain_name):
"""Configure a domain name for matrixsynapse."""
+ app = app_module.App.get('matrixsynapse')
app.get_component('letsencrypt-matrixsynapse').setup_certificates(
[domain_name])
actions.superuser_run('matrixsynapse',
@@ -214,6 +211,7 @@ def get_public_registration_status() -> bool:
def get_certificate_status():
"""Return the status of certificate for the configured domain."""
+ app = app_module.App.get('matrixsynapse')
status = app.get_component('letsencrypt-matrixsynapse').get_status()
if not status:
return 'no-domains'
@@ -224,6 +222,7 @@ def get_certificate_status():
def update_turn_configuration(config: TurnConfiguration, managed=True,
force=False):
"""Update the STUN/TURN server configuration."""
+ app = app_module.App.get('matrixsynapse')
if not force and app.needs_setup():
return
diff --git a/plinth/modules/matrixsynapse/templates/matrix-synapse.html b/plinth/modules/matrixsynapse/templates/matrix-synapse.html
index 082303ada..226dc82f8 100644
--- a/plinth/modules/matrixsynapse/templates/matrix-synapse.html
+++ b/plinth/modules/matrixsynapse/templates/matrix-synapse.html
@@ -6,10 +6,10 @@
{% load i18n %}
{% load static %}
-{% block description %}
- {% for paragraph in description %}
-
- {% blocktrans trimmed with url="https://discuss.freedombox.org/c/announcements/7" %}
+ {% blocktrans trimmed with url="https://discuss.freedombox.org/c/announcements/7" version=data.version %}
{{ box_name }} has been updated to version {{ version }}. See the
release announcement.
{% endblocktrans %}
-
{% trans "Dismiss" %}
diff --git a/plinth/modules/upgrades/templates/upgrades_configure.html b/plinth/modules/upgrades/templates/upgrades_configure.html
index 19835c4cc..4f3445dc0 100644
--- a/plinth/modules/upgrades/templates/upgrades_configure.html
+++ b/plinth/modules/upgrades/templates/upgrades_configure.html
@@ -132,4 +132,22 @@
{% endif %}
+
+ {% if can_test_dist_upgrade %}
+
{% trans "Test Distribution Upgrade" %}
+
+ {% blocktrans trimmed %}
+ This will attempt to upgrade the system from stable to
+ testing. It is meant only for development use.
+ {% endblocktrans %}
+
+
+
+
+ {% endif %}
{% endblock %}
diff --git a/plinth/modules/upgrades/urls.py b/plinth/modules/upgrades/urls.py
index 2e88747e0..807ebb328 100644
--- a/plinth/modules/upgrades/urls.py
+++ b/plinth/modules/upgrades/urls.py
@@ -21,4 +21,6 @@ urlpatterns = [
views.UpdateFirstbootProgressView.as_view(),
name='update-firstboot-progress'),
re_path(r'^sys/upgrades/upgrade/$', views.upgrade, name='upgrade'),
+ re_path(r'^sys/upgrades/test-dist-upgrade/$', views.test_dist_upgrade,
+ name='test-dist-upgrade'),
]
diff --git a/plinth/modules/upgrades/views.py b/plinth/modules/upgrades/views.py
index 4958af928..7d5e6cd23 100644
--- a/plinth/modules/upgrades/views.py
+++ b/plinth/modules/upgrades/views.py
@@ -45,6 +45,7 @@ class UpgradesConfigurationView(AppView):
context['version'] = __version__
context['new_version'] = is_newer_version_available()
context['os_release'] = get_os_release()
+ context['can_test_dist_upgrade'] = upgrades.can_test_dist_upgrade()
return context
def form_valid(self, form):
@@ -213,3 +214,12 @@ class UpdateFirstbootProgressView(TemplateView):
context['next_step'] = first_boot.next_step()
context['refresh_page_sec'] = 3 if context['is_busy'] else None
return context
+
+
+def test_dist_upgrade(request):
+ """Test dist-upgrade from stable to testing."""
+ if request.method == 'POST':
+ upgrades.test_dist_upgrade()
+ messages.success(request, _('Starting distribution upgrade test.'))
+
+ return redirect(reverse_lazy('upgrades:index'))
diff --git a/plinth/modules/users/__init__.py b/plinth/modules/users/__init__.py
index e3a3ee464..4f4d18784 100644
--- a/plinth/modules/users/__init__.py
+++ b/plinth/modules/users/__init__.py
@@ -37,8 +37,6 @@ _description = [
box_name=_(cfg.box_name))
]
-app = None
-
class UsersApp(app_module.App):
"""FreedomBox app for users and groups management."""
@@ -89,14 +87,14 @@ class UsersApp(app_module.App):
return results
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ if not old_version:
+ actions.superuser_run('users', ['first-setup'])
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- if not old_version:
- helper.call('post', actions.superuser_run, 'users', ['first-setup'])
- helper.call('post', actions.superuser_run, 'users', ['setup'])
- create_group('freedombox-share')
+ actions.superuser_run('users', ['setup'])
+ create_group('freedombox-share')
def _diagnose_ldap_entry(search_item):
diff --git a/plinth/modules/wireguard/__init__.py b/plinth/modules/wireguard/__init__.py
index b1f30c2b3..0dc632196 100644
--- a/plinth/modules/wireguard/__init__.py
+++ b/plinth/modules/wireguard/__init__.py
@@ -29,8 +29,6 @@ _description = [
box_name=_(cfg.box_name))
]
-app = None
-
SERVER_INTERFACE = 'wg0'
@@ -94,8 +92,7 @@ class WireguardApp(app_module.App):
enabled = super().is_enabled()
return enabled and kvstore.get_default('wireguard-enabled', False)
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- helper.call('post', app.enable)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ self.enable()
diff --git a/plinth/modules/wireguard/utils.py b/plinth/modules/wireguard/utils.py
index 114c91241..2db3d19de 100644
--- a/plinth/modules/wireguard/utils.py
+++ b/plinth/modules/wireguard/utils.py
@@ -9,7 +9,9 @@ import logging
import subprocess
import time
-from plinth import actions, network
+from plinth import actions
+from plinth import app as app_module
+from plinth import network
from plinth.utils import import_from_gi
nm = import_from_gi('NM', '1.0')
@@ -156,8 +158,7 @@ def _find_next_interface():
def add_server(settings):
"""Add information for connecting to a server."""
- from plinth.modules.wireguard import app
-
+ app = app_module.App.get('wireguard')
interface_name = _find_next_interface()
settings['common']['name'] = 'WireGuard-Client-' + interface_name
settings['common']['interface'] = interface_name
@@ -182,8 +183,7 @@ def edit_server(interface, settings):
def setup_server():
"""Setup a server connection that clients can connect to."""
- from plinth.modules.wireguard import app
-
+ app = app_module.App.get('wireguard')
setting_name = nm.SETTING_WIREGUARD_SETTING_NAME
private_key = _generate_private_key()
settings = {
diff --git a/plinth/modules/wordpress/__init__.py b/plinth/modules/wordpress/__init__.py
index 28bae53fd..ae1edd000 100644
--- a/plinth/modules/wordpress/__init__.py
+++ b/plinth/modules/wordpress/__init__.py
@@ -40,8 +40,6 @@ _description = [
'be installed and upgraded at your own risk.'),
]
-app = None
-
class WordPressApp(app_module.App):
"""FreedomBox app for WordPress."""
@@ -83,8 +81,6 @@ class WordPressApp(app_module.App):
'php',
# Optional, for performance
'php-imagick',
- # Optional, to upload plugins/themes using SSH connection
- 'php-ssh2',
# Optional, for performance
'php-zip',
# WordPress only supports MySQL/MariaDB as DB
@@ -107,6 +103,13 @@ class WordPressApp(app_module.App):
**manifest.backup)
self.add(backup_restore)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ super().setup(old_version)
+ actions.superuser_run('wordpress', ['setup'])
+ if not old_version:
+ self.enable()
+
class WordPressBackupRestore(BackupRestore):
"""Component to backup/restore WordPress."""
@@ -120,11 +123,3 @@ class WordPressBackupRestore(BackupRestore):
"""Restore database contents."""
super().restore_post(packet)
actions.superuser_run('wordpress', ['restore-database'])
-
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- app.setup(old_version)
- helper.call('post', actions.superuser_run, 'wordpress', ['setup'])
- if not old_version:
- helper.call('post', app.enable)
diff --git a/plinth/modules/zoph/__init__.py b/plinth/modules/zoph/__init__.py
index 45991df18..71ac501a1 100644
--- a/plinth/modules/zoph/__init__.py
+++ b/plinth/modules/zoph/__init__.py
@@ -40,8 +40,6 @@ _description = [
box_name=_(cfg.box_name))
]
-app = None
-
class ZophApp(app_module.App):
"""FreedomBox app for Zoph."""
@@ -88,13 +86,12 @@ class ZophApp(app_module.App):
**manifest.backup)
self.add(backup_restore)
-
-def setup(helper, old_version=None):
- """Install and configure the module."""
- helper.call('pre', actions.superuser_run, 'zoph', ['pre-install'])
- app.setup(old_version)
- helper.call('post', actions.superuser_run, 'zoph', ['setup'])
- helper.call('post', app.enable)
+ def setup(self, old_version):
+ """Install and configure the app."""
+ actions.superuser_run('zoph', ['pre-install'])
+ super().setup(old_version)
+ actions.superuser_run('zoph', ['setup'])
+ self.enable()
def set_configuration(admin_user=None, enable_osm=None):
diff --git a/plinth/modules/zoph/views.py b/plinth/modules/zoph/views.py
index bb7ddc972..485fa30b5 100644
--- a/plinth/modules/zoph/views.py
+++ b/plinth/modules/zoph/views.py
@@ -12,6 +12,7 @@ from django.urls import reverse_lazy
from django.utils.translation import gettext as _
from django.views.generic import TemplateView
+from plinth import app as app_module
from plinth import views
from plinth.errors import ActionError
from plinth.modules import zoph
@@ -29,8 +30,9 @@ class SetupView(TemplateView):
def get_context_data(self, *args, **kwargs):
"""Provide context data to the template."""
context = super().get_context_data(**kwargs)
- context['title'] = zoph.app.info.name
- context['app_info'] = zoph.app.info
+ app = app_module.App.get('zoph')
+ context['title'] = app.info.name
+ context['app_info'] = app.info
return context
def post(self, _request, *args, **kwargs):
diff --git a/plinth/notification.py b/plinth/notification.py
index 9917e33e1..cc733d778 100644
--- a/plinth/notification.py
+++ b/plinth/notification.py
@@ -316,12 +316,13 @@ class Notification(models.StoredNotification):
return new_dict
@staticmethod
- def _render(request, template, data):
+ def _render(request, template, context):
"""Use the template name and render it."""
if not template:
return None
- context = dict(data, box_name=gettext(cfg.box_name), request=request)
+ context = dict(context, box_name=gettext(cfg.box_name),
+ request=request)
try:
return SimpleTemplateResponse(template, context).render()
except TemplateDoesNotExist:
@@ -345,14 +346,12 @@ class Notification(models.StoredNotification):
action['text'] = Notification._translate(
action['text'], data)
- body = Notification._render(request, note.body_template, data)
- notes.append({
+ note_context = {
'id': note.id,
'app_id': note.app_id,
'severity': note.severity,
'title': Notification._translate(note.title, data),
'message': Notification._translate(note.message, data),
- 'body': body,
'actions': actions,
'data': data,
'created_time': note.created_time,
@@ -360,6 +359,10 @@ class Notification(models.StoredNotification):
'user': note.user,
'group': note.group,
'dismissed': note.dismissed,
- })
+ }
+ body = Notification._render(request, note.body_template,
+ note_context)
+ note_context['body'] = body
+ notes.append(note_context)
return {'notifications': notes, 'max_severity': max_severity}
diff --git a/plinth/operation.py b/plinth/operation.py
new file mode 100644
index 000000000..ddb5f2522
--- /dev/null
+++ b/plinth/operation.py
@@ -0,0 +1,244 @@
+# SPDX-License-Identifier: AGPL-3.0-or-later
+"""Utilities to run operations and show their progress or failures."""
+
+import enum
+import logging
+import threading
+from typing import Callable, Optional
+
+from . import app as app_module
+
+logger = logging.getLogger(__name__)
+
+
+class Operation:
+ """Represent an ongoing or finished activity."""
+
+ class State(enum.Enum):
+ """Various states of an operation."""
+
+ WAITING: str = 'waiting'
+ RUNNING: str = 'running'
+ COMPLETED: str = 'completed'
+
+ def __init__(self, app_id: str, name: str, target: Callable,
+ args: Optional[list] = None, kwargs: Optional[dict] = None,
+ show_message: bool = True, show_notification: bool = False,
+ thread_data: Optional[dict] = None,
+ on_complete: Callable = None):
+ """Initialize to no operation."""
+ self.app_id = app_id
+ self.name = name
+ self.show_message = show_message
+ self.show_notification = show_notification
+
+ self.target = target
+ self.args = args or []
+ self.kwargs = kwargs or {}
+ self.on_complete = on_complete
+
+ self.state = Operation.State.WAITING
+ self.return_value = None
+ self._message: Optional[str] = None
+ self.exception: Optional[Exception] = None
+
+ # Operation specific data
+ self.thread_data: dict = thread_data or {}
+
+ self.thread = threading.Thread(target=self._catch_thread_errors)
+ self.start_event = threading.Event()
+ setattr(self.thread, '_operation', self)
+ self._update_notification()
+
+ def __str__(self):
+ """Return a string representation of the operation."""
+ return f'Operation: {self.app_id}: {self.name}'
+
+ def _catch_thread_errors(self):
+ """Collect exceptions when running in a thread."""
+ self._update_notification()
+ try:
+ self.return_value = self.target(*self.args, **self.kwargs)
+ except Exception as exception:
+ logger.exception('Error: %s, %s', self, exception)
+ self.exception = exception
+ finally:
+ self.state = Operation.State.COMPLETED
+ self._update_notification()
+ # Notify
+ if self.on_complete:
+ self.on_complete(self)
+
+ def run(self):
+ """Run a specified operation in a thread."""
+ logger.info('%s: running', str(self))
+ self.state = Operation.State.RUNNING
+ self.thread.start()
+ self.start_event.set()
+
+ def join(self):
+ """Block the current thread until the operation is completed.
+
+ Raise an exception if the thread encountered an exception.
+ """
+ self.start_event.wait()
+ self.thread.join()
+ if self.exception:
+ raise self.exception
+
+ return self.return_value
+
+ @staticmethod
+ def get_operation():
+ """Return the operation associated with this thread."""
+ thread = threading.current_thread()
+ return thread._operation
+
+ def on_update(self, message: Optional[str] = None,
+ exception: Optional[Exception] = None):
+ """Call from within the thread to update the progress of operation."""
+ if message:
+ self._message = message
+
+ if exception:
+ self.exception = exception
+
+ self._update_notification()
+
+ @property
+ def message(self):
+ """Return a message about status of the operation."""
+ from django.utils.translation import gettext_noop
+ if self._message: # Progress has been set by the operation itself
+ return self._message
+
+ if self.exception: # Operation resulted in a error.
+ return gettext_noop('Error: {name}: {exception_message}')
+
+ if self.state == Operation.State.WAITING:
+ return gettext_noop('Waiting to start: {name}')
+
+ if self.state == Operation.State.RUNNING:
+ return '{name}' # No translation needed
+
+ if self.state == Operation.State.COMPLETED:
+ return gettext_noop('Finished: {name}')
+
+ @property
+ def translated_message(self):
+ """Return a message about status of operation after translating.
+
+ Must be called from a web request (UI) thread with user language set so
+ that localization is done properly.
+ """
+ from django.utils.translation import gettext
+ message = gettext(self.message)
+ message = message.format(name=self.name,
+ exception_message=str(self.exception))
+ if self.app_id:
+ message = message.format(
+ app_name=app_module.App.get(self.app_id).info.name)
+
+ return message
+
+ def _update_notification(self):
+ """Show an updated notification if needed."""
+ if not self.show_notification:
+ return
+
+ from plinth.notification import Notification
+ severity = 'info' if not self.exception else 'error'
+ app = app_module.App.get(self.app_id)
+ data = {
+ 'app_name': str(app.info.name),
+ 'app_icon': app.info.icon,
+ 'app_icon_filename': app.info.icon_filename,
+ 'state': self.state.value,
+ 'exception': str(self.exception) if self.exception else None,
+ 'name': 'translate:' + str(self.name),
+ }
+ Notification.update_or_create(
+ id=self.app_id + '-operation', app_id=self.app_id,
+ severity=severity, title=app.info.name, message=self.message,
+ body_template='operation-notification.html', data=data,
+ group='admin', dismissed=False)
+
+
+class OperationsManager:
+ """Global handler for all operations and their results."""
+
+ def __init__(self):
+ """Initialize the object."""
+ self._operations: list[Operation] = []
+ self._current_operation: Optional[Operation] = None
+
+ # Assume that operations manager will be called from various threads
+ # including the callback called from the threads it creates. Ensure
+ # that properties don't get corrupted due to race conditions when
+ # called from different threads by locking all code that updates them.
+ # It is re-entrant lock, meaning it can be re-obtained without blocking
+ # when done from the same thread which holds the lock.
+ self._lock = threading.RLock()
+
+ def new(self, *args, **kwargs):
+ """Create a new operation instance and add to global list."""
+ with self._lock:
+ operation = Operation(*args, **kwargs,
+ on_complete=self._on_operation_complete)
+ self._operations.append(operation)
+ logger.info('%s: added', operation)
+ self._schedule_next()
+ return operation
+
+ def _on_operation_complete(self, operation):
+ """Trigger next operation. Called from within previous thread."""
+ logger.debug('%s: on_complete called', operation)
+ with self._lock:
+ self._current_operation = None
+ if not operation.show_message:
+ # No need to keep it lingering for later collection
+ self._operations.remove(operation)
+
+ self._schedule_next()
+
+ def _schedule_next(self):
+ """Schedule the next available operation."""
+ with self._lock:
+ if self._current_operation:
+ return
+
+ for operation in self._operations:
+ if operation.state == Operation.State.WAITING:
+ logger.debug('%s: scheduling', operation)
+ self._current_operation = operation
+ operation.run()
+ break
+
+ def filter(self, app_id):
+ """Return operations matching a pattern."""
+ with self._lock:
+ return [
+ operation for operation in self._operations
+ if operation.app_id == app_id
+ ]
+
+ def collect_results(self, app_id):
+ """Return the finished operations for an app."""
+ results: list[Operation] = []
+ remaining: list[Operation] = []
+
+ with self._lock:
+ for operation in self._operations:
+ if (operation.app_id == app_id
+ and operation.state == Operation.State.COMPLETED):
+ results.append(operation)
+ else:
+ remaining.append(operation)
+
+ if results:
+ self._operations = remaining
+
+ return results
+
+
+manager = OperationsManager()
diff --git a/plinth/package.py b/plinth/package.py
index 315b514b6..fe03981e7 100644
--- a/plinth/package.py
+++ b/plinth/package.py
@@ -8,8 +8,8 @@ import json
import logging
import pathlib
import subprocess
-import sys
import threading
+import time
from typing import Optional, Union
import apt.cache
@@ -17,9 +17,12 @@ from django.utils.translation import gettext as _
from django.utils.translation import gettext_lazy
from plinth import actions, app
-from plinth.errors import ActionError, MissingPackageError
+from plinth.errors import MissingPackageError
from plinth.utils import format_lazy
+from . import operation as operation_module
+from .errors import PackageNotInstalledError
+
logger = logging.getLogger(__name__)
@@ -141,7 +144,7 @@ class Packages(app.FollowerComponent):
self._packages.append(package)
self.skip_recommends = skip_recommends
- self.conflicts = conflicts
+ self.conflicts = conflicts or []
self.conflicts_action = conflicts_action
@property
@@ -170,12 +173,12 @@ class Packages(app.FollowerComponent):
def setup(self, old_version):
"""Install the packages."""
- # TODO: Drop the need for setup helper.
- module_name = self.app.__module__
- module = sys.modules[module_name]
- helper = module.setup_helper
- helper.install(self.get_actual_packages(),
- skip_recommends=self.skip_recommends)
+ install(self.get_actual_packages(),
+ skip_recommends=self.skip_recommends)
+
+ def uninstall(self):
+ """Uninstall and purge the packages."""
+ uninstall(self.get_actual_packages())
def diagnose(self):
"""Run diagnostics and return results."""
@@ -255,12 +258,12 @@ class PackageException(Exception):
class Transaction:
"""Information about an ongoing transaction."""
- def __init__(self, module_name, package_names):
+ def __init__(self, app_id, package_names):
"""Initialize transaction object.
Set most values to None until they are sent as progress update.
"""
- self.module_name = module_name
+ self.app_id = app_id
self.package_names = package_names
self._reset_status()
@@ -320,11 +323,20 @@ class Transaction:
extra_arguments.append('--force-missing-configuration')
self._run_apt_command(['install'] + extra_arguments +
- [self.module_name] + self.package_names)
+ [self.app_id] + self.package_names)
except subprocess.CalledProcessError as exception:
logger.exception('Error installing package: %s', exception)
raise
+ def uninstall(self):
+ """Run an apt-get transaction to uninstall given packages."""
+ try:
+ self._run_apt_command(['remove', self.app_id, '--packages'] +
+ self.package_names)
+ except subprocess.CalledProcessError as exception:
+ logger.exception('Error uninstalling package: %s', exception)
+ raise
+
def refresh_package_lists(self):
"""Refresh apt package lists."""
try:
@@ -352,7 +364,7 @@ class Transaction:
return_code = process.wait()
if return_code != 0:
- raise PackageException(_('Error during installation'), self.stderr)
+ raise PackageException(_('Error running apt-get'), self.stderr)
def _read_stdout(self, process):
"""Read the stdout of the process and update progress."""
@@ -387,6 +399,65 @@ class Transaction:
self.percentage = int(float(parts[2]))
+def install(package_names, skip_recommends=False, force_configuration=None,
+ reinstall=False, force_missing_configuration=False):
+ """Install a set of packages marking progress."""
+ try:
+ operation = operation_module.Operation.get_operation()
+ except AttributeError:
+ raise RuntimeError(
+ 'install() must be called from within an operation.')
+
+ if not operation.thread_data.get('allow_install', True):
+ # Raise error if packages are not already installed.
+ cache = apt.Cache()
+ for package_name in package_names:
+ if not cache[package_name].is_installed:
+ raise PackageNotInstalledError(package_name)
+
+ return
+
+ start_time = time.time()
+ while is_package_manager_busy():
+ if time.time() - start_time >= 24 * 3600: # One day
+ raise PackageException(_('Timeout waiting for package manager'))
+
+ time.sleep(3) # seconds
+
+ logger.info('Running install for app - %s, packages - %s',
+ operation.app_id, package_names)
+
+ from . import package
+ transaction = package.Transaction(operation.app_id, package_names)
+ operation.thread_data['transaction'] = transaction
+ transaction.install(skip_recommends, force_configuration, reinstall,
+ force_missing_configuration)
+
+
+def uninstall(package_names):
+ """Uninstall a set of packages."""
+ try:
+ operation = operation_module.Operation.get_operation()
+ except AttributeError:
+ raise RuntimeError(
+ 'uninstall() must be called from within an operation.')
+
+ start_time = time.time()
+ while is_package_manager_busy():
+ if time.time() - start_time >= 24 * 3600: # One day
+ raise PackageException(_('Timeout waiting for package manager'))
+
+ time.sleep(3) # seconds
+
+ logger.info('Running uninstall for app - %s, packages - %s',
+ operation.app_id, package_names)
+
+ from . import package
+ transaction = package.Transaction(operation.app_id, package_names)
+ operation.thread_data['transaction'] = transaction
+ transaction.uninstall()
+
+
def is_package_manager_busy():
"""Return whether a package manager is running."""
try:
@@ -433,11 +504,3 @@ def packages_installed(candidates: Union[list, tuple]) -> list:
pass
return installed_packages
-
-
-def remove(packages: Union[list, tuple]) -> None:
- """Remove packages."""
- try:
- actions.superuser_run('packages', ['remove', '--packages'] + packages)
- except ActionError:
- pass
diff --git a/plinth/setup.py b/plinth/setup.py
index 1f43fece9..0a9449377 100644
--- a/plinth/setup.py
+++ b/plinth/setup.py
@@ -4,20 +4,20 @@ Utilities for performing application setup operations.
"""
import logging
-import sys
import threading
import time
from collections import defaultdict
import apt
+from django.utils.translation import gettext_noop
import plinth
from plinth import app as app_module
-from plinth.package import Packages
+from plinth.package import PackageException, Packages
from plinth.signals import post_setup
+from . import operation as operation_module
from . import package
-from .errors import PackageNotInstalledError
logger = logging.getLogger(__name__)
@@ -28,106 +28,112 @@ _is_shutting_down = False
_force_upgrader = None
-class Helper:
- """Helper routines for modules to show progress."""
+def run_setup_on_app(app_id, allow_install=True):
+ """Execute the setup process in a thread."""
+ # App is already up-to-date
+ app = app_module.App.get(app_id)
+ current_version = app.get_setup_version()
+ if current_version >= app.info.version:
+ return
- def __init__(self, module_name, module):
- """Initialize the object."""
- self.module_name = module_name
- self.module = module
- self.current_operation = None
- self.is_finished = None
- self.exception = None
- self.allow_install = True
+ if not current_version:
+ name = gettext_noop('Installing app')
+ else:
+ name = gettext_noop('Updating app')
- def run_in_thread(self):
- """Execute the setup process in a thread."""
- thread = threading.Thread(target=self._run)
- thread.start()
+ logger.debug('Creating operation to setup app: %s', app_id)
+ show_notification = show_message = (current_version
+ or not app.info.is_essential)
+ return operation_module.manager.new(
+ app_id, name, _run_setup_on_app, [app, current_version],
+ show_message=show_message, show_notification=show_notification,
+ thread_data={'allow_install': allow_install})
- def _run(self):
- """Collect exceptions when running in a thread."""
- try:
- self.run()
- except Exception as exception:
- self.exception = exception
- def collect_result(self):
- """Return the exception if any."""
- exception = self.exception
- self.exception = None
- self.is_finished = None
- return exception
-
- def run(self, allow_install=True):
- """Execute the setup process."""
- # Setup for the module is already running
- if self.current_operation:
- return
-
- app = self.module.app
+def _run_setup_on_app(app, current_version):
+ """Execute the setup process."""
+ logger.info('Setup run: %s', app.app_id)
+ exception_to_update = None
+ message = None
+ try:
current_version = app.get_setup_version()
- if current_version >= app.info.version:
- return
-
- self.allow_install = allow_install
- self.exception = None
- self.current_operation = None
- self.is_finished = False
- try:
- if hasattr(self.module, 'setup'):
- logger.info('Running module setup - %s', self.module_name)
- self.module.setup(self, old_version=current_version)
- else:
- logger.info('Module does not require setup - %s',
- self.module_name)
- except Exception as exception:
- logger.exception('Error running setup - %s', exception)
- raise exception
+ app.setup(old_version=current_version)
+ app.set_setup_version(app.info.version)
+ post_setup.send_robust(sender=app.__class__, module_name=app.app_id)
+ except PackageException as exception:
+ exception_to_update = exception
+ error_string = getattr(exception, 'error_string', str(exception))
+ error_details = getattr(exception, 'error_details', '')
+ if not current_version:
+ message = gettext_noop('Error installing app: {string} '
+ '{details}').format(string=error_string,
+ details=error_details)
else:
- app.set_setup_version(app.info.version)
- post_setup.send_robust(sender=self.__class__,
- module_name=self.module_name)
- finally:
- self.is_finished = True
- self.current_operation = None
+ message = gettext_noop('Error updating app: {string} '
+ '{details}').format(string=error_string,
+ details=error_details)
+ except Exception as exception:
+ exception_to_update = exception
+ if not current_version:
+ message = gettext_noop('Error installing app: {error}').format(
+ error=exception)
+ else:
+ message = gettext_noop('Error updating app: {error}').format(
+ error=exception)
+ else:
+ if not current_version:
+ message = gettext_noop('App installed.')
+ else:
+ message = gettext_noop('App updated')
- def install(self, package_names, skip_recommends=False,
- force_configuration=None, reinstall=False,
- force_missing_configuration=False):
- """Install a set of packages marking progress."""
- if self.allow_install is False:
- # Raise error if packages are not already installed.
- cache = apt.Cache()
- for package_name in package_names:
- if not cache[package_name].is_installed:
- raise PackageNotInstalledError(package_name)
-
- return
-
- logger.info('Running install for module - %s, packages - %s',
- self.module_name, package_names)
-
- transaction = package.Transaction(self.module_name, package_names)
- self.current_operation = {
- 'step': 'install',
- 'transaction': transaction,
- }
- transaction.install(skip_recommends, force_configuration, reinstall,
- force_missing_configuration)
-
- def call(self, step, method, *args, **kwargs):
- """Call an arbitrary method during setup and note down its stage."""
- logger.info('Running step for module - %s, step - %s',
- self.module_name, step)
- self.current_operation = {'step': step}
- return method(*args, **kwargs)
+ logger.info('Setup completed: %s: %s %s', app.app_id, message,
+ exception_to_update)
+ operation = operation_module.Operation.get_operation()
+ operation.on_update(message, exception_to_update)
-def init(module_name, module):
- """Create a setup helper for a module for later use."""
- if not hasattr(module, 'setup_helper'):
- module.setup_helper = Helper(module_name, module)
+def run_uninstall_on_app(app_id):
+ """Execute the uninstall process in a thread."""
+ # App is already uninstalled
+ app = app_module.App.get(app_id)
+ if not app.get_setup_version():
+ return
+
+ logger.debug('Creating operation to uninstall app: %s', app_id)
+ return operation_module.manager.new(app_id,
+ gettext_noop('Uninstalling app'),
+ _run_uninstall_on_app, [app],
+ show_notification=True)
+
+
+def _run_uninstall_on_app(app):
+ """Execute the uninstall process."""
+ logger.info('Uninstall run: %s', app.app_id)
+ exception_to_update = None
+ message = None
+ try:
+ app.disable()
+ app.uninstall()
+ app.set_setup_version(0)
+ except PackageException as exception:
+ exception_to_update = exception
+ error_string = getattr(exception, 'error_string', str(exception))
+ error_details = getattr(exception, 'error_details', '')
+ message = gettext_noop('Error uninstalling app: {string} '
+ '{details}').format(string=error_string,
+ details=error_details)
+
+ except Exception as exception:
+ exception_to_update = exception
+ message = gettext_noop('Error uninstalling app: {error}').format(
+ error=exception)
+ else:
+ message = gettext_noop('App uninstalled.')
+
+ logger.info('Uninstall completed: %s: %s %s', app.app_id, message,
+ exception_to_update)
+ operation = operation_module.Operation.get_operation()
+ operation.on_update(message, exception_to_update)
def stop():
@@ -151,8 +157,9 @@ def setup_apps(app_ids=None, essential=False, allow_install=True):
if app_ids and app.app_id not in app_ids:
continue
- module = sys.modules[app.__module__]
- module.setup_helper.run(allow_install=allow_install)
+ operation = run_setup_on_app(app.app_id, allow_install=allow_install)
+ if operation:
+ operation.join()
def list_dependencies(app_ids=None, essential=False):
@@ -173,10 +180,10 @@ def list_dependencies(app_ids=None, essential=False):
def run_setup_in_background():
"""Run setup in a background thread."""
_set_is_first_setup()
- threading.Thread(target=_run_setup).start()
+ threading.Thread(target=_run_setup_on_startup).start()
-def _run_setup():
+def _run_setup_on_startup():
"""Run setup with retry till it succeeds."""
sleep_time = 10
while True:
@@ -203,17 +210,12 @@ def _run_first_setup():
"""Run setup on essential apps on first setup."""
global is_first_setup_running
is_first_setup_running = True
- # TODO When it errors out, show error in the UI
run_setup_on_apps(None, allow_install=False)
is_first_setup_running = False
def _run_regular_setup():
"""Run setup on all apps also installing required packages."""
- # TODO show notification that upgrades are running
- if package.is_package_manager_busy():
- raise Exception('Package manager is busy.')
-
app_ids = _get_apps_for_regular_setup()
run_setup_on_apps(app_ids, allow_install=True)
@@ -428,10 +430,9 @@ class ForceUpgrader():
need_retry = False
for app_id, packages in apps.items():
app = app_module.App.get(app_id)
- module = sys.modules[app.__module__]
try:
logger.info('Force upgrading app: %s', app.info.name)
- if module.force_upgrade(module.setup_helper, packages):
+ if self._run_force_upgrade_as_operation(app, packages):
logger.info('Successfully force upgraded app: %s',
app.info.name)
else:
@@ -445,6 +446,15 @@ class ForceUpgrader():
if need_retry:
raise self.TemporaryFailure('Some apps failed to force upgrade.')
+ def _run_force_upgrade_as_operation(self, app, packages):
+ """Start an operation for force upgrading."""
+ name = gettext_noop('Updating app packages')
+ operation = operation_module.manager.new(app.app_id, name,
+ app.force_upgrade, [packages],
+ show_message=False,
+ show_notification=False)
+ return operation.join() # Wait for completion, raise Exception
+
def _get_list_of_apps_to_force_upgrade(self):
"""Return a list of app on which to run force upgrade."""
packages = self._get_list_of_upgradable_packages()
@@ -489,8 +499,7 @@ class ForceUpgrader():
package_apps_map = defaultdict(set)
upgradable_packages = set()
for app in app_module.App.list():
- module = sys.modules[app.__module__]
- if not getattr(module, 'force_upgrade', None):
+ if not getattr(app, 'force_upgrade', None):
# App does not implement force upgrade
continue
diff --git a/plinth/templates/app.html b/plinth/templates/app.html
index bc30d849a..8f9beef85 100644
--- a/plinth/templates/app.html
+++ b/plinth/templates/app.html
@@ -14,49 +14,53 @@
{% include "app-header.html" %}
- {% include "toolbar.html" with enabled=is_enabled %}
+ {% if not operations %}
+ {% include "toolbar.html" with enabled=is_enabled %}
- {% block subsubmenu %}
- {% if subsubmenu %}
- {% show_subsubmenu subsubmenu %}
- {% endif %}
- {% endblock %}
+ {% block subsubmenu %}
+ {% if subsubmenu %}
+ {% show_subsubmenu subsubmenu %}
+ {% endif %}
+ {% endblock %}
- {% block status %}
- {% if is_running is not None and not is_running %}
-
- {% blocktrans trimmed with service_name=app_info.name %}
- Service {{ service_name }} is not running.
- {% endblocktrans %}
-
- {% endif %}
- {% endblock %}
+ {% block status %}
+ {% if is_running is not None and not is_running %}
+
+ {% blocktrans trimmed with service_name=app_info.name %}
+ Service {{ service_name }} is not running.
+ {% endblocktrans %}
+
+ {% endif %}
+ {% endblock %}
- {% block internal_zone %}
- {% include "internal-zone.html" %}
- {% endblock %}
+ {% block internal_zone %}
+ {% include "internal-zone.html" %}
+ {% endblock %}
- {% block port_forwarding_info %}
- {% include "port-forwarding-info.html" with service_name=app_info.name %}
- {% endblock %}
+ {% block port_forwarding_info %}
+ {% include "port-forwarding-info.html" with service_name=app_info.name %}
+ {% endblock %}
- {% block configuration %}
- {% if form %}
-