diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 672299f3d..bfc7af5b6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,7 +21,7 @@ run-unit-tests: - echo "tester:password" | chpasswd - cp -r . /home/tester/plinth - chown -R tester:tester /home/tester/plinth - - su -c "cd ~/plinth; python3 -m flake8 plinth" tester + - su -c "cd ~/plinth; python3 -m flake8 --exclude actions/domainname-change,actions/dynamicdns,actions/hostname-change,actions/networks plinth actions/*" tester - su -c "cd ~/plinth; py.test-3 --cov=plinth --cov-report=html --cov-report=term" tester - cp -r /home/tester/plinth/htmlcov test-coverage-report diff --git a/actions/deluge b/actions/deluge index 3b3ab122d..ee7e6bf7b 100755 --- a/actions/deluge +++ b/actions/deluge @@ -20,11 +20,8 @@ Configuration helper for BitTorrent web client. """ import argparse -import os import subprocess -from plinth import action_utils - SYSTEMD_SERVICE_PATH = '/etc/systemd/system/deluge-web.service' SYSTEMD_SERVICE = ''' # @@ -44,7 +41,7 @@ Group=debian-deluged [Install] WantedBy=multi-user.target -''' +''' # noqa: E501 def parse_arguments(): diff --git a/actions/diaspora b/actions/diaspora index ee464f645..0a915c9b2 100755 --- a/actions/diaspora +++ b/actions/diaspora @@ -37,11 +37,14 @@ def parse_arguments(): subparsers.add_parser( 'pre-install', help='Preseed debconf values before packages are installed.') - - subparsers.add_parser('enable-user-registrations', help='Allow users to' \ - 'sign up to this diaspora* pod without an invitation.') - subparsers.add_parser('disable-user-registrations', help='Allow only, ' \ - 'users with an invitation to register to this diaspora* pod') + subparsers.add_parser( + 'enable-user-registrations', + help='Allow users to sign up to this diaspora* pod without an ' + 'invitation.') + subparsers.add_parser( + 'disable-user-registrations', + help='Allow only users with an invitation to register to this ' + 'diaspora* pod') subparsers.add_parser('start-diaspora', help='Start diaspora* service') subparsers.add_parser( 'disable-ssl', help="Disable SSL on the diaspora* application server") diff --git a/actions/ejabberd b/actions/ejabberd index 78f505ff9..00791a51a 100755 --- a/actions/ejabberd +++ b/actions/ejabberd @@ -31,8 +31,6 @@ from distutils.version import LooseVersion as LV import ruamel.yaml from plinth import action_utils -from plinth.modules import config -from plinth.modules.letsencrypt import LIVE_DIRECTORY as LE_LIVE_DIRECTORY EJABBERD_CONFIG = '/etc/ejabberd/ejabberd.yml' EJABBERD_BACKUP = '/var/log/ejabberd/ejabberd.dump' @@ -89,11 +87,6 @@ def parse_arguments(): mam.add_argument('command', choices=('enable', 'disable', 'status'), help=help_MAM) - help_LE = "Add/drop Let's Encrypt certificate if configured domain matches" - letsencrypt = subparsers.add_parser('letsencrypt', help=help_LE) - letsencrypt.add_argument('command', choices=('add', 'drop'), help=help_LE) - letsencrypt.add_argument('--domain', help='Domain name to drop.') - subparsers.required = True return parser.parse_args() diff --git a/actions/gitweb b/actions/gitweb new file mode 100755 index 000000000..b00926b93 --- /dev/null +++ b/actions/gitweb @@ -0,0 +1,225 @@ +#!/usr/bin/python3 +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +""" +Configuration helper for Gitweb. +""" + +import argparse +import configparser +import json +import os +import shutil +import subprocess + +from plinth import action_utils +from plinth.modules.gitweb.manifest import GIT_REPO_PATH + + +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='Perform post-installation operations for Gitweb') + + subparser = subparsers.add_parser('create-repo', + help='Create a new repository') + subparser.add_argument('--name', required=True, + help='Name of the repository') + subparser.add_argument('--description', required=True, + help='Description of the repository') + subparser.add_argument('--owner', required=True, + help='Repository’s owner name') + subparser.add_argument( + '--is-private', required=False, default=False, action='store_true', + help='Allow only authorized users to access this repository') + + subparser = subparsers.add_parser( + 'repo-info', help='Get information about the repository') + subparser.add_argument('--name', required=True, + help='Name of the repository') + + subparser = subparsers.add_parser('rename-repo', + help='Rename an repository') + subparser.add_argument('--oldname', required=True, + help='Old name of the repository') + subparser.add_argument('--newname', required=True, + help='New name of the repository') + + subparser = subparsers.add_parser('set-repo-description', + help='Set description of the repository') + subparser.add_argument('--name', required=True, + help='Name of the repository') + subparser.add_argument('--description', required=True, + help='Description of the repository') + + subparser = subparsers.add_parser('set-repo-owner', + help='Set repository\'s owner name') + subparser.add_argument('--name', required=True, + help='Name of the repository') + subparser.add_argument('--owner', required=True, + help='Repository’s owner name') + + subparser = subparsers.add_parser( + 'set-repo-access', help='Set repository as private or public') + subparser.add_argument('--name', required=True, + help='Name of the repository') + subparser.add_argument('--access', required=True, + choices=['public', 'private'], help='Access status') + + subparser = subparsers.add_parser('delete-repo', + help='Delete an existing repository') + subparser.add_argument('--name', required=True, + help='Name of the repository to remove') + + subparsers.required = True + return parser.parse_args() + + +def subcommand_setup(_): + """Disable default Apache2 Gitweb configuration""" + action_utils.webserver_disable('gitweb') + + +def _get_repo_description(repo): + """Set description of the repository.""" + description_file = os.path.join(GIT_REPO_PATH, repo + '.git', + 'description') + if os.path.exists(description_file): + with open(description_file, 'r') as file_handle: + description = file_handle.read() + else: + description = '' + + return description + + +def _set_repo_description(repo, description): + """Set description of the repository.""" + description_file = os.path.join(GIT_REPO_PATH, repo + '.git', + 'description') + with open(description_file, 'w') as file_handle: + file_handle.write(description) + + +def _get_repo_owner(repo): + """Set repository's owner name.""" + repo_config = os.path.join(GIT_REPO_PATH, repo + '.git', 'config') + config = configparser.ConfigParser() + config.read(repo_config) + try: + owner = config['gitweb']['owner'] + except KeyError: + owner = '' + + return owner + + +def _set_repo_owner(repo, owner): + """Set repository's owner name.""" + repo_config = os.path.join(GIT_REPO_PATH, repo + '.git', 'config') + config = configparser.ConfigParser() + config.read(repo_config) + if not config.has_section('gitweb'): + config.add_section('gitweb') + + config['gitweb']['owner'] = owner + with open(repo_config, 'w') as file_handle: + config.write(file_handle) + + +def _get_access_status(repo): + """Get repository's access status""" + private_file = os.path.join(GIT_REPO_PATH, repo + '.git', 'private') + if os.path.exists(private_file): + return 'private' + + return 'public' + + +def _set_access_status(repo, status): + """Set repository as private or public""" + private_file = os.path.join(GIT_REPO_PATH, repo + '.git', 'private') + if status == 'private': + open(private_file, 'a') + elif status == 'public': + if os.path.exists(private_file): + os.remove(private_file) + + +def subcommand_rename_repo(arguments): + """Rename a repository.""" + oldpath = os.path.join(GIT_REPO_PATH, arguments.oldname + '.git') + newpath = os.path.join(GIT_REPO_PATH, arguments.newname + '.git') + os.rename(oldpath, newpath) + + +def subcommand_set_repo_description(arguments): + """Set description of the repository.""" + _set_repo_description(arguments.name, arguments.description) + + +def subcommand_set_repo_owner(arguments): + """Set repository's owner name.""" + _set_repo_owner(arguments.name, arguments.owner) + + +def subcommand_set_repo_access(arguments): + """Set repository's access status.""" + _set_access_status(arguments.name, arguments.access) + + +def subcommand_repo_info(arguments): + """Get information about repository.""" + print( + json.dumps( + dict(name=arguments.name, description=_get_repo_description( + arguments.name), owner=_get_repo_owner(arguments.name), + access=_get_access_status(arguments.name)))) + + +def subcommand_create_repo(arguments): + """Create a new git repository.""" + os.chdir(GIT_REPO_PATH) + repo_name = arguments.name + '.git' + subprocess.check_call(['git', 'init', '--bare', repo_name]) + subprocess.check_call(['chown', '-R', 'www-data:www-data', repo_name]) + _set_repo_description(arguments.name, arguments.description) + _set_repo_owner(arguments.name, arguments.owner) + if arguments.is_private: + _set_access_status(arguments.name, 'private') + + +def subcommand_delete_repo(arguments): + """Delete a git repository.""" + repo_path = os.path.join(GIT_REPO_PATH, arguments.name + '.git') + shutil.rmtree(repo_path) + + +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/ikiwiki b/actions/ikiwiki index e753a684f..cc7408bd9 100755 --- a/actions/ikiwiki +++ b/actions/ikiwiki @@ -21,6 +21,7 @@ Configuration helper for ikiwiki import argparse import os +import re import shutil import subprocess import sys @@ -65,14 +66,29 @@ def subcommand_setup(_): setup() -def subcommand_get_sites(_): - """Get wikis and blogs.""" +def get_title(site): + """Get blog or wiki title""" try: - sites = os.listdir(SITE_PATH) - print('\n'.join(sites)) + with open(os.path.join(SITE_PATH, site, 'index.html')) as index_file: + match = re.search(r'(.*)', index_file.read()) + if match: + return match[1] except FileNotFoundError: pass + return site + + +def subcommand_get_sites(_): + """Get wikis and blogs.""" + if os.path.exists(SITE_PATH): + for site in os.listdir(SITE_PATH): + if not os.path.isdir(os.path.join(SITE_PATH, site)): + continue + + title = get_title(site) + print(site, title) + def subcommand_create_wiki(arguments): """Create a wiki.""" @@ -80,7 +96,8 @@ def subcommand_create_wiki(arguments): proc = subprocess.Popen([ 'ikiwiki', '-setup', SETUP_WIKI, arguments.wiki_name, arguments.admin_name - ], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE) + ], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE, + env=dict(os.environ, PERL_UNICODE='AS')) outs, errs = proc.communicate(input=pw_bytes + b'\n' + pw_bytes) print(outs) print(errs) @@ -92,7 +109,8 @@ def subcommand_create_blog(arguments): proc = subprocess.Popen([ 'ikiwiki', '-setup', SETUP_BLOG, arguments.blog_name, arguments.admin_name - ], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE) + ], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE, + env=dict(os.environ, PERL_UNICODE='AS')) outs, errs = proc.communicate(input=pw_bytes + b'\n' + pw_bytes) print(outs) print(errs) diff --git a/actions/letsencrypt b/actions/letsencrypt index 4d4975aac..7509d9ac7 100755 --- a/actions/letsencrypt +++ b/actions/letsencrypt @@ -56,8 +56,9 @@ def parse_arguments(): setup_parser = subparsers.add_parser( 'setup', help='Run any setup/upgrade activities.') setup_parser.add_argument( - '--old-version', type=int, required=True, help= - 'Version number being upgraded from or None if setting up first time.') + '--old-version', type=int, required=True, + help='Version number being upgraded from or None if setting up first ' + 'time.') subparsers.add_parser('get-status', help='Return the status of configured domains.') @@ -273,8 +274,8 @@ def subcommand_obtain(arguments): def _remove_old_hooks(): """Remove old style renewal hooks from individual configuration files. - This has been replaced with global hooks by adding script files in directory - /etc/letsencrypt/renewal-hooks/{pre,post,deploy}/. + This has been replaced with global hooks by adding script files in + directory /etc/letsencrypt/renewal-hooks/{pre,post,deploy}/. """ for file_path in glob.glob(RENEWAL_DIRECTORY + '*.conf'): diff --git a/actions/matrixsynapse b/actions/matrixsynapse index 1215c5a7a..fc7580b81 100755 --- a/actions/matrixsynapse +++ b/actions/matrixsynapse @@ -24,9 +24,7 @@ import argparse import yaml from plinth import action_utils -from plinth.modules import letsencrypt -from plinth.modules.matrixsynapse import (CONFIG_FILE_PATH, - get_configured_domain_name) +from plinth.modules.matrixsynapse import CONFIG_FILE_PATH def parse_arguments(): @@ -44,13 +42,6 @@ def parse_arguments(): '--domain-name', help='The domain name that will be used by Matrix Synapse') - help_le = "Add/drop Let's Encrypt certificate if configured domain matches" - subparser = subparsers.add_parser('letsencrypt', help=help_le) - subparser.add_argument('command', choices=('add', 'drop', 'get-status'), - help='Whether to add or drop the certificate') - subparser.add_argument('--domain', - help='Domain name to renew certificates for') - subparsers.required = True return parser.parse_args() diff --git a/actions/monkeysphere b/actions/monkeysphere index 7b4586cab..c09c50514 100755 --- a/actions/monkeysphere +++ b/actions/monkeysphere @@ -129,8 +129,8 @@ def get_https_keys(fingerprint_hash): # Read from FreedomBox configured domains with proper SSL certs. path = "/files/etc/apache2/sites-available//" \ "directive[. = 'Use'][arg[1] = 'FreedomBoxTLSSiteMacro']" - key_file = "/files/etc/apache2//Macro[arg[1] = 'FreedomBoxTLSSiteMacro']//"\ - "VirtualHost/directive[. = 'GnuTLSKeyFile']/arg" + key_file = ("/files/etc/apache2//Macro[arg[1] = 'FreedomBoxTLSSiteMacro'])" + "//VirtualHost/directive[. = 'GnuTLSKeyFile']/arg") key_file = aug.get(key_file) for match in aug.match(path): domain = aug.get(match + '/arg[2]') diff --git a/actions/openvpn b/actions/openvpn index aca5435c3..720d5cc8d 100755 --- a/actions/openvpn +++ b/actions/openvpn @@ -237,7 +237,6 @@ def _setup_firewall(): except subprocess.CalledProcessError: return True # Safer - # XXX: Due to https://bugs.debian.org/919517 when tun+ interface is added, # firewalld is unable to handle it in nftables backend causing firewalld to # break while applying rules. This makes the entire system unreachable. diff --git a/actions/packages b/actions/packages index b0072cbf3..887e70162 100755 --- a/actions/packages +++ b/actions/packages @@ -153,7 +153,8 @@ def subcommand_filter_conffile_packages(arguments): - Read /var/lib/dpkg/status file to read hashes as provided by currently installed version of a package. - - Read each configuration file for the package from disk and compute hashes. + - Read each configuration file for the package from disk and compute + hashes. - If the hashes match, package has no configuration file that got modified. There will be no conffile prompt. @@ -179,8 +180,9 @@ def subcommand_filter_conffile_packages(arguments): downloaded_files = _download_packages(packages) - new_package_hashes, new_versions = _get_conffile_hashes_from_downloaded_files( - packages, downloaded_files, status_hashes, mismatched_hashes) + new_package_hashes, new_versions = \ + _get_conffile_hashes_from_downloaded_files( + packages, downloaded_files, status_hashes, mismatched_hashes) packages_info = {} for package in packages: @@ -356,7 +358,8 @@ def _get_conffile_hashes_from_downloaded_files( try: package_name, hashes, new_version = \ _get_conffile_hashes_from_downloaded_file( - packages, downloaded_file, status_hashes, mismatched_hashes) + packages, downloaded_file, status_hashes, + mismatched_hashes) except (LookupError, apt_pkg.Error, ValueError): continue diff --git a/actions/quassel b/actions/quassel new file mode 100755 index 000000000..5beacb7d2 --- /dev/null +++ b/actions/quassel @@ -0,0 +1,55 @@ +#!/usr/bin/python3 +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +""" +Configuration helper for Quassel. +""" + +import argparse +import pathlib + + +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('set-domain', + help='Setup Cockpit configuration') + subparser.add_argument('domain_name', help='Domain name to be allowed') + + subparsers.required = True + return parser.parse_args() + + +def subcommand_set_domain(arguments): + """Write a file containing domain name.""" + domain_file = pathlib.Path('/var/lib/quassel/domain-freedombox') + domain_file.write_text(arguments.domain_name) + + +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/searx b/actions/searx index 3d1b8045f..9f66a9de0 100755 --- a/actions/searx +++ b/actions/searx @@ -1,6 +1,6 @@ #!/usr/bin/python3 # -# This file is part of Plinth. +# This file is part of FreedomBox. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/actions/service b/actions/service index be8df78ea..ee7a55a8e 100755 --- a/actions/service +++ b/actions/service @@ -100,15 +100,21 @@ def subcommand_is_running(arguments): def subcommand_list(_): - """Get list of plinth-managed services with their status (running or not)""" + """Get list of plinth-managed services with their status. + + Status may be either running or not. + + """ managed_services = _get_managed_services() services = dict.fromkeys(managed_services, {'running': False}) output = subprocess.check_output(['systemctl', 'list-units']) for line in output.decode().strip().split('\n'): - if line.startswith('UNIT'): continue + if line.startswith('UNIT'): + continue # Stop parsing on empty line after the service list - if not len(line): break + if not len(line): + break try: unit, load, active, sub = line.split()[:4] diff --git a/actions/ssh b/actions/ssh index c6bad6b32..8c3c0c8eb 100755 --- a/actions/ssh +++ b/actions/ssh @@ -70,7 +70,7 @@ def get_user_homedir(username): """Return the home dir of a user by looking up in password database.""" try: return pwd.getpwnam(username).pw_dir - except KeyError as exception: + except KeyError: print('Username not found') sys.exit(1) diff --git a/actions/storage b/actions/storage index 648f94657..d156220a4 100755 --- a/actions/storage +++ b/actions/storage @@ -92,7 +92,7 @@ def _resize_partition(device, requested_partition, free_space): ] try: subprocess.run(command, check=True) - except subprocess.CalledProcessError as exception: + except subprocess.CalledProcessError: try: subprocess.run(fallback_command, check=True) except subprocess.CalledProcessError as exception: @@ -182,9 +182,9 @@ def _get_partition_device(device, partition_number): def _get_root_device_and_partition_number(device): """Return the parent device and number of partition separately.""" - match = re.match('(.+[a-zA-Z]\d+)p(\d+)$', device) + match = re.match(r'(.+[a-zA-Z]\d+)p(\d+)$', device) if not match: - match = re.match('(.+[a-zA-Z])(\d+)$', device) + match = re.match(r'(.+[a-zA-Z])(\d+)$', device) if not match: print('Invalid device, must be a partition', file=sys.stderr) sys.exit(1) diff --git a/actions/tor b/actions/tor index 96ec812a0..a49bda867 100755 --- a/actions/tor +++ b/actions/tor @@ -48,8 +48,9 @@ def parse_arguments(): setup_parser = subparsers.add_parser('setup', help='Setup Tor configuration') setup_parser.add_argument( - '--old-version', type=int, required=True, help= - 'Version number being upgraded from or None if setting up first time.') + '--old-version', type=int, required=True, + help='Version number being upgraded from or None if setting up first ' + 'time.') subparsers.add_parser('get-status', help='Get Tor status in JSON format') diff --git a/actions/upgrades b/actions/upgrades index db808a51f..14b1df60c 100755 --- a/actions/upgrades +++ b/actions/upgrades @@ -30,7 +30,8 @@ from plinth import action_utils AUTO_CONF_FILE = '/etc/apt/apt.conf.d/20auto-upgrades' LOG_FILE = '/var/log/unattended-upgrades/unattended-upgrades.log' -BUSTER_BACKPORTS_RELEASE_FILE_URL = 'https://deb.debian.org/debian/dists/buster-backports/Release' +BUSTER_BACKPORTS_RELEASE_FILE_URL = \ + 'https://deb.debian.org/debian/dists/buster-backports/Release' def parse_arguments(): diff --git a/actions/users b/actions/users index 12555e52c..e35ad320c 100755 --- a/actions/users +++ b/actions/users @@ -290,7 +290,7 @@ def get_user_groups(username): groups_part = output.split(' ')[2] groups = groups_part.split('=')[1] group_names = [ - user.strip('()') for user in re.findall('\(.*?\)', groups) + user.strip('()') for user in re.findall(r'\(.*?\)', groups) ] group_names.remove('users') return group_names @@ -370,9 +370,10 @@ def subcommand_get_group_users(arguments): def flush_cache(): - """Flush nscd cache.""" + """Flush nscd and apache2 cache.""" _run(['nscd', '--invalidate=passwd']) _run(['nscd', '--invalidate=group']) + action_utils.service_reload('apache2') def _run(arguments, **kwargs): diff --git a/debian/changelog b/debian/changelog index 0fc4db24b..0a2bdeb4d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,58 @@ +plinth (19.19) unstable; urgency=medium + + [ Veiko Aasa ] + * ikiwiki: Allow full Unicode text in wiki/blog title names + * actions: Check with flake8 + * gitweb: New app for simple git hosting + * users: reload Apache2 to flush LDAP cache after user operations + * gitweb: update repository list where necessary + * gitweb: fix Windows Git client download link in manifest + * gitweb: add help text for description and owner fields in the form + * gitweb: enable rename detection + + [ Pavel Borecki ] + * Translated using Weblate (Czech) + + [ Thomas Vincent ] + * Translated using Weblate (French) + + [ Birger Schacht ] + * ssh: Show server fingerprints in SSH page + + [ James Valleroy ] + * Translated using Weblate (French) + * gitweb: Fix flake8 error + * locale: Update translations strings + * doc: Fetch latest manual + + [ Nevena Mircheva ] + * Translated using Weblate (Bulgarian) + + [ Sunil Mohan Adapa ] + * matrixsynapse: Remove unused letsencrypt action + * ejabberd: Removed unused letsencrypt action + * gitweb: Minor fixes after review + * gitweb: Minor visual changes to templates + * gitweb: Fix issue with elevated access to private repositories + * frontpage: Show shortcuts that public even if need a group + * searx, app, translation, language-selection: Fix license header + * ikiwiki: Remove extra create button when no wiki/blog is present + * cosmetic: yapf formatting + + [ ikmaak ] + * Translated using Weblate (Dutch) + + [ Michael Breidenbach ] + * Translated using Weblate (German) + + [ Allan Nordhøy ] + * Translated using Weblate (Norwegian Bokmål) + + [ Matthias Dellweg ] + * quassel: Add let's encrypt component for certficiates + + -- James Valleroy Mon, 21 Oct 2019 18:49:35 -0400 + plinth (19.18~bpo10+1) buster-backports; urgency=medium * Rebuild for buster-backports. diff --git a/debian/copyright b/debian/copyright index d86e1fb3a..00b05b8d2 100644 --- a/debian/copyright +++ b/debian/copyright @@ -74,6 +74,12 @@ Copyright: 2012 William Theaker Comment: https://gitlab.com/fdroid/artwork/blob/master/fdroid-logo-2015/fdroid-logo.svg License: CC-BY-SA-3.0 or GPL-3+ +Files: static/themes/default/icons/gitweb.png + static/themes/default/icons/gitweb.svg +Copyright: 2010 Git Authors +Comment: https://github.com/git/git/blob/master/gitweb/static/git-logo.png +License: GPL-2 + Files: static/themes/default/icons/google-play.png Copyright: Chameleon Design (https://thenounproject.com/Chamedesign/) Comment: https://thenounproject.com/icon/887917/ diff --git a/doc/Apache_userdir.raw.xml b/doc/Apache_userdir.raw.xml index f59a25566..17bfa8a9a 100644 --- a/doc/Apache_userdir.raw.xml +++ b/doc/Apache_userdir.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Apache_userdir32019-02-27 00:08:57JamesValleroyremove wiki links22019-02-17 21:44:22MikkelKirkgaardNielsenrefer to ourselves as User websites, add basics table from new template12019-02-13 23:15:52MikkelKirkgaardNielsenadd draft page
User websites (userdir)
What is User websites?User websites is a module of the Apache webserver enabled to allow users defined in the FreedomBox system to expose a set of static files on the FreedomBox filesystem as a website to the local network and/or the internet according to the network and firewall setup. Application basicsCategory File sharing Available since version 0.9.4Upstream project website Upstream end user documentation
ScreenshotAdd when/if an interface is made for Plinth
Using User websitesThe module is always enabled and offers no configuration from the Plinth web interface. Currently its existence is not even visible in the Plinth web interface. Using the modules capability to serve documents requires just to place the documents in the designated directory in a Plinth user's home directory in the filesystem. This directory is: public_html Thus the absolute path for the directory of a user named fbx with home directory in /home/fbx will be /home/fbx/public_html. User websites will serve documents placed in this directory when requests for documents with the URI path "~fbx" are received. For the the example.org domain thus a request for the document example.org/~fbx/index.html will transfer the file in /home/fbx/public_html/index.html.
Using SFTP to create public_html and upload documentsTo be written Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Apache_userdir32019-02-27 00:08:57JamesValleroyremove wiki links22019-02-17 21:44:22MikkelKirkgaardNielsenrefer to ourselves as User websites, add basics table from new template12019-02-13 23:15:52MikkelKirkgaardNielsenadd draft page
User websites (userdir)
What is User websites?User websites is a module of the Apache webserver enabled to allow users defined in the FreedomBox system to expose a set of static files on the FreedomBox filesystem as a website to the local network and/or the internet according to the network and firewall setup. Application basicsCategory File sharing Available since version 0.9.4Upstream project website Upstream end user documentation
ScreenshotAdd when/if an interface is made for Plinth
Using User websitesThe module is always enabled and offers no configuration from the Plinth web interface. Currently its existence is not even visible in the Plinth web interface. Using the modules capability to serve documents requires just to place the documents in the designated directory in a Plinth user's home directory in the filesystem. This directory is: public_html Thus the absolute path for the directory of a user named fbx with home directory in /home/fbx will be /home/fbx/public_html. User websites will serve documents placed in this directory when requests for documents with the URI path "~fbx" are received. For the the example.org domain thus a request for the document example.org/~fbx/index.html will transfer the file in /home/fbx/public_html/index.html.
Using SFTP to create public_html and upload documentsTo be written Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Backups.raw.xml b/doc/Backups.raw.xml index 154b501fa..2e8cc7e07 100644 --- a/doc/Backups.raw.xml +++ b/doc/Backups.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Backups302019-02-26 23:33:42SunilMohanAdapaUpdate information about tt-rss292019-02-23 00:11:05JamesValleroyadd mldonkey282019-02-04 01:16:41SunilMohanAdapaAdd FreedomBox footer272019-01-31 01:30:48SunilMohanAdapaMinor formatting262019-01-31 01:29:18SunilMohanAdapaMake manual friendly, consolidate feature data, update description252019-01-30 17:45:57SunilMohanAdapaMinor release update242019-01-23 00:43:21SunilMohanAdapaUpdate information about syncthing232019-01-18 22:26:06SunilMohanAdapaUpdate OpenVPN information222018-10-30 05:04:32SunilMohanAdapaUpdate information about Tahoe-LAFS212018-10-29 23:50:51SunilMohanAdapaUpdate information about users and letsencrypt202018-10-26 05:36:32SunilMohanAdapaUpdate information about Monkeysphere192018-10-23 23:30:58SunilMohanAdapaUpdate information about upgrades182018-10-23 22:21:23SunilMohanAdapaAdd information about Tor172018-10-22 17:17:31SunilMohanAdapaUpdate information about newly merged changes162018-10-19 17:12:53SunilMohanAdapaAdd information about SSH152018-10-19 15:38:54SunilMohanAdapaUpdate information on recent progress142018-10-15 23:09:09SunilMohanAdapaUpdate status of datetime and deluge132018-10-09 03:22:17SunilMohanAdapaUpdate information about release of version 0.40122018-10-04 11:34:24JamesValleroyremove links to "FreedomBox" page112018-10-04 04:47:13SunilMohanAdapaMinor formatting102018-10-04 04:46:50SunilMohanAdapaUpdate list of supported applications92018-10-02 15:43:29DannyHaidar82018-10-02 15:41:49DannyHaidar72018-10-02 15:38:00DannyHaidar62018-10-01 17:38:55DannyHaidar52018-10-01 16:50:33DannyHaidar42018-10-01 16:49:00DannyHaidar32018-10-01 16:39:47DannyHaidar22018-10-01 16:37:48DannyHaidar12018-10-01 16:36:42DannyHaidar
BackupsFreedomBox includes the ability to backup and restore data, preferences, configuration and secrets from most of the applications. The Backups feature is built using Borg backup software. Borg is a deduplicating and compressing backup program. It is designed for efficient and secure backups. This backups feature can be used to selectively backup and restore data on an app-by-app basis. Backed up data can be stored on the FreedomBox machine itself or on a remote server. Any remote server providing SSH access can be used as a backup storage repository for FreedomBox backups. Data stored remotely may be encrypted and in such cases remote server cannot access your decrypted data.
Status of Backups Feature App/Feature Support in Version Notes Avahi - no backup needed Backups - no backup needed Bind 0.41 Cockpit - no backup needed Coquelicot 0.40 includes uploaded files Datetime 0.41 Deluge 0.41 does not include downloaded/seeding files Diagnostics - no backup needed Dynamic DNS 0.39 ejabberd 0.39 includes all data and configuration Firewall - no backup needed ikiwiki 0.39 includes all wikis/blogs and their content infinoted 0.39 includes all data and keys JSXC - no backup needed Let's Encrypt 0.42 Matrix Synapse 0.39 includes media and uploads MediaWiki 0.39 includes wiki pages and uploaded files Minetest 0.39 MLDonkey 19.0 Monkeysphere 0.42 Mumble 0.40 Names - no backup needed Networks No No plans currently to implement backup OpenVPN 0.48 includes all user and server keys Pagekite 0.40 Power - no backup needed Privoxy - no backup needed Quassel 0.40 includes users and logs Radicale 0.39 includes calendar and cards data for all users repro 0.39 includes all users, data and keys Roundcube - no backup needed SearX - no backup needed Secure Shell (SSH) Server 0.41 includes host keys Security 0.41 Shadowsocks 0.40 only secrets Sharing 0.40 does not include the data in the shared folders Snapshot 0.41 only configuration, does not include snapshot data Storage - no backup needed Syncthing 0.48 does not include data in the shared folders Tahoe-LAFS 0.42 includes all data and configuration Tiny Tiny RSS 19.2 includes database containing feeds, stories, etc. Tor 0.42 includes configuration and secrets such as hidden service keys Transmission 0.40 does not include downloaded/seeding files Upgrades 0.42 Users No No plans currently to implement backup
How to install and use BackupsStep 1 Backups: Step 1 Step 2 Backups: Step 2 Step 3 Backups: Step 3 Step 4 Backups: Step 4 Step 5 Backups: Step 5 Step 6 Backups: Step 6 Step 7 Backups: Step 7 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Backups302019-02-26 23:33:42SunilMohanAdapaUpdate information about tt-rss292019-02-23 00:11:05JamesValleroyadd mldonkey282019-02-04 01:16:41SunilMohanAdapaAdd FreedomBox footer272019-01-31 01:30:48SunilMohanAdapaMinor formatting262019-01-31 01:29:18SunilMohanAdapaMake manual friendly, consolidate feature data, update description252019-01-30 17:45:57SunilMohanAdapaMinor release update242019-01-23 00:43:21SunilMohanAdapaUpdate information about syncthing232019-01-18 22:26:06SunilMohanAdapaUpdate OpenVPN information222018-10-30 05:04:32SunilMohanAdapaUpdate information about Tahoe-LAFS212018-10-29 23:50:51SunilMohanAdapaUpdate information about users and letsencrypt202018-10-26 05:36:32SunilMohanAdapaUpdate information about Monkeysphere192018-10-23 23:30:58SunilMohanAdapaUpdate information about upgrades182018-10-23 22:21:23SunilMohanAdapaAdd information about Tor172018-10-22 17:17:31SunilMohanAdapaUpdate information about newly merged changes162018-10-19 17:12:53SunilMohanAdapaAdd information about SSH152018-10-19 15:38:54SunilMohanAdapaUpdate information on recent progress142018-10-15 23:09:09SunilMohanAdapaUpdate status of datetime and deluge132018-10-09 03:22:17SunilMohanAdapaUpdate information about release of version 0.40122018-10-04 11:34:24JamesValleroyremove links to "FreedomBox" page112018-10-04 04:47:13SunilMohanAdapaMinor formatting102018-10-04 04:46:50SunilMohanAdapaUpdate list of supported applications92018-10-02 15:43:29DannyHaidar82018-10-02 15:41:49DannyHaidar72018-10-02 15:38:00DannyHaidar62018-10-01 17:38:55DannyHaidar52018-10-01 16:50:33DannyHaidar42018-10-01 16:49:00DannyHaidar32018-10-01 16:39:47DannyHaidar22018-10-01 16:37:48DannyHaidar12018-10-01 16:36:42DannyHaidar
BackupsFreedomBox includes the ability to backup and restore data, preferences, configuration and secrets from most of the applications. The Backups feature is built using Borg backup software. Borg is a deduplicating and compressing backup program. It is designed for efficient and secure backups. This backups feature can be used to selectively backup and restore data on an app-by-app basis. Backed up data can be stored on the FreedomBox machine itself or on a remote server. Any remote server providing SSH access can be used as a backup storage repository for FreedomBox backups. Data stored remotely may be encrypted and in such cases remote server cannot access your decrypted data.
Status of Backups Feature App/Feature Support in Version Notes Avahi - no backup needed Backups - no backup needed Bind 0.41 Cockpit - no backup needed Coquelicot 0.40 includes uploaded files Datetime 0.41 Deluge 0.41 does not include downloaded/seeding files Diagnostics - no backup needed Dynamic DNS 0.39 ejabberd 0.39 includes all data and configuration Firewall - no backup needed ikiwiki 0.39 includes all wikis/blogs and their content infinoted 0.39 includes all data and keys JSXC - no backup needed Let's Encrypt 0.42 Matrix Synapse 0.39 includes media and uploads MediaWiki 0.39 includes wiki pages and uploaded files Minetest 0.39 MLDonkey 19.0 Monkeysphere 0.42 Mumble 0.40 Names - no backup needed Networks No No plans currently to implement backup OpenVPN 0.48 includes all user and server keys Pagekite 0.40 Power - no backup needed Privoxy - no backup needed Quassel 0.40 includes users and logs Radicale 0.39 includes calendar and cards data for all users repro 0.39 includes all users, data and keys Roundcube - no backup needed SearX - no backup needed Secure Shell (SSH) Server 0.41 includes host keys Security 0.41 Shadowsocks 0.40 only secrets Sharing 0.40 does not include the data in the shared folders Snapshot 0.41 only configuration, does not include snapshot data Storage - no backup needed Syncthing 0.48 does not include data in the shared folders Tahoe-LAFS 0.42 includes all data and configuration Tiny Tiny RSS 19.2 includes database containing feeds, stories, etc. Tor 0.42 includes configuration and secrets such as hidden service keys Transmission 0.40 does not include downloaded/seeding files Upgrades 0.42 Users No No plans currently to implement backup
How to install and use BackupsStep 1 Backups: Step 1 Step 2 Backups: Step 2 Step 3 Backups: Step 3 Step 4 Backups: Step 4 Step 5 Backups: Step 5 Step 6 Backups: Step 6 Step 7 Backups: Step 7 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Cockpit.raw.xml b/doc/Cockpit.raw.xml index 7e6c324af..526d67493 100644 --- a/doc/Cockpit.raw.xml +++ b/doc/Cockpit.raw.xml @@ -4,4 +4,4 @@ 'http://www.docbook.org/xml/4.4/docbookx.dtd'>
FreedomBox/Manual/Cockpit42019-08-20 18:22:51SunilMohanAdapaUpdate information about .local domain and fix URLs32019-07-19 00:08:47SunilMohanAdapaAdd informatio about Cockpit needing a proper domain name22019-01-10 21:41:56SunilMohanAdapaWrite manual page for Cockpit12018-03-02 12:57:48JosephNuthalapatiCreate stub for Cockpit
Cockpit (Server Administration)Cockpit is a server manager that makes it easy to administer GNU/Linux servers via a web browser. On a FreedomBox, controls are available for many advanced functions that are not usually required. A web based terminal for console operations is also available. It can be accessed by any user on your FreedomBox belonging to the admin group. Cockpit is only usable when you have proper domain name setup for your FreedomBox and you use that domain name to access Cockpit. See the Troubleshooting section for more information. Use cockpit only if you are an administrator of GNU/Linux systems with advanced skills. FreedomBox tries to coexist with changes to system by system administrators and system administration tools like Cockpit. However, improper changes to the system might causes failures in FreedomBox functions.
Using CockpitInstall Cockpit like any other application on FreedomBox. Make sure that Cockpit is enabled after that. cockpit-enable.png Ensure that the user account on FreedomBox that will used for Cockpit is part of the administrators group. cockpit-admin-user.png Launch the Cockpit web interface. Login using the configured user account. cockpit-login.png Start using cockpit. cockpit-system.png Cockpit is usable on mobile interfaces too. cockpit-mobile.png
FeaturesThe following features of Cockpit may be useful for advanced FreedomBox users.
System DashboardCockpit has a system dashboard that Shows detailed hardware information Shows basic performance metrics of a system Allows changing system time and timezone Allows changing hostname. Please use FreedomBox UI to do this Shows SSH server fingerprints cockpit-system.png
Viewing System LogsCockpit allows querying system logs and examining them in full detail. cockpit-logs.png
Managing StorageCockpit allows following advanced storage functions: View full disk information Editing disk partitions RAID management cockpit-storage1.png cockpit-storage2.png
NetworkingCockpit and FreedomBox both rely on NetworkManager to configure the network. However, Cockpit offers some advanced configuration not available on FreedomBox: Route configuration Configure Bonds, Bridges, VLANs cockpit-network1.png cockpit-network2.png cockpit-network3.png
ServicesCockpit allows management of services and periodic jobs (similar to cron). cockpit-services1.png cockpit-services2.png
Web TerminalCockpit offers a web based terminal that can be used perform manual system administration tasks. cockpit-terminal.png
TroubleshootingCockpit requires a domain name to be properly setup on your FreedomBox and will only work when you access it using a URL with that domain name. Cockpit will not work when using IP address in the URL. Using freedombox.local as the domain name also does not work. For example, the following URLs will not work: Starting with FreedomBox version 19.15, using .local domain works. You can access Cockpit using the URL . The .local domain is based on your hostname. If your hostname is mybox, your .local domain name will be mybox.local and the Cockpit URL will be . To properly access Cockpit, use the domain name configured for your FreedomBox.Cockpit will also work well when using a Tor Hidden Service. The following URLs will work: The reason for this behaviour is that Cockpit uses WebSockets to connect to the backend server. Cross site requests for WebSockets must be prevented for security reasons. To implement this, Cockpit maintains a list of all domains from which requests are allowed. FreedomBox automatically configures this list whenever you add or remove a domain. However, since we can't rely on IP addresses, they are not added by FreedomBox to this domain list. You can see the current list of allowed domains, as managed by FreedomBox, in /etc/cockpit/cockpit.conf. You may edit this, but do so only if you understand web security consequences of this. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +https://exampletorhs.onion/_cockpit/]]>The reason for this behaviour is that Cockpit uses WebSockets to connect to the backend server. Cross site requests for WebSockets must be prevented for security reasons. To implement this, Cockpit maintains a list of all domains from which requests are allowed. FreedomBox automatically configures this list whenever you add or remove a domain. However, since we can't rely on IP addresses, they are not added by FreedomBox to this domain list. You can see the current list of allowed domains, as managed by FreedomBox, in /etc/cockpit/cockpit.conf. You may edit this, but do so only if you understand web security consequences of this. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file diff --git a/doc/Configure.raw.xml b/doc/Configure.raw.xml index bcd918d05..154ebdc50 100644 --- a/doc/Configure.raw.xml +++ b/doc/Configure.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Configure92019-02-28 10:25:01JosephNuthalapatiRename default app to webserver home page82018-10-09 09:54:01JosephNuthalapatiImprove formatting72018-07-25 08:38:53JosephNuthalapatiRemove /home as an alias to /freedombox62018-07-24 17:51:28SunilMohanAdapaRename FreedomBox Plinth to FreedomBox Service (Plinth)52018-07-24 16:12:49JosephNuthalapatiAdd tip about bookmarking FreedomBox Plinth42018-07-24 13:52:47JosephNuthalapatiAdd wiki entry about Default App32016-12-31 04:11:43JamesValleroymention how domain name is used22016-12-31 04:07:26JamesValleroyfix outline12016-08-21 16:35:55DrahtseilCreated Configure
ConfigureConfigure has some general configuration options:
HostnameHostname is the local name by which other devices on the local network can reach your FreedomBox. The default hostname is freedombox.
Domain NameDomain name is the global name by which other devices on the Internet can reach your FreedomBox. The value set here is used by the Chat Server (XMPP), Matrix Synapse, Certificates (Let's Encrypt), and Monkeysphere.
Webserver Home PageThis is an advanced option that allows you to set something other than FreedomBox Service (Plinth) as the home page to be served on the domain name of the FreedomBox. For example, if your FreedomBox's domain name is and you set MediaWiki as the home page, visiting will take you to instead of the usual . You can set any web application, Ikiwiki wikis and blogs or Apache's default index.html page as the web server home page. Once some other app is set as the home page, you can only navigate to the FreedomBox Service (Plinth) by typing into the browser. /freedombox can also be used as an alias to /plinth Tip: Bookmark the URL of FreedomBox Service (Plinth) before setting the home page to some other app. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Configure92019-02-28 10:25:01JosephNuthalapatiRename default app to webserver home page82018-10-09 09:54:01JosephNuthalapatiImprove formatting72018-07-25 08:38:53JosephNuthalapatiRemove /home as an alias to /freedombox62018-07-24 17:51:28SunilMohanAdapaRename FreedomBox Plinth to FreedomBox Service (Plinth)52018-07-24 16:12:49JosephNuthalapatiAdd tip about bookmarking FreedomBox Plinth42018-07-24 13:52:47JosephNuthalapatiAdd wiki entry about Default App32016-12-31 04:11:43JamesValleroymention how domain name is used22016-12-31 04:07:26JamesValleroyfix outline12016-08-21 16:35:55DrahtseilCreated Configure
ConfigureConfigure has some general configuration options:
HostnameHostname is the local name by which other devices on the local network can reach your FreedomBox. The default hostname is freedombox.
Domain NameDomain name is the global name by which other devices on the Internet can reach your FreedomBox. The value set here is used by the Chat Server (XMPP), Matrix Synapse, Certificates (Let's Encrypt), and Monkeysphere.
Webserver Home PageThis is an advanced option that allows you to set something other than FreedomBox Service (Plinth) as the home page to be served on the domain name of the FreedomBox. For example, if your FreedomBox's domain name is and you set MediaWiki as the home page, visiting will take you to instead of the usual . You can set any web application, Ikiwiki wikis and blogs or Apache's default index.html page as the web server home page. Once some other app is set as the home page, you can only navigate to the FreedomBox Service (Plinth) by typing into the browser. /freedombox can also be used as an alias to /plinth Tip: Bookmark the URL of FreedomBox Service (Plinth) before setting the home page to some other app. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Coquelicot.raw.xml b/doc/Coquelicot.raw.xml index c15f55fd0..db83529de 100644 --- a/doc/Coquelicot.raw.xml +++ b/doc/Coquelicot.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Coquelicot72019-09-11 09:45:09fioddorCategory Deduplicated62018-12-30 19:59:56DrahtseilBasic priniciple52018-03-05 09:15:01JosephNuthalapaticoquelicot: Fix broken links42018-02-26 17:14:51JamesValleroyincluded in 0.2432018-02-12 23:48:10JamesValleroybump version22018-02-12 23:47:14JamesValleroyreplace fancy quote characters with plain quote characters12018-02-10 03:14:55JosephNuthalapatiCreate new page for Coquelicot
File Sharing (Coquelicot)
About CoquelicotCoquelicot is a "one-click" file sharing web application with a focus on protecting users' privacy. The basic principle is simple: users can upload a file to the server, in return they get a unique URL which can be shared with others in order to download the file. A download password can be defined. After the upload you get a unique link that can be shared to your partners in order to Read more about Coquelicot at the Coquelicot README Available since: version 0.24.0
When to use CoquelicotCoquelicot is best used to quickly share a single file. If you want to share a folder, for a single use, compress the folder and share it over Coquelicot which must be kept synchronized between computers, use Syncthing instead Coquelicot can only provide a reasonable degree of privacy. If anonymity is required, you should consider using the desktop application Onionshare instead. Since Coquelicot fully uploads the file to the server, your FreedomBox will incur both upload and download bandwidth costs. For very large files, consider sharing them using BitTorrent by creating a private torrent file. If anonymity is required, use Onionshare. It is P2P and doesn't require a server.
Coquelicot on FreedomBoxWith Coquelicot installed, you can upload files to your FreedomBox server and privately share them. Post installation, the Coquelicot page offers two settings. Upload Password: Coquelicot on FreedomBox is currently configured to use simple password authentication for ease of use. Remember that it's one global password for this Coquelicot instance and not your user password for FreedomBox. You need not remember this password. You can set a new one from the Plinth interface anytime. Maximum File Size: You can alter the maximum size of the file that can be transferred through Coquelicot using this setting. The size is in Mebibytes. The maximum file size is only limited by the disk size of your FreedomBox.
PrivacySomeone monitoring your network traffic might find out that some file is being transferred through your FreedomBox and also possibly its size, but will not know the file name. Coquelicot encrypts files on the server and also fills the file contents with 0s when deleting them. This eliminates the risk of file contents being revealed in the event of your FreedomBox being confiscated or stolen. The real risk to mitigate here is a third-party also downloading your file along with the intended recipient.
Sharing over instant messengersSome instant messengers which have previews for websites might download your file in order to show a preview in the conversation. If you set the option of one-time download on a file, you might notice that the one download will be used up by the instant messenger. If sharing over such messengers, please use a download password in combination with a one-time download option.
Sharing download links privatelyIt is recommended to share your file download links and download passwords over encrypted channels. You can simply avoid all the above problems with instant messenger previews by using instant messengers that support encrypted conversations like Riot with Matrix Synapse or XMPP (ejabberd server on FreedomBox) with clients that support end-to-end encryption. Send the download link and the download password in two separate messages (helps if your messenger supports perfect forward secrecy like XMPP with OTR). You can also share your links over PGP-encrypted email using Thunderbird. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Coquelicot72019-09-11 09:45:09fioddorCategory Deduplicated62018-12-30 19:59:56DrahtseilBasic priniciple52018-03-05 09:15:01JosephNuthalapaticoquelicot: Fix broken links42018-02-26 17:14:51JamesValleroyincluded in 0.2432018-02-12 23:48:10JamesValleroybump version22018-02-12 23:47:14JamesValleroyreplace fancy quote characters with plain quote characters12018-02-10 03:14:55JosephNuthalapatiCreate new page for Coquelicot
File Sharing (Coquelicot)
About CoquelicotCoquelicot is a "one-click" file sharing web application with a focus on protecting users' privacy. The basic principle is simple: users can upload a file to the server, in return they get a unique URL which can be shared with others in order to download the file. A download password can be defined. After the upload you get a unique link that can be shared to your partners in order to Read more about Coquelicot at the Coquelicot README Available since: version 0.24.0
When to use CoquelicotCoquelicot is best used to quickly share a single file. If you want to share a folder, for a single use, compress the folder and share it over Coquelicot which must be kept synchronized between computers, use Syncthing instead Coquelicot can only provide a reasonable degree of privacy. If anonymity is required, you should consider using the desktop application Onionshare instead. Since Coquelicot fully uploads the file to the server, your FreedomBox will incur both upload and download bandwidth costs. For very large files, consider sharing them using BitTorrent by creating a private torrent file. If anonymity is required, use Onionshare. It is P2P and doesn't require a server.
Coquelicot on FreedomBoxWith Coquelicot installed, you can upload files to your FreedomBox server and privately share them. Post installation, the Coquelicot page offers two settings. Upload Password: Coquelicot on FreedomBox is currently configured to use simple password authentication for ease of use. Remember that it's one global password for this Coquelicot instance and not your user password for FreedomBox. You need not remember this password. You can set a new one from the Plinth interface anytime. Maximum File Size: You can alter the maximum size of the file that can be transferred through Coquelicot using this setting. The size is in Mebibytes. The maximum file size is only limited by the disk size of your FreedomBox.
PrivacySomeone monitoring your network traffic might find out that some file is being transferred through your FreedomBox and also possibly its size, but will not know the file name. Coquelicot encrypts files on the server and also fills the file contents with 0s when deleting them. This eliminates the risk of file contents being revealed in the event of your FreedomBox being confiscated or stolen. The real risk to mitigate here is a third-party also downloading your file along with the intended recipient.
Sharing over instant messengersSome instant messengers which have previews for websites might download your file in order to show a preview in the conversation. If you set the option of one-time download on a file, you might notice that the one download will be used up by the instant messenger. If sharing over such messengers, please use a download password in combination with a one-time download option.
Sharing download links privatelyIt is recommended to share your file download links and download passwords over encrypted channels. You can simply avoid all the above problems with instant messenger previews by using instant messengers that support encrypted conversations like Riot with Matrix Synapse or XMPP (ejabberd server on FreedomBox) with clients that support end-to-end encryption. Send the download link and the download password in two separate messages (helps if your messenger supports perfect forward secrecy like XMPP with OTR). You can also share your links over PGP-encrypted email using Thunderbird. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/DateTime.raw.xml b/doc/DateTime.raw.xml index 66c4bca12..835d02b3c 100644 --- a/doc/DateTime.raw.xml +++ b/doc/DateTime.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/DateTime22017-03-31 20:20:57DrahtseilScreenshot DateTime12016-08-21 09:26:45DrahtseilCreated Date & Time
Date & TimeThis network time server is a program that maintains the system time in synchronization with servers on the Internet. You can select your time zone by picking a big city nearby (they are sorted by Continent/City) or select directly the zone with respect to GMT (Greenwich Mean Time). DateTime.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/DateTime22017-03-31 20:20:57DrahtseilScreenshot DateTime12016-08-21 09:26:45DrahtseilCreated Date & Time
Date & TimeThis network time server is a program that maintains the system time in synchronization with servers on the Internet. You can select your time zone by picking a big city nearby (they are sorted by Continent/City) or select directly the zone with respect to GMT (Greenwich Mean Time). DateTime.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Deluge.raw.xml b/doc/Deluge.raw.xml index f4e78313d..23338a3a6 100644 --- a/doc/Deluge.raw.xml +++ b/doc/Deluge.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Deluge112016-12-31 01:32:15JamesValleroyadd initial setup directions102016-12-30 19:20:00JamesValleroyreword92016-12-30 19:14:16JamesValleroyadd intro paragraph82016-12-30 19:00:50JamesValleroyno space in "BitTorrent"72016-12-26 18:07:46JamesValleroyadd screenshot62016-09-01 19:05:24Drahtseiladapted title to Plinth wording52016-04-10 07:26:48PhilippeBaretAdded bottom navigation link42015-12-15 20:41:02PhilippeBaretCorrection32015-12-15 20:40:16PhilippeBaretCorrection22015-12-15 18:16:28PhilippeBaretAdded Deluge definition12015-12-15 16:59:01PhilippeBaretCreated new Deluge page for manual
BitTorrent (Deluge)
What is Deluge?BitTorrent is a communications protocol using peer-to-peer (P2P) file sharing. It is not anonymous; you should assume that others can see what files you are sharing. There are two BitTorrent web clients available in FreedomBox: Transmission and Deluge. They have similar features, but you may prefer one over the other. Deluge is a lightweight BitTorrent client that is highly configurable. Additional functionality can be added by installing plugins.
ScreenshotDeluge Web UI
Initial SetupAfter installing Deluge, it can be accessed by pointing your browser to https://<your freedombox>/deluge. You will need to enter a password to login: Deluge Login The initial password is "deluge". The first time that you login, Deluge will ask if you wish to change the password. You should change it to something that is harder to guess. Next you will be shown the connection manager. Click on the first entry (Offline - 127.0.0.1:58846). Then click "Start Daemon" to start the Deluge service that will run in the background. Deluge Connection Manager (Offline) Now it should say "Online". Click "Connect" to complete the setup. Deluge Connection Manager (Online) At this point, you are ready to begin using Deluge. You can make further changes in the Preferences, or add a torrent file or URL. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Deluge112016-12-31 01:32:15JamesValleroyadd initial setup directions102016-12-30 19:20:00JamesValleroyreword92016-12-30 19:14:16JamesValleroyadd intro paragraph82016-12-30 19:00:50JamesValleroyno space in "BitTorrent"72016-12-26 18:07:46JamesValleroyadd screenshot62016-09-01 19:05:24Drahtseiladapted title to Plinth wording52016-04-10 07:26:48PhilippeBaretAdded bottom navigation link42015-12-15 20:41:02PhilippeBaretCorrection32015-12-15 20:40:16PhilippeBaretCorrection22015-12-15 18:16:28PhilippeBaretAdded Deluge definition12015-12-15 16:59:01PhilippeBaretCreated new Deluge page for manual
BitTorrent (Deluge)
What is Deluge?BitTorrent is a communications protocol using peer-to-peer (P2P) file sharing. It is not anonymous; you should assume that others can see what files you are sharing. There are two BitTorrent web clients available in FreedomBox: Transmission and Deluge. They have similar features, but you may prefer one over the other. Deluge is a lightweight BitTorrent client that is highly configurable. Additional functionality can be added by installing plugins.
ScreenshotDeluge Web UI
Initial SetupAfter installing Deluge, it can be accessed by pointing your browser to https://<your freedombox>/deluge. You will need to enter a password to login: Deluge Login The initial password is "deluge". The first time that you login, Deluge will ask if you wish to change the password. You should change it to something that is harder to guess. Next you will be shown the connection manager. Click on the first entry (Offline - 127.0.0.1:58846). Then click "Start Daemon" to start the Deluge service that will run in the background. Deluge Connection Manager (Offline) Now it should say "Online". Click "Connect" to complete the setup. Deluge Connection Manager (Online) At this point, you are ready to begin using Deluge. You can make further changes in the Preferences, or add a torrent file or URL. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Diagnostics.raw.xml b/doc/Diagnostics.raw.xml index a74ba4851..b6bf1f183 100644 --- a/doc/Diagnostics.raw.xml +++ b/doc/Diagnostics.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Diagnostics12016-08-21 09:43:52DrahtseilCreated Diagnostics
DiagnosticsThe system diagnostic test will run a number of checks on your system to confirm that applications and services are working as expected. Just click Run Diagnostics. This may take some minutes. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Diagnostics12016-08-21 09:43:52DrahtseilCreated Diagnostics
DiagnosticsThe system diagnostic test will run a number of checks on your system to confirm that applications and services are working as expected. Just click Run Diagnostics. This may take some minutes. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/DynamicDNS.raw.xml b/doc/DynamicDNS.raw.xml index e4a98e5de..15fd534e2 100644 --- a/doc/DynamicDNS.raw.xml +++ b/doc/DynamicDNS.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/DynamicDNS162019-07-31 13:18:03NikolasNybyfix typo152019-02-26 03:20:16JamesValleroyspelling142018-03-11 03:11:04JosephNuthalapatiFix oversized image132017-03-31 20:35:42Drahtseilupdated screenshot122016-09-09 15:40:08SunilMohanAdapaMinor indentation fix with screenshot112016-09-01 19:18:48Drahtseiladapted title to Plinth wording102016-08-15 18:46:51DrahtseilScreenshot GNU-DIP92016-04-14 14:22:41PhilippeBaretAdded accurate How to create a DNS name with GnuDIP82016-04-10 07:15:47PhilippeBaretAdded bottom navigation link72016-01-11 06:28:36PhilippeBaretCorrection62015-12-15 18:48:25PhilippeBaretAdded definition title to Dynamic DNS page52015-09-13 15:02:37SunilMohanAdapaDemote headings one level for inclusion into manual42015-09-13 13:14:41SunilMohanAdapaMove DynamicDNS page to manual32015-08-13 13:03:13SunilMohanAdapaAdd more introduction and re-organize.22015-08-09 21:38:52DanielSteglich12015-08-09 21:23:48DanielSteglich
Dynamic DNS Client
What is Dynamic DNS?In order to reach a server on the Internet, the server needs to have permanent address also known as the static IP address. Many Internet service providers don't provide home users with a static IP address or they charge more providing a static IP address. Instead they provide the home user with an IP address that changes every time the user connects to the Internet. Clients wishing to contact the server will have difficulty reaching the server. Dynamic DNS service providers assist in working around a problem. First they provide you with a domain name, such as 'myhost.example.org'. Then they associate your IP address, whenever it changes, with this domain name. Then anyone intending to reach the server will be to contact the server using the domain name 'myhost.example.org' which always points to the latest IP address of the server. For this to work, every time you connect to the Internet, you will have to tell your Dynamic DNS provider what your current IP address is. Hence you need special software on your server to perform this operation. The Dynamic DNS function in FreedomBox will allow users without a static public IP address to push the current public IP address to a Dynamic DNS Server. This allows you to expose services on FreedomBox, such as ownCloud, to the Internet.
GnuDIP vs. Update URLThere are two main mechanism to notify the Dynamic DNS server of your new IP address; using the GnuDIP protocol and using the Update URL mechanism. If a service provided using update URL is not properly secured using HTTPS, your credentials may be visible to an adversary. Once an adversary gains your credentials, they will be able to replay your request your server and hijack your domain. On the other hand, the GnuDIP protocol will only transport a salted MD5 value of your password, in a way that is secure against replay attacks.
Using the GnuDIP protocolRegister an account with any Dynamic DNS service provider. A free service provided by the FreedomBox community is available at . In FreedomBox UI, enable the Dynamic DNS Service. Select GnuDIP as Service type, enter your Dynamic DNS service provider address (for example, gnudip.datasystems24.net) into GnuDIP Server Address field. Dynamic DNS Settings Fill Domain Name, Username, Password information given by your provider into the corresponding fields.
Using an Update URLThis feature is implemented because the most popular Dynamic DNS providers are using Update URLs mechanism. Register an account with a Dynamic DNS service provider providing their service using Update URL mechanism. Some example providers are listed in the configuration page itself. In FreedomBox UI, enable the Dynamic DNS service. Select other Update URL as Service type, enter the update URL given by your provider into Update URL field. If you browse the update URL with your Internet browser and a warning message about untrusted certificate appears, then enable accept all SSL certificates. WARNING: your credentials may be readable here because man-in-the-middle attacks are possible! Consider choosing a better service provider instead. If you browse the update URL with your Internet browser and the username/password box appears, enable use HTTP basic authentication checkbox and provide the Username and Password. If the update URL contains your current IP address, replace the IP address with the string <Ip>.
Checking If It WorksMake sure that external services you have enabled such as /jwchat, /roundcube and /ikiwiki are available on your domain address. Go to the Status page, make sure that the NAT type is detected correctly. If your FreedomBox is behind a NAT device, this should be detected over there (Text: Behind NAT). If your FreedomBox has a public IP address assigned, the text should be "Direct connection to the Internet". Check that the last update status is not failed.
Recap: How to create a DNS name with GnuDIPto delete or to replace the old text Access to GnuIP login page (answer Yes to all pop ups) Click on "Self Register" Fill the registration form (Username and domain will form the public IP address [username.domain]) Take note of the username/hostname and password that will be used on the FreedomBox app. Save and return to the GnuDIP login page to verify your username, domain and password (enter the datas, click login). Login output should display your new domain name along with your current public IP address (this is a unique address provided by your router for all your local devices). Leave the GnuDIP interface and open the Dynamic DNS Client app page in your FreedomBox. Click on "Set Up" in the top menu. Activate Dynamic DNS Choose GnuDIP service. Add server address (gnudip.datasystems24.net) Add your fresh domain name (username.domain, ie [username].freedombox.rocks) Add your fresh username (the one used in your new IP address) and password Add your GnuDIP password Fill the option with (try this url in your browser, you will figure out immediately) Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/DynamicDNS162019-07-31 13:18:03NikolasNybyfix typo152019-02-26 03:20:16JamesValleroyspelling142018-03-11 03:11:04JosephNuthalapatiFix oversized image132017-03-31 20:35:42Drahtseilupdated screenshot122016-09-09 15:40:08SunilMohanAdapaMinor indentation fix with screenshot112016-09-01 19:18:48Drahtseiladapted title to Plinth wording102016-08-15 18:46:51DrahtseilScreenshot GNU-DIP92016-04-14 14:22:41PhilippeBaretAdded accurate How to create a DNS name with GnuDIP82016-04-10 07:15:47PhilippeBaretAdded bottom navigation link72016-01-11 06:28:36PhilippeBaretCorrection62015-12-15 18:48:25PhilippeBaretAdded definition title to Dynamic DNS page52015-09-13 15:02:37SunilMohanAdapaDemote headings one level for inclusion into manual42015-09-13 13:14:41SunilMohanAdapaMove DynamicDNS page to manual32015-08-13 13:03:13SunilMohanAdapaAdd more introduction and re-organize.22015-08-09 21:38:52DanielSteglich12015-08-09 21:23:48DanielSteglich
Dynamic DNS Client
What is Dynamic DNS?In order to reach a server on the Internet, the server needs to have permanent address also known as the static IP address. Many Internet service providers don't provide home users with a static IP address or they charge more providing a static IP address. Instead they provide the home user with an IP address that changes every time the user connects to the Internet. Clients wishing to contact the server will have difficulty reaching the server. Dynamic DNS service providers assist in working around a problem. First they provide you with a domain name, such as 'myhost.example.org'. Then they associate your IP address, whenever it changes, with this domain name. Then anyone intending to reach the server will be to contact the server using the domain name 'myhost.example.org' which always points to the latest IP address of the server. For this to work, every time you connect to the Internet, you will have to tell your Dynamic DNS provider what your current IP address is. Hence you need special software on your server to perform this operation. The Dynamic DNS function in FreedomBox will allow users without a static public IP address to push the current public IP address to a Dynamic DNS Server. This allows you to expose services on FreedomBox, such as ownCloud, to the Internet.
GnuDIP vs. Update URLThere are two main mechanism to notify the Dynamic DNS server of your new IP address; using the GnuDIP protocol and using the Update URL mechanism. If a service provided using update URL is not properly secured using HTTPS, your credentials may be visible to an adversary. Once an adversary gains your credentials, they will be able to replay your request your server and hijack your domain. On the other hand, the GnuDIP protocol will only transport a salted MD5 value of your password, in a way that is secure against replay attacks.
Using the GnuDIP protocolRegister an account with any Dynamic DNS service provider. A free service provided by the FreedomBox community is available at . In FreedomBox UI, enable the Dynamic DNS Service. Select GnuDIP as Service type, enter your Dynamic DNS service provider address (for example, gnudip.datasystems24.net) into GnuDIP Server Address field. Dynamic DNS Settings Fill Domain Name, Username, Password information given by your provider into the corresponding fields.
Using an Update URLThis feature is implemented because the most popular Dynamic DNS providers are using Update URLs mechanism. Register an account with a Dynamic DNS service provider providing their service using Update URL mechanism. Some example providers are listed in the configuration page itself. In FreedomBox UI, enable the Dynamic DNS service. Select other Update URL as Service type, enter the update URL given by your provider into Update URL field. If you browse the update URL with your Internet browser and a warning message about untrusted certificate appears, then enable accept all SSL certificates. WARNING: your credentials may be readable here because man-in-the-middle attacks are possible! Consider choosing a better service provider instead. If you browse the update URL with your Internet browser and the username/password box appears, enable use HTTP basic authentication checkbox and provide the Username and Password. If the update URL contains your current IP address, replace the IP address with the string <Ip>.
Checking If It WorksMake sure that external services you have enabled such as /jwchat, /roundcube and /ikiwiki are available on your domain address. Go to the Status page, make sure that the NAT type is detected correctly. If your FreedomBox is behind a NAT device, this should be detected over there (Text: Behind NAT). If your FreedomBox has a public IP address assigned, the text should be "Direct connection to the Internet". Check that the last update status is not failed.
Recap: How to create a DNS name with GnuDIPto delete or to replace the old text Access to GnuIP login page (answer Yes to all pop ups) Click on "Self Register" Fill the registration form (Username and domain will form the public IP address [username.domain]) Take note of the username/hostname and password that will be used on the FreedomBox app. Save and return to the GnuDIP login page to verify your username, domain and password (enter the datas, click login). Login output should display your new domain name along with your current public IP address (this is a unique address provided by your router for all your local devices). Leave the GnuDIP interface and open the Dynamic DNS Client app page in your FreedomBox. Click on "Set Up" in the top menu. Activate Dynamic DNS Choose GnuDIP service. Add server address (gnudip.datasystems24.net) Add your fresh domain name (username.domain, ie [username].freedombox.rocks) Add your fresh username (the one used in your new IP address) and password Add your GnuDIP password Fill the option with (try this url in your browser, you will figure out immediately) Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Firewall.raw.xml b/doc/Firewall.raw.xml index b96ffa71c..5eacd3a3b 100644 --- a/doc/Firewall.raw.xml +++ b/doc/Firewall.raw.xml @@ -2,7 +2,7 @@ -
FreedomBox/Manual/Firewall252018-03-11 03:12:12JosephNuthalapatiFix oversized image242017-03-31 20:25:36DrahtseilScreenshot Firewall232017-01-08 02:18:51JamesValleroyadd minetest222017-01-08 02:17:46JamesValleroyfix table spacing212017-01-08 02:16:47JamesValleroyadd repro202017-01-08 02:10:57JamesValleroyadd mumble192017-01-08 02:08:58JamesValleroyadd quassel182017-01-08 01:55:02JamesValleroyreorder to match Plinth Firewall page172017-01-07 21:07:25JamesValleroyupdate managed by plinth162017-01-07 20:54:21JamesValleroyupdate statuses shown in plinth152017-01-07 20:51:16JamesValleroyupdated services enabled by default142017-01-07 20:49:50JamesValleroyfix table spacing132017-01-07 20:47:32JamesValleroyjwchat replaced with jsxc122017-01-07 20:45:27JamesValleroyremove owncloud from ports list112016-01-13 23:19:49JamesValleroyport -> service102015-12-15 00:51:46JamesValleroyfew corrections92015-09-16 11:06:29SunilMohanAdapaUpdate an oudated link82015-09-16 08:18:17SunilMohanAdapaRemove unnecessary automatic links72015-09-13 15:06:40SunilMohanAdapaModify structure for inclusion into manual62015-09-12 11:19:31SunilMohanAdapaMove the firewall page to Manual paths52015-09-12 09:37:40SunilMohanAdapaMove networking related information to Networks page, cleanup42015-02-13 04:53:16SunilMohanAdapaInclude FreedomBox portal in footer32014-05-08 08:02:39SunilMohanAdapaAdd section on internet connection sharing and minor corrections22014-05-08 07:49:29PaulWiselink to the plinth source12014-05-08 07:36:15SunilMohanAdapaNew page documenting firewall operation and default port status
FirewallFirewall is a network security system that controls the incoming and outgoing network traffic. Keeping a firewall enabled and properly configured reduces risk of security threat from the Internet. The operation of the firewall in Plinth web interface of FreedomBox is automatic. When you enable a service it is automatically permitted in the firewall and when you disable a service it is automatically disabled in the firewall. For services which are enabled by default on FreedomBox, firewall ports are also enabled by default during the first run process. Firewall Firewall management in FreedomBox is done using FirewallD.
InterfacesEach interface is needs to be assigned to one (and only one) zone. Whatever rules are in effect for a zone, those rules start to apply for that interface. For example, if HTTP traffic is allowed in a particular zone, then web requests will be accepted on all the addresses configured for all the interfaces assigned to that zone. There are primarily two firewall zones used. The internal zone is meant for services that are provided to all machines on the local network. This may include services such as streaming media and simple file sharing. The external zone is meant for services that are provided publicly on the Internet. This may include services such as blog, website, email web client etc. For details on how network interfaces are configured by default, see the Networks section.
Ports/ServicesThe following table attempts to document the ports, services and their default statuses in FreedomBox. If you find this page outdated, see the Plinth source for lib/freedombox/first-run.d/90_firewall and Firewall status page in Plinth UI. ServicePort ExternalEnabled by defaultStatus shown in PlinthManaged by Plinth Minetest 30000/udp {*} {X} (./) (./) XMPP Client 5222/tcp {*} {X} (./) (./) XMPP Server 5269/tcp {*} {X} (./) (./) XMPP Bosh 5280/tcp {*} {X} (./) (./) NTP 123/udp {o} (./) (./) (./) Plinth 443/tcp {*} (./) (./) {X} Quassel 4242/tcp {*} {X} (./) (./) SIP 5060/tcp {*} {X} (./) (./) SIP 5060/udp {*} {X} (./) (./) SIP-TLS 5061/tcp {*} {X} (./) (./) SIP-TLS 5061/udp {*} {X} (./) (./) RTP 1024-65535/udp {*} {X} (./) (./) SSH 22/tcp {*} (./) (./) {X} mDNS 5353/udp {o} (./) (./) (./) Tor (Socks) 9050/tcp {o} {X} (./) (./) Obfsproxy <random>/tcp {*} {X} (./) (./) OpenVPN 1194/udp {*} {X} (./) (./) Mumble 64378/tcp {*} {X} (./) (./) Mumble 64378/udp {*} {X} (./) (./) Privoxy 8118/tcp {o} {X} (./) (./) JSXC 80/tcp {*} {X} {X} {X} JSXC 443/tcp {*} {X} {X} {X} DNS 53/tcp {o} {X} {X} {X} DNS 53/tdp {o} {X} {X} {X} DHCP 67/udp {o} (./) {X} {X} Bootp 67/tcp {o} {X} {X} {X} Bootp 67/udp {o} {X} {X} {X} Bootp 68/tcp {o} {X} {X} {X} Bootp 68/udp {o} {X} {X} {X} LDAP 389/tcp {o} {X} {X} {X} LDAPS 636/tcp {o} {X} {X} {X}
Manual operationSee FirewallD documentation for more information on the basic concepts and comprehensive documentation.
Enable/disable firewallTo disable firewall or with systemd To re-enable firewall or with systemd
Modifying services/portsYou can manually add or remove a service from a zone. To see list of services enabled: --list-services]]>Example: To see list of ports enabled: --list-ports]]>Example: To remove a service from a zone: --remove-service= +
FreedomBox/Manual/Firewall262019-10-21 14:58:15fioddorMinor correction252018-03-11 03:12:12JosephNuthalapatiFix oversized image242017-03-31 20:25:36DrahtseilScreenshot Firewall232017-01-08 02:18:51JamesValleroyadd minetest222017-01-08 02:17:46JamesValleroyfix table spacing212017-01-08 02:16:47JamesValleroyadd repro202017-01-08 02:10:57JamesValleroyadd mumble192017-01-08 02:08:58JamesValleroyadd quassel182017-01-08 01:55:02JamesValleroyreorder to match Plinth Firewall page172017-01-07 21:07:25JamesValleroyupdate managed by plinth162017-01-07 20:54:21JamesValleroyupdate statuses shown in plinth152017-01-07 20:51:16JamesValleroyupdated services enabled by default142017-01-07 20:49:50JamesValleroyfix table spacing132017-01-07 20:47:32JamesValleroyjwchat replaced with jsxc122017-01-07 20:45:27JamesValleroyremove owncloud from ports list112016-01-13 23:19:49JamesValleroyport -> service102015-12-15 00:51:46JamesValleroyfew corrections92015-09-16 11:06:29SunilMohanAdapaUpdate an oudated link82015-09-16 08:18:17SunilMohanAdapaRemove unnecessary automatic links72015-09-13 15:06:40SunilMohanAdapaModify structure for inclusion into manual62015-09-12 11:19:31SunilMohanAdapaMove the firewall page to Manual paths52015-09-12 09:37:40SunilMohanAdapaMove networking related information to Networks page, cleanup42015-02-13 04:53:16SunilMohanAdapaInclude FreedomBox portal in footer32014-05-08 08:02:39SunilMohanAdapaAdd section on internet connection sharing and minor corrections22014-05-08 07:49:29PaulWiselink to the plinth source12014-05-08 07:36:15SunilMohanAdapaNew page documenting firewall operation and default port status
FirewallFirewall is a network security system that controls the incoming and outgoing network traffic. Keeping a firewall enabled and properly configured reduces risk of security threat from the Internet. The operation of the firewall in Plinth web interface of FreedomBox is automatic. When you enable a service it is automatically permitted in the firewall and when you disable a service it is automatically disabled in the firewall. For services which are enabled by default on FreedomBox, firewall ports are also enabled by default during the first run process. Firewall Firewall management in FreedomBox is done using FirewallD.
InterfacesEach interface is needs to be assigned to one (and only one) zone. Whatever rules are in effect for a zone, those rules start to apply for that interface. For example, if HTTP traffic is allowed in a particular zone, then web requests will be accepted on all the addresses configured for all the interfaces assigned to that zone. There are primarily two firewall zones used. The internal zone is meant for services that are provided to all machines on the local network. This may include services such as streaming media and simple file sharing. The external zone is meant for services that are provided publicly on the Internet. This may include services such as blog, website, email web client etc. For details on how network interfaces are configured by default, see the Networks section.
Ports/ServicesThe following table attempts to document the ports, services and their default statuses in FreedomBox. If you find this page outdated, see the Plinth source for lib/freedombox/first-run.d/90_firewall and Firewall status page in Plinth UI. ServicePort ExternalEnabled by defaultStatus shown in PlinthManaged by Plinth Minetest 30000/udp {*} {X} (./) (./) XMPP Client 5222/tcp {*} {X} (./) (./) XMPP Server 5269/tcp {*} {X} (./) (./) XMPP Bosh 5280/tcp {*} {X} (./) (./) NTP 123/udp {o} (./) (./) (./) Plinth 443/tcp {*} (./) (./) {X} Quassel 4242/tcp {*} {X} (./) (./) SIP 5060/tcp {*} {X} (./) (./) SIP 5060/udp {*} {X} (./) (./) SIP-TLS 5061/tcp {*} {X} (./) (./) SIP-TLS 5061/udp {*} {X} (./) (./) RTP 1024-65535/udp {*} {X} (./) (./) SSH 22/tcp {*} (./) (./) {X} mDNS 5353/udp {o} (./) (./) (./) Tor (Socks) 9050/tcp {o} {X} (./) (./) Obfsproxy <random>/tcp {*} {X} (./) (./) OpenVPN 1194/udp {*} {X} (./) (./) Mumble 64378/tcp {*} {X} (./) (./) Mumble 64378/udp {*} {X} (./) (./) Privoxy 8118/tcp {o} {X} (./) (./) JSXC 80/tcp {*} {X} {X} {X} JSXC 443/tcp {*} {X} {X} {X} DNS 53/tcp {o} {X} {X} {X} DNS 53/udp {o} {X} {X} {X} DHCP 67/udp {o} (./) {X} {X} Bootp 67/tcp {o} {X} {X} {X} Bootp 67/udp {o} {X} {X} {X} Bootp 68/tcp {o} {X} {X} {X} Bootp 68/udp {o} {X} {X} {X} LDAP 389/tcp {o} {X} {X} {X} LDAPS 636/tcp {o} {X} {X} {X}
Manual operationSee FirewallD documentation for more information on the basic concepts and comprehensive documentation.
Enable/disable firewallTo disable firewall or with systemd To re-enable firewall or with systemd
Modifying services/portsYou can manually add or remove a service from a zone. To see list of services enabled: --list-services]]>Example: To see list of ports enabled: --list-ports]]>Example: To remove a service from a zone: --remove-service= firewall-cmd --permanent --zone= --remove-service=]]>Example: To remove a port from a zone: / firewall-cmd --permanent --zone=internal --remove-port=/]]>Example: --remove-interface=]]>Example: To add an interface to a zone: --add-interface= firewall-cmd --permanent --zone= --add-interface=]]>Example: InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +firewall-cmd --permanent --zone=internal --add-interface=eth0]]>
InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/I2P.raw.xml b/doc/I2P.raw.xml index a74c93f9c..dd616c23a 100644 --- a/doc/I2P.raw.xml +++ b/doc/I2P.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/I2P12019-04-30 00:40:36SunilMohanAdapaInitial page for I2P application in FreedomBox
Anonymity Network (I2P)
About I2PThe Invisible Internet Project is an anonymous network layer intended to protect communication from censorship and surveillance. I2P provides anonymity by sending encrypted traffic through a volunteer-run network distributed around the world. Find more information about I2P on their project homepage.
Services OfferedThe following services are offered via I2P in FreedomBox by default. Additional services may be available when enabled from I2P router console that can be launched from FreedomBox web interface. Anonymous Internet browsing: I2P can be used to browse Internet anonymously. For this, configure your browser (preferable a Tor Browser) to connect to I2P proxy. This can be done by setting HTTP proxy and HTTPS proxy to freedombox.local (or your FreedomBox's local IP address) and ports to 4444 and 4445 respectively. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. Reaching eepsites: I2P network can host websites that can remain anonymous. These are called eepsites and end with .i2p in their domain name. For example, is the website for I2P project in the I2P network. eepsites are not reachable using a regular browser via regular Internet connection. To browse eepsites, your browser needs to be configured to use HTTP, HTTPS proxies as described above. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. Anonymous torrent downloads: I2PSnark, an application for anonymously downloading and sharing files over the BitTorrent network is available in I2P and enabled by default in FreedomBox. This application is controlled via a web interface that can be launched from 'Anonymous torrents' section of I2P app in FreedomBox web interface or from the I2P router console interface. Only logged-in users belonging to 'Manage I2P application' group can use this service. IRC network: I2P network contains an IRC network called Irc2P. This network hosts the I2P project's official IRC channel among other channels. This service is enabled by default in FreedomBox. To use it, open your favourite IRC client. Then configure it to connect to host freedombox.local (or your FreedomBox's local IP address) with port number 6668. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. I2P router console: This is the central management interface for I2P. It shows the current status of I2P, bandwidth statistics and allows modifying various configuration settings. You can tune your participation in the I2P network and use/edit a list of your favourite I2P sites (eepsites). Only logged-in users belonging to 'Manage I2P application' group can use this service. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.
\ No newline at end of file +
FreedomBox/Manual/I2P12019-04-30 00:40:36SunilMohanAdapaInitial page for I2P application in FreedomBox
Anonymity Network (I2P)
About I2PThe Invisible Internet Project is an anonymous network layer intended to protect communication from censorship and surveillance. I2P provides anonymity by sending encrypted traffic through a volunteer-run network distributed around the world. Find more information about I2P on their project homepage.
Services OfferedThe following services are offered via I2P in FreedomBox by default. Additional services may be available when enabled from I2P router console that can be launched from FreedomBox web interface. Anonymous Internet browsing: I2P can be used to browse Internet anonymously. For this, configure your browser (preferable a Tor Browser) to connect to I2P proxy. This can be done by setting HTTP proxy and HTTPS proxy to freedombox.local (or your FreedomBox's local IP address) and ports to 4444 and 4445 respectively. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. Reaching eepsites: I2P network can host websites that can remain anonymous. These are called eepsites and end with .i2p in their domain name. For example, is the website for I2P project in the I2P network. eepsites are not reachable using a regular browser via regular Internet connection. To browse eepsites, your browser needs to be configured to use HTTP, HTTPS proxies as described above. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. Anonymous torrent downloads: I2PSnark, an application for anonymously downloading and sharing files over the BitTorrent network is available in I2P and enabled by default in FreedomBox. This application is controlled via a web interface that can be launched from 'Anonymous torrents' section of I2P app in FreedomBox web interface or from the I2P router console interface. Only logged-in users belonging to 'Manage I2P application' group can use this service. IRC network: I2P network contains an IRC network called Irc2P. This network hosts the I2P project's official IRC channel among other channels. This service is enabled by default in FreedomBox. To use it, open your favourite IRC client. Then configure it to connect to host freedombox.local (or your FreedomBox's local IP address) with port number 6668. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. I2P router console: This is the central management interface for I2P. It shows the current status of I2P, bandwidth statistics and allows modifying various configuration settings. You can tune your participation in the I2P network and use/edit a list of your favourite I2P sites (eepsites). Only logged-in users belonging to 'Manage I2P application' group can use this service. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.
\ No newline at end of file diff --git a/doc/Ikiwiki.raw.xml b/doc/Ikiwiki.raw.xml index 230493cee..9d138444d 100644 --- a/doc/Ikiwiki.raw.xml +++ b/doc/Ikiwiki.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Ikiwiki92016-12-26 19:18:01JamesValleroyadd screenshots82016-09-01 19:15:54Drahtseiladapted title to Plinth wording72016-05-26 17:19:45JamesValleroynew section on adding users as wiki admins62016-04-13 01:10:28PhilippeBaretAdded blog to quick start entry in Ikiwiki Manual52016-04-13 01:00:22PhilippeBaretAdded a "Quick Start" entry in Ikiwiki manual42016-04-10 07:21:53PhilippeBaretAdded bottom navigation link32015-12-15 19:54:35PhilippeBaretAdded Ikiwiki definition22015-11-29 19:13:55PhilippeBaretadded ## BEGIN_INCLUDE12015-09-13 17:06:14JamesValleroyadd ikiwiki page for manual
Wiki and Blog (Ikiwiki)
What is Ikiwiki?Ikiwiki converts wiki pages into HTML pages suitable for publishing on a website. It provides particularly blogging, podcasting, calendars and a large selection of plugins.
Quick StartAfter the app installation on your box administration interface: Go to "Create" section and create a wiki or a blog Go back to "Configure" section and click on /ikiwiki link Click on your new wiki or blog name under "Parent directory" Enjoy your new publication page.
Creating a wiki or blogYou can create a wiki or blog to be hosted on your FreedomBox through the Wiki & Blog (Ikiwiki) page in Plinth. The first time you visit this page, it will ask to install packages required by Ikiwiki. After the package install has completed, select the Create tab. You can select the type to be Wiki or Blog. Also type in a name for the wiki or blog, and the username and password for the wiki's/blog's admin account. Then click Update setup and you will see the wiki/blog added to your list. Note that each wiki/blog has its own admin account. ikiwiki: Create
Accessing your wiki or blogFrom the Wiki & Blog (Ikiwiki) page, select the Manage tab and you will see a list of your wikis and blogs. Click a name to navigate to that wiki or blog. ikiwiki: Manage From here, if you click Edit or Preferences, you will be taken to a login page. To log in with the admin account that you created before, select the Other tab, enter the username and password, and click Login.
User login through SSOBesides the wiki/blog admin, other FreedomBox users can be given access to login and edit wikis and blogs. However, they will not have all the same permissions as the wiki admin. They can add or edit pages, but cannot change the wiki's configuration. To add a wiki user, go to the Users and Groups page in Plinth (under System configuration, the gear icon at the top right corner of the page). Create or modify a user, and add them to the wiki group. (Users in the admin group will also have wiki access.) To login as a FreedomBox user, go to the wiki/blog's login page and select the Other tab. Then click the "Login with HTTP auth" button. The browser will show a popup dialog where you can enter the username and password of the FreedomBox user.
Adding FreedomBox users as wiki adminsLogin to the wiki, using the admin account that was specified when the wiki was created. Click "Preferences", then "Setup". Under "main", in the "users who are wiki admins", add the name of a user on the FreedomBox. (Optional) Under "auth plugin: passwordauth", uncheck the "enable passwordauth?" option. (Note: This will disable the old admin account login. Only SSO login using HTTP auth will be possible.) Click "Save Setup". Click "Preferences", then "Logout". Login as the new admin user using "Login with HTTP auth". Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Ikiwiki92016-12-26 19:18:01JamesValleroyadd screenshots82016-09-01 19:15:54Drahtseiladapted title to Plinth wording72016-05-26 17:19:45JamesValleroynew section on adding users as wiki admins62016-04-13 01:10:28PhilippeBaretAdded blog to quick start entry in Ikiwiki Manual52016-04-13 01:00:22PhilippeBaretAdded a "Quick Start" entry in Ikiwiki manual42016-04-10 07:21:53PhilippeBaretAdded bottom navigation link32015-12-15 19:54:35PhilippeBaretAdded Ikiwiki definition22015-11-29 19:13:55PhilippeBaretadded ## BEGIN_INCLUDE12015-09-13 17:06:14JamesValleroyadd ikiwiki page for manual
Wiki and Blog (Ikiwiki)
What is Ikiwiki?Ikiwiki converts wiki pages into HTML pages suitable for publishing on a website. It provides particularly blogging, podcasting, calendars and a large selection of plugins.
Quick StartAfter the app installation on your box administration interface: Go to "Create" section and create a wiki or a blog Go back to "Configure" section and click on /ikiwiki link Click on your new wiki or blog name under "Parent directory" Enjoy your new publication page.
Creating a wiki or blogYou can create a wiki or blog to be hosted on your FreedomBox through the Wiki & Blog (Ikiwiki) page in Plinth. The first time you visit this page, it will ask to install packages required by Ikiwiki. After the package install has completed, select the Create tab. You can select the type to be Wiki or Blog. Also type in a name for the wiki or blog, and the username and password for the wiki's/blog's admin account. Then click Update setup and you will see the wiki/blog added to your list. Note that each wiki/blog has its own admin account. ikiwiki: Create
Accessing your wiki or blogFrom the Wiki & Blog (Ikiwiki) page, select the Manage tab and you will see a list of your wikis and blogs. Click a name to navigate to that wiki or blog. ikiwiki: Manage From here, if you click Edit or Preferences, you will be taken to a login page. To log in with the admin account that you created before, select the Other tab, enter the username and password, and click Login.
User login through SSOBesides the wiki/blog admin, other FreedomBox users can be given access to login and edit wikis and blogs. However, they will not have all the same permissions as the wiki admin. They can add or edit pages, but cannot change the wiki's configuration. To add a wiki user, go to the Users and Groups page in Plinth (under System configuration, the gear icon at the top right corner of the page). Create or modify a user, and add them to the wiki group. (Users in the admin group will also have wiki access.) To login as a FreedomBox user, go to the wiki/blog's login page and select the Other tab. Then click the "Login with HTTP auth" button. The browser will show a popup dialog where you can enter the username and password of the FreedomBox user.
Adding FreedomBox users as wiki adminsLogin to the wiki, using the admin account that was specified when the wiki was created. Click "Preferences", then "Setup". Under "main", in the "users who are wiki admins", add the name of a user on the FreedomBox. (Optional) Under "auth plugin: passwordauth", uncheck the "enable passwordauth?" option. (Note: This will disable the old admin account login. Only SSO login using HTTP auth will be possible.) Click "Save Setup". Click "Preferences", then "Logout". Login as the new admin user using "Login with HTTP auth". Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Infinoted.raw.xml b/doc/Infinoted.raw.xml index 7a92ab465..a602ff38c 100644 --- a/doc/Infinoted.raw.xml +++ b/doc/Infinoted.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Infinoted12017-01-21 17:23:17JamesValleroycreate page for infinoted
Gobby Server (infinoted)infinoted is a server for Gobby, a collaborative text editor. To use it, download Gobby, desktop client and install it. Then start Gobby and select "Connect to Server" and enter your FreedomBox's domain name.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for infinoted: TCP 6523 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Infinoted12017-01-21 17:23:17JamesValleroycreate page for infinoted
Gobby Server (infinoted)infinoted is a server for Gobby, a collaborative text editor. To use it, download Gobby, desktop client and install it. Then start Gobby and select "Connect to Server" and enter your FreedomBox's domain name.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for infinoted: TCP 6523 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/LetsEncrypt.raw.xml b/doc/LetsEncrypt.raw.xml index 61cca6892..fff82c24a 100644 --- a/doc/LetsEncrypt.raw.xml +++ b/doc/LetsEncrypt.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/LetsEncrypt92019-02-26 03:21:08JamesValleroyspelling82018-03-11 03:16:47JosephNuthalapati72017-01-19 00:18:41JamesValleroyreplace quote character62017-01-07 19:48:45JamesValleroyadd port forwarding info52017-01-07 18:21:14JamesValleroyclarify step42016-08-21 19:00:07Drahtseil32016-08-21 18:59:20DrahtseilScreencast of the setting up22016-08-21 17:57:07Drahtseilscreenshots12016-08-21 17:43:20DrahtseilCreated Let's Encypt
Certificates (Let's Encrypt)A digital certificate allows users of a web service to verify the identity of the service and to securely communicate with it. FreedomBox can automatically obtain and setup digital certificates for each available domain. It does so by proving itself to be the owner of a domain to Let's Encrypt, a certificate authority (CA). Let's Encrypt is a free, automated, and open certificate authority, run for the public's benefit by the Internet Security Research Group (ISRG). Please read and agree with the Let's Encrypt Subscriber Agreement before using this service.
Why using CertificatesThe communication with your FreedomBox can be secured so that it is not possible to intercept the content of the web pages viewed and about the content exchanged.
How to setupIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports: TCP 80 (http) TCP 443 (https) Make the domain name known: In Configure insert your domain name, e.g. MyWebName.com Let's Encrypt Verify the domain name was accepted Check that it is enabled in Name Services Let's Encrypt Name Services Go to the Certificates (Let's Encrypt) page, and complete the module install if needed. Then click the "Obtain" button for your domain name. After some minutes a valid certificate is available Let's Encrypt Verify in your browser by checking https://MyWebName.com Let's Encrypt Certificate Screencast: Let's Encrypt
UsingThe certificate is valid for 3 months. It is renewed automatically and can also be re-obtained or revoked manually. With running diagnostics the certificate can also be verified. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/LetsEncrypt92019-02-26 03:21:08JamesValleroyspelling82018-03-11 03:16:47JosephNuthalapati72017-01-19 00:18:41JamesValleroyreplace quote character62017-01-07 19:48:45JamesValleroyadd port forwarding info52017-01-07 18:21:14JamesValleroyclarify step42016-08-21 19:00:07Drahtseil32016-08-21 18:59:20DrahtseilScreencast of the setting up22016-08-21 17:57:07Drahtseilscreenshots12016-08-21 17:43:20DrahtseilCreated Let's Encypt
Certificates (Let's Encrypt)A digital certificate allows users of a web service to verify the identity of the service and to securely communicate with it. FreedomBox can automatically obtain and setup digital certificates for each available domain. It does so by proving itself to be the owner of a domain to Let's Encrypt, a certificate authority (CA). Let's Encrypt is a free, automated, and open certificate authority, run for the public's benefit by the Internet Security Research Group (ISRG). Please read and agree with the Let's Encrypt Subscriber Agreement before using this service.
Why using CertificatesThe communication with your FreedomBox can be secured so that it is not possible to intercept the content of the web pages viewed and about the content exchanged.
How to setupIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports: TCP 80 (http) TCP 443 (https) Make the domain name known: In Configure insert your domain name, e.g. MyWebName.com Let's Encrypt Verify the domain name was accepted Check that it is enabled in Name Services Let's Encrypt Name Services Go to the Certificates (Let's Encrypt) page, and complete the module install if needed. Then click the "Obtain" button for your domain name. After some minutes a valid certificate is available Let's Encrypt Verify in your browser by checking https://MyWebName.com Let's Encrypt Certificate Screencast: Let's Encrypt
UsingThe certificate is valid for 3 months. It is renewed automatically and can also be re-obtained or revoked manually. With running diagnostics the certificate can also be verified. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/MLDonkey.raw.xml b/doc/MLDonkey.raw.xml index 74e538f5a..f0919d283 100644 --- a/doc/MLDonkey.raw.xml +++ b/doc/MLDonkey.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/MLDonkey122019-02-08 06:29:35SunilMohanAdapaUpdate more information about clients112019-02-06 13:52:06jcromero102019-02-02 21:16:52jcromero92019-01-23 21:18:05jcromero82019-01-23 18:34:25jcromero72019-01-23 18:30:54jcromero62019-01-23 18:19:19SunilMohanAdapaEscape from linking52019-01-23 18:18:47SunilMohanAdapaWrite MLdonkey as MLDonkey42019-01-23 18:17:54SunilMohanAdapaWrite MLdonkey as MLDonkey and other minor fixes32019-01-23 17:37:32jcromero22019-01-23 13:37:48jcromero12019-01-23 13:31:23jcromero
File Sharing (MLDonkey)
What is MLDonkey?MLDonkey is an open-source, multi-protocol, peer-to-peer file sharing application that runs as a back-end server application on many platforms. It can be controlled through a user interface provided by one of many separate front-ends, including a Web interface, telnet interface and over a dozen native client programs. Originally a Linux client for the eDonkey protocol, it now runs on many flavors of Unix-like, OS X, Microsoft Windows and MorphOS and supports numerous peer-to-peer protocols including ED2K (and Kademlia and Overnet), BitTorrent, DC++ and more. Read more about MLDonkey at the MLDonkey Project Wiki Available since: version 0.48.0
ScreenshotMLDonkey Web Interface
Using MLDonkey Web InterfaceAfter installing MLDonkey, its web interface can be accessed from FreedomBox at https://<your freedombox>/mldonkey. Users belonging to the ed2k and admin groups can access this web interface.
Using Desktop/Mobile InterfaceMany desktop and mobile applications can be used to control MLDonkey. MLDonkey server will always be running on FreedomBox. It will download files (or upload them) and store them on FreedomBox even when your local machine is not running or connected to MLDonkey on FreedomBox. Only users of admin group can access MLDonkey on FreedomBox using desktop or mobile clients. This is due to restrictions on which group of users have SSH access into FreedomBox. Create an admin user or use an existing admin user. On your desktop machine, open a terminal and run the following command. It is recommended that you configure and use SSH keys instead of passwords for the this step. Start the GUI application and then connect it to MLDonkey as if MLDonkey is running on the local desktop machine. After you are done, terminate the SSH command by pressing Control-C. See MLDonkey documentation for SSH Tunnel for more information. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/MLDonkey122019-02-08 06:29:35SunilMohanAdapaUpdate more information about clients112019-02-06 13:52:06jcromero102019-02-02 21:16:52jcromero92019-01-23 21:18:05jcromero82019-01-23 18:34:25jcromero72019-01-23 18:30:54jcromero62019-01-23 18:19:19SunilMohanAdapaEscape from linking52019-01-23 18:18:47SunilMohanAdapaWrite MLdonkey as MLDonkey42019-01-23 18:17:54SunilMohanAdapaWrite MLdonkey as MLDonkey and other minor fixes32019-01-23 17:37:32jcromero22019-01-23 13:37:48jcromero12019-01-23 13:31:23jcromero
File Sharing (MLDonkey)
What is MLDonkey?MLDonkey is an open-source, multi-protocol, peer-to-peer file sharing application that runs as a back-end server application on many platforms. It can be controlled through a user interface provided by one of many separate front-ends, including a Web interface, telnet interface and over a dozen native client programs. Originally a Linux client for the eDonkey protocol, it now runs on many flavors of Unix-like, OS X, Microsoft Windows and MorphOS and supports numerous peer-to-peer protocols including ED2K (and Kademlia and Overnet), BitTorrent, DC++ and more. Read more about MLDonkey at the MLDonkey Project Wiki Available since: version 0.48.0
ScreenshotMLDonkey Web Interface
Using MLDonkey Web InterfaceAfter installing MLDonkey, its web interface can be accessed from FreedomBox at https://<your freedombox>/mldonkey. Users belonging to the ed2k and admin groups can access this web interface.
Using Desktop/Mobile InterfaceMany desktop and mobile applications can be used to control MLDonkey. MLDonkey server will always be running on FreedomBox. It will download files (or upload them) and store them on FreedomBox even when your local machine is not running or connected to MLDonkey on FreedomBox. Only users of admin group can access MLDonkey on FreedomBox using desktop or mobile clients. This is due to restrictions on which group of users have SSH access into FreedomBox. Create an admin user or use an existing admin user. On your desktop machine, open a terminal and run the following command. It is recommended that you configure and use SSH keys instead of passwords for the this step. Start the GUI application and then connect it to MLDonkey as if MLDonkey is running on the local desktop machine. After you are done, terminate the SSH command by pressing Control-C. See MLDonkey documentation for SSH Tunnel for more information. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/MatrixSynapse.raw.xml b/doc/MatrixSynapse.raw.xml index 38a9e7bce..43d428b18 100644 --- a/doc/MatrixSynapse.raw.xml +++ b/doc/MatrixSynapse.raw.xml @@ -7,4 +7,4 @@ chmod 600 /etc/matrix-synapse/conf.d/registration_shared_secret.yaml chown matrix-synapse:nogroup /etc/matrix-synapse/conf.d/registration_shared_secret.yaml systemctl restart matrix-synapse register_new_matrix_user -c /etc/matrix-synapse/conf.d/registration_shared_secret.yaml]]>If you wish to see the list of users registered in Matrix Synapse, the following as root user: Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file +echo 'select name from users' | sqlite3 /var/lib/matrix-synapse/homeserver.db ]]>Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file diff --git a/doc/MediaWiki.raw.xml b/doc/MediaWiki.raw.xml index a56b634c1..5f7c07379 100644 --- a/doc/MediaWiki.raw.xml +++ b/doc/MediaWiki.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/MediaWiki92018-08-28 09:42:01JosephNuthalapatiRemove internal links to MediaWiki82018-08-27 23:58:16JamesValleroytry to close last section72018-08-27 23:43:48JamesValleroyadd consistent newlines after headings62018-08-27 23:41:37JamesValleroyspelling52018-08-21 07:33:32JosephNuthalapati42018-08-21 07:32:43JosephNuthalapatiUpdate wiki to include new features32018-01-31 06:02:30SunilMohanAdapaAdd footer and category22018-01-17 10:26:45JosephNuthalapatiFix headings12018-01-13 04:01:22JosephNuthalapatiNew wiki entry for MediaWiki on FreedomBox
Wiki (MediaWiki)
About MediaWikiMediaWiki is the software that powers the Wikimedia suite of wikis. Read more about MediaWiki on Wikipedia Available since: version 0.20.0
MediaWiki on FreedomBoxMediaWiki on FreedomBox is configured to be publicly readable and privately editable. Only logged in users can make edits to the wiki. This configuration prevents spam and vandalism on the wiki.
User managementUsers can be created by the MediaWiki administrator (user "admin") only. The "admin" user can also be used to reset passwords of MediaWiki users. The administrator password, if forgotten can be reset anytime from the MediaWiki page in the Plinth UI.
Use casesMediaWiki is quite versatile and can be put to many creative uses. It also comes with a lot of plugins and themes and is highly customizable.
Personal Knowledge RepositoryMediaWiki on FreedomBox can be your own personal knowledge repository. Since MediaWiki has good multimedia support, you can write notes, store images, create checklists, store references and bookmarks etc. in an organized manner. You can store the knowledge of a lifetime in your MediaWiki instance.
Community WikiA community of users can use MediaWiki as their common repository of knowledge and reference material. It can used as a college notice board, documentation server for a small company, common notebook for study groups or as a fan wiki like wikia.
Personal Wiki-based WebsiteSeveral websites on the internet are simply MediaWiki instances. MediaWiki on FreedomBox is read-only to visitors. Hence, it can be adapted to serve as your personal website and/or blog. MediaWiki content is easy to export and can be later moved to use another blog engine.
Editing Wiki Content
Visual EditorMediaWiki's new Visual Editor gives a WYSIWYG user interface to creating wiki pages. Unfortunately, it is not yet available in the current version of MediaWiki on Debian. A workaround is to use write your content using the Visual Editor in Wikipedia's Sandbox, switching to source editing mode and copying the content into your wiki.
Other FormatsYou don't have to necessarily learn the MediaWiki formatting language. You can write in your favorite format (Markdown, Org-mode, LaTeX etc.) and convert it to the MediaWiki format using Pandoc.
Image UploadsImage uploads have been enabled since FreedomBox version 0.36.0. You can also directly use images from Wikimedia Commons using a feature called Instant Commons. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/MediaWiki92018-08-28 09:42:01JosephNuthalapatiRemove internal links to MediaWiki82018-08-27 23:58:16JamesValleroytry to close last section72018-08-27 23:43:48JamesValleroyadd consistent newlines after headings62018-08-27 23:41:37JamesValleroyspelling52018-08-21 07:33:32JosephNuthalapati42018-08-21 07:32:43JosephNuthalapatiUpdate wiki to include new features32018-01-31 06:02:30SunilMohanAdapaAdd footer and category22018-01-17 10:26:45JosephNuthalapatiFix headings12018-01-13 04:01:22JosephNuthalapatiNew wiki entry for MediaWiki on FreedomBox
Wiki (MediaWiki)
About MediaWikiMediaWiki is the software that powers the Wikimedia suite of wikis. Read more about MediaWiki on Wikipedia Available since: version 0.20.0
MediaWiki on FreedomBoxMediaWiki on FreedomBox is configured to be publicly readable and privately editable. Only logged in users can make edits to the wiki. This configuration prevents spam and vandalism on the wiki.
User managementUsers can be created by the MediaWiki administrator (user "admin") only. The "admin" user can also be used to reset passwords of MediaWiki users. The administrator password, if forgotten can be reset anytime from the MediaWiki page in the Plinth UI.
Use casesMediaWiki is quite versatile and can be put to many creative uses. It also comes with a lot of plugins and themes and is highly customizable.
Personal Knowledge RepositoryMediaWiki on FreedomBox can be your own personal knowledge repository. Since MediaWiki has good multimedia support, you can write notes, store images, create checklists, store references and bookmarks etc. in an organized manner. You can store the knowledge of a lifetime in your MediaWiki instance.
Community WikiA community of users can use MediaWiki as their common repository of knowledge and reference material. It can used as a college notice board, documentation server for a small company, common notebook for study groups or as a fan wiki like wikia.
Personal Wiki-based WebsiteSeveral websites on the internet are simply MediaWiki instances. MediaWiki on FreedomBox is read-only to visitors. Hence, it can be adapted to serve as your personal website and/or blog. MediaWiki content is easy to export and can be later moved to use another blog engine.
Editing Wiki Content
Visual EditorMediaWiki's new Visual Editor gives a WYSIWYG user interface to creating wiki pages. Unfortunately, it is not yet available in the current version of MediaWiki on Debian. A workaround is to use write your content using the Visual Editor in Wikipedia's Sandbox, switching to source editing mode and copying the content into your wiki.
Other FormatsYou don't have to necessarily learn the MediaWiki formatting language. You can write in your favorite format (Markdown, Org-mode, LaTeX etc.) and convert it to the MediaWiki format using Pandoc.
Image UploadsImage uploads have been enabled since FreedomBox version 0.36.0. You can also directly use images from Wikimedia Commons using a feature called Instant Commons. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Minetest.raw.xml b/doc/Minetest.raw.xml index 38ad42edf..d352edda8 100644 --- a/doc/Minetest.raw.xml +++ b/doc/Minetest.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Minetest32017-01-02 13:29:19JamesValleroyfix list22017-01-02 13:26:03JamesValleroyadd port forwarding info12016-09-04 10:20:44Drahtseilstub created
Block Sandbox (Minetest)Minetest is a multiplayer infinite-world block sandbox. This module enables the Minetest server to be run on this FreedomBox, on the default port (30000). To connect to the server, a Minetest client is needed.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for Minetest: UDP 30000 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Minetest32017-01-02 13:29:19JamesValleroyfix list22017-01-02 13:26:03JamesValleroyadd port forwarding info12016-09-04 10:20:44Drahtseilstub created
Block Sandbox (Minetest)Minetest is a multiplayer infinite-world block sandbox. This module enables the Minetest server to be run on this FreedomBox, on the default port (30000). To connect to the server, a Minetest client is needed.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for Minetest: UDP 30000 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Monkeysphere.raw.xml b/doc/Monkeysphere.raw.xml index b195d0dd3..fe526b92e 100644 --- a/doc/Monkeysphere.raw.xml +++ b/doc/Monkeysphere.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Monkeysphere12016-09-04 10:12:10Drahtseilstub created
MonkeysphereWith 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 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 Monkeysphere website. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Monkeysphere12016-09-04 10:12:10Drahtseilstub created
MonkeysphereWith 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 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 Monkeysphere website. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Mumble.raw.xml b/doc/Mumble.raw.xml index 982d65459..96aa7ae1d 100644 --- a/doc/Mumble.raw.xml +++ b/doc/Mumble.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Mumble62017-01-02 13:28:53JamesValleroyadd port forwarding info52016-12-31 04:04:56JamesValleroyadd basic usage info42016-09-01 19:14:55Drahtseiladapted title to Plinth wording32016-04-10 07:20:42PhilippeBaretAdded bottom navigation link22015-12-15 20:51:58PhilippeBaret12015-12-15 20:06:18PhilippeBaretAdded Mumble page and definition.
Voice Chat (Mumble)
What is Mumble?Mumble is a voice chat software. Primarily intended for use while gaming, it is suitable for simple talking with high audio quality, noise suppression, encrypted communication, public/private-key authentication by default, and "wizards" to configure your microphone for instance. A user can be marked as a "priority speaker" within a channel.
Using MumbleFreedomBox includes the Mumble server. Clients are available for desktop and mobile platforms. Users can download one of these clients and connect to the server.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for Mumble: TCP 64738 UDP 64738 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Mumble62017-01-02 13:28:53JamesValleroyadd port forwarding info52016-12-31 04:04:56JamesValleroyadd basic usage info42016-09-01 19:14:55Drahtseiladapted title to Plinth wording32016-04-10 07:20:42PhilippeBaretAdded bottom navigation link22015-12-15 20:51:58PhilippeBaret12015-12-15 20:06:18PhilippeBaretAdded Mumble page and definition.
Voice Chat (Mumble)
What is Mumble?Mumble is a voice chat software. Primarily intended for use while gaming, it is suitable for simple talking with high audio quality, noise suppression, encrypted communication, public/private-key authentication by default, and "wizards" to configure your microphone for instance. A user can be marked as a "priority speaker" within a channel.
Using MumbleFreedomBox includes the Mumble server. Clients are available for desktop and mobile platforms. Users can download one of these clients and connect to the server.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for Mumble: TCP 64738 UDP 64738 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/NameServices.raw.xml b/doc/NameServices.raw.xml index e103e650a..11e5340b3 100644 --- a/doc/NameServices.raw.xml +++ b/doc/NameServices.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/NameServices32016-12-31 04:18:51JamesValleroyreword22016-08-21 17:16:56Drahtseil12016-08-21 17:16:41DrahtseilCreated NameServices
Name ServicesName Services provides an overview of ways the box can be reached from the public Internet: domain name, Tor hidden service, and Pagekite. For each type of name, it is shown whether the HTTP, HTTPS, and SSH services are enabled or disabled for incoming connections through the given name. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/NameServices32016-12-31 04:18:51JamesValleroyreword22016-08-21 17:16:56Drahtseil12016-08-21 17:16:41DrahtseilCreated NameServices
Name ServicesName Services provides an overview of ways the box can be reached from the public Internet: domain name, Tor hidden service, and Pagekite. For each type of name, it is shown whether the HTTP, HTTPS, and SSH services are enabled or disabled for incoming connections through the given name. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Networks.raw.xml b/doc/Networks.raw.xml index 1f8c898e6..de7303625 100644 --- a/doc/Networks.raw.xml +++ b/doc/Networks.raw.xml @@ -6,4 +6,4 @@ wifi.scan-rand-mac-address=no]]>Then reboot the machine.
Adding a new network deviceWhen a new network device is added, network manager will automatically configure it. In most cases this will not work to your liking. Delete the automatic configuration created on the interface and create a new network connection. Select your newly added network interface in the add connection page. Then set firewall zone to internal and external appropriately. You can configure the interface to connect to a network or provide network configuration to whatever machine connects to it. Similarly, if it is a Wi-Fi interface, you can configure it to become a Wi-FI access point or to connect to an existing access points in the network.
Configuring a mesh networkFreedomBox has rudimentary support for participating in BATMAN-Adv based mesh networks. It is possible to either join an existing network in your area or create a new mesh network and share your Internet connection with the rest of the nodes that join the network. Currently, two connections have to be created and activated manually to join or create a mesh network.
Joining a mesh networkTo join an existing mesh network in your area, first consult the organizers and get information about the mesh network. Create a new connection, then select the connection type as Wi-Fi. In the following dialog, provide the following values: Field NameExample ValueExplanation Connection Name Mesh Join - BATMAN The name must end with 'BATMAN' (uppercase) Physical Interface wlan0 The Wi-Fi device you wish to use for joining the mesh network Firewall Zone External Since you don't wish that participants in mesh network to use internal services of FreedomBox SSID ch1.freifunk.net As provided to you by the operators of the mesh network. You should see this as a network in Nearby Wi-Fi Networks Mode Ad-hoc Because this is a peer-to-peer network Frequency Band 2.4Ghz As provided to you by the operators of the mesh network Channel 1 As provided to you by the operators of the mesh network BSSID 12:CA:FF:EE:BA:BE As provided to you by the operators of the mesh network Authentication Open Leave this as open, unless you know your mesh network needs it be otherwise Passphrase Leave empty unless you know your mesh network requires one IPv4 Addressing Method Disabled We don't want to request IP configuration information yet Save the connection. Join the mesh network by activating this newly created connection. Create a second new connection, then select the connection type as Generic. In the following dialog, provide this following values: Field NameExample ValueExplanation Connection Name Mesh Connect Any name to identify this connection Physical Interface bat0 This interface will only show up after you successfully activate the connection in first step Firewall Zone External Since you don't wish that participants in mesh network to use internal services of FreedomBox IPv4 Addressing Method Auto Mesh networks usually have a DHCP server somewhere that provide your machine with IP configuration. If not, consult the operator and configure IP address setting accordingly with Manual method Save the connection. Configure your machine for participation in the network by activating this connection. Currently, this connection has to be manually activated every time you need to join the network. In future, FreedomBox will do this automatically. You will now be able reach other nodes in the network. You will also be able to connect to the Internet via the mesh network if there is an Internet connection point somewhere in mesh as setup by the operators.
Creating a mesh networkTo create your own mesh network and share your Internet connection with the rest of the nodes in the network: Follow the instructions as provided above in step 1 of Joining a mesh network but choose and fix upon your own valid values for SSID (a name for you mesh network), Frequency Band (usually 2.4Ghz), Channel (1 to 11 in 2.4Ghz band) and BSSID (a hex value like 12:CA:DE:AD:BE:EF). Create this connection and activate it. Follow the instructions as provided above in step 2 of Joining a mesh network but select IPv4 Addressing Method as Shared. This will provide automatic IP configuration to other nodes in the network as well as share the Internet connection on your machine (achieved using a second Wi-Fi interface, using Ethernet, etc.) with other nodes in the mesh network. Spread the word about your mesh network to your neighbors and let them know the parameters you have provided when creating the network. When other nodes connect to this mesh network, they have to follow steps in Joining a mesh network but use the values for SSID, Frequency Band and Channel that you have chosen when you created the mesh network.
Manual Network OperationFreedomBox automatically configures networks by default and provides a simplified interface to customize the configuration to specific needs. In most cases, manual operation is not necessary. The following steps describe how to manually operate network configuration in the event that a user finds FreedomBox interface to insufficient for task at hand or to diagnose a problem that FreedomBox does not identify. On the command line interface: For text based user interface for configuring network connections: To see the list of available network devices: To see the list of configured connections: To see the current status of a connection: ']]>To see the current firewall zone assigned to a network interface: ' | grep zone]]>or To create a new network connection: " ifname "" type ethernet nmcli con modify "" connection.autoconnect TRUE -nmcli con modify "" connection.zone internal]]>To change the firewall zone for a connection: " connection.zone ""]]>For more information on how to use nmcli command, see its man page. Also for a full list of configuration settings and type of connections accepted by Network Manager see: To see the current status of the firewall and manually operate it, see the Firewall section. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +nmcli con modify "" connection.zone internal]]>To change the firewall zone for a connection: " connection.zone ""]]>For more information on how to use nmcli command, see its man page. Also for a full list of configuration settings and type of connections accepted by Network Manager see: To see the current status of the firewall and manually operate it, see the Firewall section. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file diff --git a/doc/OpenVPN.raw.xml b/doc/OpenVPN.raw.xml index cc70af83d..03eb27231 100644 --- a/doc/OpenVPN.raw.xml +++ b/doc/OpenVPN.raw.xml @@ -4,4 +4,4 @@ 'http://www.docbook.org/xml/4.4/docbookx.dtd'>
FreedomBox/Manual/OpenVPN152019-09-16 09:38:50fioddorMinor layout correction142019-05-10 23:08:07JamesValleroyuse standard text for port forwarding132019-03-01 01:28:15SunilMohanAdapaAdd instructions for connecting using mobile client122019-03-01 00:48:12SunilMohanAdapaAdd information about browsing Internet112019-03-01 00:37:30SunilMohanAdapaUpdate information about dealing with profile files102019-02-28 09:38:45JosephNuthalapatiUpdate image and set width92018-11-15 11:47:34JosephNuthalapatiAdd documentation on how to connect to VPN from Debian and check the connection. Update external link82016-12-31 04:01:13JamesValleroyclarify install vs setup72016-09-09 15:37:55SunilMohanAdapaMinor indentation fix with screenshot62016-09-01 19:14:03Drahtseiladapted title to Plinth wording52016-08-14 19:39:09JanCostermansadded screenshot and setting up sections42016-04-10 07:16:50PhilippeBaretAdded bottom navigation link32015-12-16 00:32:58PhilippeBaretText finishing22015-12-16 00:28:34PhilippeBaretAdded definition for OpenVPN12015-12-15 23:58:42PhilippeBaretAdded first content [OpenVPN page to Apps manual]
Virtual Private Network (OpenVPN)
What is OpenVPN?OpenVPN provides to your FreedomBox a virtual private network service. You can use this software for remote access, site-to-site VPNs and Wi-Fi security. OpenVPN includes support for dynamic IP addresses and NAT.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for OpenVPN: UDP 1194
Setting upIn Plinth apps menu, select Virtual Private Network (OpenVPN) and click Install. After the module is installed, there is an additional setup step that may take a long time to complete. Click "Start setup" to begin. OpenVPN service page Wait for the setup to finish. This could take a while. Once the setup of the OpenVPN server is complete, you can download your profile. This will download a file called <USER>.ovpn, where <USER> is the name of a FreedomBox user. Each FreedomBox user will be able to download a different profile. Users who are not administrators can download the profile from home page after login. The ovpn file contains all the information a vpn client needs to connect to the server. The downloaded profile contains the domain name of the FreedomBox that the client should connect to. This is picked up from the domain configured in 'Config' section of 'System' page. In case your domain is not configured properly, you may need to change this value after downloading the profile. If your OpenVPN client allows it, you can do this after importing the OpenVPN profile. Otherwise, you can edit the .ovpn profile file in a text editor and change the 'remote' line to contain the WAN IP address or hostname of your FreedomBox as follows.
Browsing Internet after connecting to VPNAfter connecting to the VPN, the client device will be able to browse the Internet without any further configuration. However, a pre-condition for this to work is that you need to have at least one Internet connected network interface which is part of the 'External' firewall zone. Use the networks configuration page to edit the firewall zone for the device's network interfaces.
Usage
On Android/LineageOSVisit FreedomBox home page. Login with your user account. From home page, download the OpenVPN profile. The file will be named username.ovpn. OpenVPN Download Profile Download an OpenVPN client such as OpenVPN for Android. F-Droid repository is recommended. In the app, select import profile. OpenVPN App In the select profile dialog, choose the username.opvn file you have just downloaded. Provide a name for the connection and save the profile. OpenVPN import profile Newly created profile will show up. If necessary, edit the profile and set the domain name of your FreedomBox as the server address. OpenVPN profile created OpenVPN edit domain name Connect by tapping on the profile. OpenVPN connect OpenVPN connected When done, disconnect by tapping on the profile. OpenVPN disconnect
On DebianInstall an OpenVPN client for your system Open the ovpn file with the OpenVPN client. .ovpn]]>
Checking if you are connected
On DebianTry to ping the FreedomBox or other devices on the local network. Running the command ip addr should show a tun0 connection. The command traceroute freedombox.org should show you the ip address of the VPN server as the first hop.
External Links Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +proto udp]]>
Browsing Internet after connecting to VPNAfter connecting to the VPN, the client device will be able to browse the Internet without any further configuration. However, a pre-condition for this to work is that you need to have at least one Internet connected network interface which is part of the 'External' firewall zone. Use the networks configuration page to edit the firewall zone for the device's network interfaces.
Usage
On Android/LineageOSVisit FreedomBox home page. Login with your user account. From home page, download the OpenVPN profile. The file will be named username.ovpn. OpenVPN Download Profile Download an OpenVPN client such as OpenVPN for Android. F-Droid repository is recommended. In the app, select import profile. OpenVPN App In the select profile dialog, choose the username.opvn file you have just downloaded. Provide a name for the connection and save the profile. OpenVPN import profile Newly created profile will show up. If necessary, edit the profile and set the domain name of your FreedomBox as the server address. OpenVPN profile created OpenVPN edit domain name Connect by tapping on the profile. OpenVPN connect OpenVPN connected When done, disconnect by tapping on the profile. OpenVPN disconnect
On DebianInstall an OpenVPN client for your system Open the ovpn file with the OpenVPN client. .ovpn]]>
Checking if you are connected
On DebianTry to ping the FreedomBox or other devices on the local network. Running the command ip addr should show a tun0 connection. The command traceroute freedombox.org should show you the ip address of the VPN server as the first hop.
External Links Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/PageKite.raw.xml b/doc/PageKite.raw.xml index 13a87d9ae..1bd99063f 100644 --- a/doc/PageKite.raw.xml +++ b/doc/PageKite.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/PageKite122017-01-07 20:37:22JamesValleroyadd info on getting certificate112017-01-07 20:21:47JamesValleroyadd instructions102017-01-07 20:14:44JamesValleroyclarify how pagekite works92016-09-01 19:19:45Drahtseiladapted title to Plinth wording82016-04-10 07:13:20PhilippeBaretAdded navigation link72015-12-15 20:50:09PhilippeBaretCorrection62015-12-15 19:28:57PhilippeBaretAdded more definition52015-12-15 19:19:27PhilippeBaretAdded pagekite extended definition42015-09-13 14:58:24SunilMohanAdapaAdd headings for inclusion into manual32015-09-13 13:18:15SunilMohanAdapaMove PageKite page to manual22015-02-13 05:01:10SunilMohanAdapaInclude FreedomBox portal in footer12012-09-14 07:37:02planetlarg
Public Visibility (PageKite)
What is PageKite?PageKite makes local websites and services publicly accessible immediately without creating yourself a public IP address. It does this by tunneling protocols such as HTTPS or SSH through firewalls and NAT. Using PageKite requires an account on a PageKite relay service. One such service is . A PageKite relay service will allow you to create kites. Kites are similar to domain names, but with different advantages and drawbacks. A kite can have a number of configured services. PageKite is known to work with HTTP, HTTPS, and SSH, and may work with some other services, but not all.
Using PageKiteCreate an account on a PageKite relay service. Add a kite to your account. Note your kite name and kite secret. In Plinth, go to the "Configure PageKite" tab on the Public Visibility (PageKite) page. Check the "Enable PageKite" box, then enter your kite name and kite secret. Click "Save settings". On the "Standard Services" tab, you can enable HTTP and HTTPS (recommended) and SSH (optional). HTTP is needed to obtain the Let's Encrypt certificate. You can disable it later. On the Certificates (Let's Encrypt) page, you can obtain a Let's Encrypt certificate for your kite name. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/PageKite122017-01-07 20:37:22JamesValleroyadd info on getting certificate112017-01-07 20:21:47JamesValleroyadd instructions102017-01-07 20:14:44JamesValleroyclarify how pagekite works92016-09-01 19:19:45Drahtseiladapted title to Plinth wording82016-04-10 07:13:20PhilippeBaretAdded navigation link72015-12-15 20:50:09PhilippeBaretCorrection62015-12-15 19:28:57PhilippeBaretAdded more definition52015-12-15 19:19:27PhilippeBaretAdded pagekite extended definition42015-09-13 14:58:24SunilMohanAdapaAdd headings for inclusion into manual32015-09-13 13:18:15SunilMohanAdapaMove PageKite page to manual22015-02-13 05:01:10SunilMohanAdapaInclude FreedomBox portal in footer12012-09-14 07:37:02planetlarg
Public Visibility (PageKite)
What is PageKite?PageKite makes local websites and services publicly accessible immediately without creating yourself a public IP address. It does this by tunneling protocols such as HTTPS or SSH through firewalls and NAT. Using PageKite requires an account on a PageKite relay service. One such service is . A PageKite relay service will allow you to create kites. Kites are similar to domain names, but with different advantages and drawbacks. A kite can have a number of configured services. PageKite is known to work with HTTP, HTTPS, and SSH, and may work with some other services, but not all.
Using PageKiteCreate an account on a PageKite relay service. Add a kite to your account. Note your kite name and kite secret. In Plinth, go to the "Configure PageKite" tab on the Public Visibility (PageKite) page. Check the "Enable PageKite" box, then enter your kite name and kite secret. Click "Save settings". On the "Standard Services" tab, you can enable HTTP and HTTPS (recommended) and SSH (optional). HTTP is needed to obtain the Let's Encrypt certificate. You can disable it later. On the Certificates (Let's Encrypt) page, you can obtain a Let's Encrypt certificate for your kite name. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Power.raw.xml b/doc/Power.raw.xml index cc0d1f4f2..36ff99b3c 100644 --- a/doc/Power.raw.xml +++ b/doc/Power.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Power32019-02-28 16:33:32JosephNuthalapatiRestart and shut down options in user menu22017-01-07 20:38:36JamesValleroynote confirmation12016-08-21 09:29:59DrahtseilCreated Power
PowerPower provides an easy way to restart or shut down FreedomBox. After you select "Restart" or "Shut Down", you will be asked to confirm. "Restart" and "Shut Down" options can also be reached from the user dropdown menu on the top right. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Power32019-02-28 16:33:32JosephNuthalapatiRestart and shut down options in user menu22017-01-07 20:38:36JamesValleroynote confirmation12016-08-21 09:29:59DrahtseilCreated Power
PowerPower provides an easy way to restart or shut down FreedomBox. After you select "Restart" or "Shut Down", you will be asked to confirm. "Restart" and "Shut Down" options can also be reached from the user dropdown menu on the top right. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Privoxy.raw.xml b/doc/Privoxy.raw.xml index 4af94b288..86af75386 100644 --- a/doc/Privoxy.raw.xml +++ b/doc/Privoxy.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Privoxy112019-09-16 12:07:52fioddorMinor correction102018-03-11 03:09:16JosephNuthalapatiFix oversized images92016-09-09 15:39:20SunilMohanAdapaMinor indentation fix with screenshots82016-09-09 15:31:16SunilMohanAdapaPromote the visibility of the screencast72016-08-09 19:09:55Drahtseilconfiguration for advanced users62016-08-06 20:02:42DrahtseilScreencast of the setting up52016-08-06 17:57:33Drahtseilscreenshots42016-08-01 19:38:35DrahtseilVery basic restructuring as preparation for more work to be done.32016-04-10 07:24:20PhilippeBaretAdded bottom navigation link22015-12-15 20:54:14PhilippeBaretAdded link to Privoxy FAQ12015-12-15 20:22:00PhilippeBaretAdded Privoxy page and definition
Web Proxy (Privoxy)A web proxy acts as a filter for incoming and outgoing web traffic. Thus, you can instruct any computer in your network to pass internet traffic through the proxy to remove unwanted ads and tracking mechanisms. Privoxy is a software for security, privacy, and accurate control over the web. It provides a much more powerful web proxy (and anonymity on the web) than what your browser can offer. Privoxy "is a proxy that is primarily focused on privacy enhancement, ad and junk elimination and freeing the user from restrictions placed on his activities" (source: Privoxy FAQ).
ScreencastWatch the screencast on how to setup and use Privoxy in FreedomBox.
Setting upIn Plinth install Web Proxy (Privoxy) Privoxy Installation Adapt your browser proxy settings to your FreedomBox hostname (or IP address) with port 8118. Please note that Privoxy can only proxy HTTP and HTTPS traffic. It will not work with FTP or other protocols. Privoxy Browser Settings Go to page or . If Privoxy is installed properly, you will be able to configure it in detail; if not you will see an error message. If you are using a laptop that occasionally has to connect through other routers than yours with the FreedomBox and Privoxy, you may want to install a proxy switch add-on that allows you to easily turn the proxy on or off.
Advanced UsersThe default installation should provide a reasonable starting point for most. There will undoubtedly be occasions where you will want to adjust the configuration, that can be dealt with as the need arises. While using Privoxy, you can see its configuration details and documentation at or . To enable changing these configurations, you first have to change the value of enable-edit-actions in /etc/privoxy/config to 1. Before doing so, read carefully the manual, especially: Access to the editor can not be controlled separately by "ACLs" or HTTP authentication, so that everybody who can access Privoxy can modify its configuration for all users. This option is not recommended for environments with untrusted users. Note that malicious client side code (e.g Java) is also capable of using the actions editor and you shouldn't enable this options unless you understand the consequences and are sure your browser is configured correctly. Now you find an EDIT button on the configuration screen in http://config.privoxy.org/. The Quickstart is a good starting point to read on how to define own blocking and filtering rules. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Privoxy112019-09-16 12:07:52fioddorMinor correction102018-03-11 03:09:16JosephNuthalapatiFix oversized images92016-09-09 15:39:20SunilMohanAdapaMinor indentation fix with screenshots82016-09-09 15:31:16SunilMohanAdapaPromote the visibility of the screencast72016-08-09 19:09:55Drahtseilconfiguration for advanced users62016-08-06 20:02:42DrahtseilScreencast of the setting up52016-08-06 17:57:33Drahtseilscreenshots42016-08-01 19:38:35DrahtseilVery basic restructuring as preparation for more work to be done.32016-04-10 07:24:20PhilippeBaretAdded bottom navigation link22015-12-15 20:54:14PhilippeBaretAdded link to Privoxy FAQ12015-12-15 20:22:00PhilippeBaretAdded Privoxy page and definition
Web Proxy (Privoxy)A web proxy acts as a filter for incoming and outgoing web traffic. Thus, you can instruct any computer in your network to pass internet traffic through the proxy to remove unwanted ads and tracking mechanisms. Privoxy is a software for security, privacy, and accurate control over the web. It provides a much more powerful web proxy (and anonymity on the web) than what your browser can offer. Privoxy "is a proxy that is primarily focused on privacy enhancement, ad and junk elimination and freeing the user from restrictions placed on his activities" (source: Privoxy FAQ).
ScreencastWatch the screencast on how to setup and use Privoxy in FreedomBox.
Setting upIn Plinth install Web Proxy (Privoxy) Privoxy Installation Adapt your browser proxy settings to your FreedomBox hostname (or IP address) with port 8118. Please note that Privoxy can only proxy HTTP and HTTPS traffic. It will not work with FTP or other protocols. Privoxy Browser Settings Go to page or . If Privoxy is installed properly, you will be able to configure it in detail; if not you will see an error message. If you are using a laptop that occasionally has to connect through other routers than yours with the FreedomBox and Privoxy, you may want to install a proxy switch add-on that allows you to easily turn the proxy on or off.
Advanced UsersThe default installation should provide a reasonable starting point for most. There will undoubtedly be occasions where you will want to adjust the configuration, that can be dealt with as the need arises. While using Privoxy, you can see its configuration details and documentation at or . To enable changing these configurations, you first have to change the value of enable-edit-actions in /etc/privoxy/config to 1. Before doing so, read carefully the manual, especially: Access to the editor can not be controlled separately by "ACLs" or HTTP authentication, so that everybody who can access Privoxy can modify its configuration for all users. This option is not recommended for environments with untrusted users. Note that malicious client side code (e.g Java) is also capable of using the actions editor and you shouldn't enable this options unless you understand the consequences and are sure your browser is configured correctly. Now you find an EDIT button on the configuration screen in http://config.privoxy.org/. The Quickstart is a good starting point to read on how to define own blocking and filtering rules. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Quassel.raw.xml b/doc/Quassel.raw.xml index fb51e9b86..805c83565 100644 --- a/doc/Quassel.raw.xml +++ b/doc/Quassel.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Quassel72019-05-10 23:05:32JamesValleroyuse standard text for port forwarding62019-02-27 21:34:38JosephNuthalapatiGrammar corrections and clarification about port forwarding52018-10-04 02:01:15SunilMohanAdapaAdd screenshots to the Quassel Client section42018-10-04 01:26:35SunilMohanAdapaRefactor information on how to connect to core using desktop client32018-03-11 03:00:04JosephNuthalapatiFix oversized image22016-08-18 17:30:28Drahtseilwording, screen-shots12016-08-17 20:09:38Drahtseilpage creation; not sure about the configuration of quassel-client (too long ago); screenshots to follow
IRC Client (Quassel)Quassel is an IRC application that is split into two parts, a "core" and a "client". This allows the core to remain connected to IRC servers, and to continue receiving messages, even when the client is disconnected. FreedomBox can run the Quassel core service keeping you always online and one or more Quassel clients from a desktop or a mobile device can be used to connect and disconnect from it.
Why run Quassel?Many discussions about FreedomBox are being done on the IRC-Channel irc://irc.debian.org/freedombox. If your FreedomBox is running Quassel, it will collect all discussions while you are away, such as responses to your questions. Remember, the FreedomBox project is a worldwide project with people from nearly every time zone. You use your client to connect to the Quassel core to read and respond whenever you have time and are available.
How to setup Quassel?Within Plinth select Applications go to IRC Client (Quassel) and install the application and make sure it is enabled Quassel Installation now your Quassel core is running
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for Quassel: TCP 4242 Example configuration in router: Quassel_PortForwarding.png
ClientsClients to connect to Quassel from your desktop and mobile devices are available.
DesktopIn a Debian system, you can e.g. use quassel-client. The following steps describe how to connect Quassel Client with Quassel Core running on a FreedomBox. The first time you do this connection, Quassel Core will be initialized too. Launch Quassel Client. You will be greeted with a wizard to Connect to Core. Connect to Core Click the Add button to launch Add Core Account dialog. Add Core Account Fill any value in the Account Name field. Fill proper DNS hostname of your FreedomBox in Hostname filed. Port field must have the value 4242. Provide the username and password of the account you wish to create to connect to the Quassel Core in the User and Password fields. Choose Remember if don't wish to be prompted for a password every time you launch Quassel client. After pressing OK in the Add Core Account dialog, you should see the core account in the Connect to Core dialog. Connect to Core Select the newly created core account and select OK to connect to it. If this is the first time you are connecting to this core. You will see an Untrusted Security Certificate warning and need to accept the server certificate. Untrusted Security Certificate Select Continue. Then you will be asked if you wish to accept the certificate permanently. Select Forever. Untrusted Security Certificate If this Quassel Core has not been connected to before, you will then see a Core Configuration Wizard. Select Next. Core Configuration Wizard In the Create Admin User page, enter the username and password you have used earlier to create the core connection. Select Remember password to remember this password for future sessions. Click Next. Create Admin User Page In the Select Storage Backend page, select SQLite and click Commit. Select Storage Backend The core configuration is then complete and you will see a Quassel IRC wizard to configure your IRC connections. Click Next. Welcome Wizard In Setup Identity page next, provide a name and multiple nicknames. This is how you present yourself to other users on IRC. It is not necessary to give your real world name. Multiple nicknames are useful as fallback nicknames when the first nickname can't be used for some reason. After providing the information click Next. Setup Identity In Setup Network Connection page next, provide a network name of your choice. Next provide a list of servers to which Quassel Core should connect to in order to join this IRC network (such as irc.debian.org:6667). Setup Network Connection Select the server in the servers list and click Edit. In the Server Info dialog, set the port 6697 (consult your network's documentation for actual list of servers and their secure ports) and click Use SSL. Click OK. This is to ensure that communication between your FreedomBox and the IRC network server is encrypted. Server Info Server Info SSL Back in the Setup Network Connection dialog, provide a list of IRC channels (such as #freedombox) to join upon connecting to the network. Click Save & Connect. Setup Network Connection You should connect to the network and see the list of channels you have joined on the All Chats pane on the left of the Quassel Client main window. Quassel Main Window Select a channel and start seeing messages from others in the channel and send your own messages.
AndroidFor Android devices you may use e.g. Quasseldroid from F-Droid enter core, username etc. as above Quasseldroid.png By the way, the German verb quasseln means talking a lot, to jabber. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Quassel72019-05-10 23:05:32JamesValleroyuse standard text for port forwarding62019-02-27 21:34:38JosephNuthalapatiGrammar corrections and clarification about port forwarding52018-10-04 02:01:15SunilMohanAdapaAdd screenshots to the Quassel Client section42018-10-04 01:26:35SunilMohanAdapaRefactor information on how to connect to core using desktop client32018-03-11 03:00:04JosephNuthalapatiFix oversized image22016-08-18 17:30:28Drahtseilwording, screen-shots12016-08-17 20:09:38Drahtseilpage creation; not sure about the configuration of quassel-client (too long ago); screenshots to follow
IRC Client (Quassel)Quassel is an IRC application that is split into two parts, a "core" and a "client". This allows the core to remain connected to IRC servers, and to continue receiving messages, even when the client is disconnected. FreedomBox can run the Quassel core service keeping you always online and one or more Quassel clients from a desktop or a mobile device can be used to connect and disconnect from it.
Why run Quassel?Many discussions about FreedomBox are being done on the IRC-Channel irc://irc.debian.org/freedombox. If your FreedomBox is running Quassel, it will collect all discussions while you are away, such as responses to your questions. Remember, the FreedomBox project is a worldwide project with people from nearly every time zone. You use your client to connect to the Quassel core to read and respond whenever you have time and are available.
How to setup Quassel?Within Plinth select Applications go to IRC Client (Quassel) and install the application and make sure it is enabled Quassel Installation now your Quassel core is running
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for Quassel: TCP 4242 Example configuration in router: Quassel_PortForwarding.png
ClientsClients to connect to Quassel from your desktop and mobile devices are available.
DesktopIn a Debian system, you can e.g. use quassel-client. The following steps describe how to connect Quassel Client with Quassel Core running on a FreedomBox. The first time you do this connection, Quassel Core will be initialized too. Launch Quassel Client. You will be greeted with a wizard to Connect to Core. Connect to Core Click the Add button to launch Add Core Account dialog. Add Core Account Fill any value in the Account Name field. Fill proper DNS hostname of your FreedomBox in Hostname filed. Port field must have the value 4242. Provide the username and password of the account you wish to create to connect to the Quassel Core in the User and Password fields. Choose Remember if don't wish to be prompted for a password every time you launch Quassel client. After pressing OK in the Add Core Account dialog, you should see the core account in the Connect to Core dialog. Connect to Core Select the newly created core account and select OK to connect to it. If this is the first time you are connecting to this core. You will see an Untrusted Security Certificate warning and need to accept the server certificate. Untrusted Security Certificate Select Continue. Then you will be asked if you wish to accept the certificate permanently. Select Forever. Untrusted Security Certificate If this Quassel Core has not been connected to before, you will then see a Core Configuration Wizard. Select Next. Core Configuration Wizard In the Create Admin User page, enter the username and password you have used earlier to create the core connection. Select Remember password to remember this password for future sessions. Click Next. Create Admin User Page In the Select Storage Backend page, select SQLite and click Commit. Select Storage Backend The core configuration is then complete and you will see a Quassel IRC wizard to configure your IRC connections. Click Next. Welcome Wizard In Setup Identity page next, provide a name and multiple nicknames. This is how you present yourself to other users on IRC. It is not necessary to give your real world name. Multiple nicknames are useful as fallback nicknames when the first nickname can't be used for some reason. After providing the information click Next. Setup Identity In Setup Network Connection page next, provide a network name of your choice. Next provide a list of servers to which Quassel Core should connect to in order to join this IRC network (such as irc.debian.org:6667). Setup Network Connection Select the server in the servers list and click Edit. In the Server Info dialog, set the port 6697 (consult your network's documentation for actual list of servers and their secure ports) and click Use SSL. Click OK. This is to ensure that communication between your FreedomBox and the IRC network server is encrypted. Server Info Server Info SSL Back in the Setup Network Connection dialog, provide a list of IRC channels (such as #freedombox) to join upon connecting to the network. Click Save & Connect. Setup Network Connection You should connect to the network and see the list of channels you have joined on the All Chats pane on the left of the Quassel Client main window. Quassel Main Window Select a channel and start seeing messages from others in the channel and send your own messages.
AndroidFor Android devices you may use e.g. Quasseldroid from F-Droid enter core, username etc. as above Quasseldroid.png By the way, the German verb quasseln means talking a lot, to jabber. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Radicale.raw.xml b/doc/Radicale.raw.xml index 84bf93dc1..5fe9a85c0 100644 --- a/doc/Radicale.raw.xml +++ b/doc/Radicale.raw.xml @@ -26,4 +26,4 @@ chown -R radicale:radicale /var/lib/radicale/collections/collection-root/ apt remove -y python-radicale if [ -f /etc/radicale/config.dpkg-dist ] ; then cp /etc/radicale/config.dpkg-dist /etc/radicale/config ; fi if [ -f /etc/default/radicale.dpkg-dist ] ; then cp /etc/default/radicale.dpkg-dist /etc/default/radicale ; fi -(After FreedomBox 19.1 is available, goto FreedomBox web interface and set your preference for calendar sharing again, if it is not the default option, as it will have been lost.)]]>Notes: python-radicale is an old package from radicale 1.x version that is still available in testing. This is a hack to use the --export-storage feature that is responsible for data migration. This feature is not available in radicale 2.x unfortunately. Files ending with .dpkg-dist will exist only if you have chosen 'Keep your currently-installed version' when prompted for configuration file override during radicale 2.x upgrade. The above process will overwrite the old configuration with new fresh configuration. No changes are necessary to the two configuration files unless you have changed the setting for sharing calendars. Note that during the migration, your data is safe in /var/lib/radicale/collections directory. New data will be created and used in /var/lib/radicale/collections/collections-root/ directory. The tar command takes a backup your configuration and data in /root/radicale_backup.tgz in case you do something goes wrong and you want to undo the changes.
Troubleshooting1. If you are using FreedomBox Pioneer Edition or installing FreedomBox on Debian Buster, then radicale may not be usable immediately after installation. This is due to a bug which has been fixed later. To overcome the problem, upgrade FreedomBox by clicking on 'Manual Update' from 'Updates' app. Otherwise, simply wait a day or two and let FreedomBox upgrade itself. After that install radicale. If radicale is already installed, disable and re-enable it after the update is completed. This will fix the problem and get radicale working properly. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +(After FreedomBox 19.1 is available, goto FreedomBox web interface and set your preference for calendar sharing again, if it is not the default option, as it will have been lost.)]]>Notes: python-radicale is an old package from radicale 1.x version that is still available in testing. This is a hack to use the --export-storage feature that is responsible for data migration. This feature is not available in radicale 2.x unfortunately. Files ending with .dpkg-dist will exist only if you have chosen 'Keep your currently-installed version' when prompted for configuration file override during radicale 2.x upgrade. The above process will overwrite the old configuration with new fresh configuration. No changes are necessary to the two configuration files unless you have changed the setting for sharing calendars. Note that during the migration, your data is safe in /var/lib/radicale/collections directory. New data will be created and used in /var/lib/radicale/collections/collections-root/ directory. The tar command takes a backup your configuration and data in /root/radicale_backup.tgz in case you do something goes wrong and you want to undo the changes.
Troubleshooting1. If you are using FreedomBox Pioneer Edition or installing FreedomBox on Debian Buster, then radicale may not be usable immediately after installation. This is due to a bug which has been fixed later. To overcome the problem, upgrade FreedomBox by clicking on 'Manual Update' from 'Updates' app. Otherwise, simply wait a day or two and let FreedomBox upgrade itself. After that install radicale. If radicale is already installed, disable and re-enable it after the update is completed. This will fix the problem and get radicale working properly. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Repro.raw.xml b/doc/Repro.raw.xml index 65f188a72..aed456f49 100644 --- a/doc/Repro.raw.xml +++ b/doc/Repro.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Repro82019-02-26 23:26:49JamesValleroyremove content from manual72019-02-26 23:25:03JamesValleroyadd note about removal62017-01-02 13:43:51JamesValleroyadd port forwarding info52016-12-31 03:57:09JamesValleroyadd basic info42016-12-26 18:56:31JamesValleroyadd screenshots32016-05-27 17:24:23JamesValleroyadd footer22016-05-27 17:21:48JamesValleroyRenamed from 'FreedomBox/Manual/repro'.12016-05-15 19:03:02JamesValleroystart page
SIP Server (repro)App removed repro has been removed from Debian 10 (Buster), and therefore is no longer available in FreedomBox. repro is a server for SIP, a standard that enables Voice-over-IP calls. A desktop or mobile SIP client is required to use repro.
How to set up the SIP serverConfigure the domain at /repro/domains.html on the FreedomBox. Repro Domains Add users at /repro/addUser.html. Repro Users Disable and re-enable the repro application in Plinth.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for repro: TCP 5060 TCP 5061 UDP 5060 UDP 5061 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Repro82019-02-26 23:26:49JamesValleroyremove content from manual72019-02-26 23:25:03JamesValleroyadd note about removal62017-01-02 13:43:51JamesValleroyadd port forwarding info52016-12-31 03:57:09JamesValleroyadd basic info42016-12-26 18:56:31JamesValleroyadd screenshots32016-05-27 17:24:23JamesValleroyadd footer22016-05-27 17:21:48JamesValleroyRenamed from 'FreedomBox/Manual/repro'.12016-05-15 19:03:02JamesValleroystart page
SIP Server (repro)App removed repro has been removed from Debian 10 (Buster), and therefore is no longer available in FreedomBox. repro is a server for SIP, a standard that enables Voice-over-IP calls. A desktop or mobile SIP client is required to use repro.
How to set up the SIP serverConfigure the domain at /repro/domains.html on the FreedomBox. Repro Domains Add users at /repro/addUser.html. Repro Users Disable and re-enable the repro application in Plinth.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for repro: TCP 5060 TCP 5061 UDP 5060 UDP 5061 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Roundcube.raw.xml b/doc/Roundcube.raw.xml index d7f84b26c..5a9097449 100644 --- a/doc/Roundcube.raw.xml +++ b/doc/Roundcube.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Roundcube82019-03-13 21:13:00SunilMohanAdapaMinor formatting.72019-03-13 21:11:10SunilMohanAdapaAdd information about how to login to Roundcube62016-12-31 03:41:20JamesValleroyadd link52016-09-01 19:12:35Drahtseiladapted title to Plinth wording42016-04-10 07:25:23PhilippeBaretAdded bottom navigation link32015-12-15 19:04:22PhilippeBaretText finishing22015-12-15 19:03:29PhilippeBaretAdded ## END_INCLUDE12015-12-15 19:02:17PhilippeBaretAdded Rouncube page with definition
Email Client (Roundcube)
What is Roundcube?Roundcube is a browser-based multilingual email client with an application-like user interface. Roundcube is using the Internet Message Access Protocol (IMAP) to access e-mail on a remote mail server. It supports MIME to send files, and provides particularly address book, folder management, message searching and spell checking.
Using RoundcubeAfter Roundcube is installed, it can be accessed at https://<your freedombox>/roundcube. Enter your username and password. The username for many mail services will be the full email address such as exampleuser@example.org and not just the username like exampleuser. Enter the address of your email service's IMAP server address in the Server field. You can try providing your domain name here such as example.org for email address exampleuser@example.org and if this does not work, consult your email provider's documentation for the address of the IMAP server. Using encrypted connection to your IMAP server is strongly recommended. To do this, prepend 'imaps://' at the beginning of your IMAP server address. For example, imaps://imap.example.org. Logging into your IMAP server
Using Gmail with RoundcubeIf you wish to use Roundcube with your Gmail account, you need to first enable support for password based login in your Google account preferences. This is because Gmail won't allow applications to login with a password by default. To do this, visit Google Account preferences and enable Less Secure Apps. After this, login to Roundcube by providing your Gmail address as Username, your password and in the server field use imaps://imap.gmail.com. Logging into Gmail Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Roundcube82019-03-13 21:13:00SunilMohanAdapaMinor formatting.72019-03-13 21:11:10SunilMohanAdapaAdd information about how to login to Roundcube62016-12-31 03:41:20JamesValleroyadd link52016-09-01 19:12:35Drahtseiladapted title to Plinth wording42016-04-10 07:25:23PhilippeBaretAdded bottom navigation link32015-12-15 19:04:22PhilippeBaretText finishing22015-12-15 19:03:29PhilippeBaretAdded ## END_INCLUDE12015-12-15 19:02:17PhilippeBaretAdded Rouncube page with definition
Email Client (Roundcube)
What is Roundcube?Roundcube is a browser-based multilingual email client with an application-like user interface. Roundcube is using the Internet Message Access Protocol (IMAP) to access e-mail on a remote mail server. It supports MIME to send files, and provides particularly address book, folder management, message searching and spell checking.
Using RoundcubeAfter Roundcube is installed, it can be accessed at https://<your freedombox>/roundcube. Enter your username and password. The username for many mail services will be the full email address such as exampleuser@example.org and not just the username like exampleuser. Enter the address of your email service's IMAP server address in the Server field. You can try providing your domain name here such as example.org for email address exampleuser@example.org and if this does not work, consult your email provider's documentation for the address of the IMAP server. Using encrypted connection to your IMAP server is strongly recommended. To do this, prepend 'imaps://' at the beginning of your IMAP server address. For example, imaps://imap.example.org. Logging into your IMAP server
Using Gmail with RoundcubeIf you wish to use Roundcube with your Gmail account, you need to first enable support for password based login in your Google account preferences. This is because Gmail won't allow applications to login with a password by default. To do this, visit Google Account preferences and enable Less Secure Apps. After this, login to Roundcube by providing your Gmail address as Username, your password and in the server field use imaps://imap.gmail.com. Logging into Gmail Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Searx.raw.xml b/doc/Searx.raw.xml index a77e18d02..cd4dc966b 100644 --- a/doc/Searx.raw.xml +++ b/doc/Searx.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Searx82019-05-22 17:08:56David JonesAdded information that SearX is accessible via Tor.72018-11-01 09:17:25JosephNuthalapatiAdd ToC62018-03-08 15:08:44JosephNuthalapatiAdd screenshot. Remove last 20 seconds from screencast to reduce size.52018-03-08 14:23:24JosephNuthalapatiAdd query param to make the video play within the browser42018-03-07 20:43:27Drahtseil32018-03-07 20:37:05DrahtseilScreencast of the installation and first steps22018-02-26 17:15:26JamesValleroyincluded in 0.2412018-02-22 12:12:50JosephNuthalapatisearx: Initial draft
Web Search (Searx)
About SearxSearx is a metasearch engine. A metasearch engine aggregates the results from various search engines and presents them in a unified interface. Read more about Searx on their official website. Available since: version 0.24.0
ScreenshotSearx Screenshot
ScreencastSearx installation and first steps (14 MB)
Why use Searx?
Personalization and Filter BubblesSearch engines have the ability to profile users and serve results most relevant to them, putting people into filter bubbles, thus distorting people's view of the world. Search engines have a financial incentive to serve interesting advertisements to their users, increasing their chances of clicking on the advertisements. A metasearch engine is a possible solution to this problem, as it aggregates results from multiple search engines thus bypassing personalization attempts by search engines. Searx avoids storing cookies from search engines as a means of preventing tracking and profiling by search engines.
Advertisement filteringSearx filters out advertisements from the search results before serving the results, thus increasing relevance the of your search results and saving you from distractions.
PrivacySearx uses HTTP POST instead of GET by default to send your search queries to the search engines, so that anyone snooping your traffic wouldn't be able to read your queries. The search queries wouldn't stored in browser history either. Note: Searx used from Chrome browser's omnibar would make GET requests instead of POST.
Searx on FreedomBoxSearx on FreedomBox uses Single Sign On. This means that you should be logged in into your FreedomBox in the browser that you're using Searx. SearX is easily accessible via Tor. Searx can be added as a search engine to the Firefox browser's search bar. See Firefox Help on this topic. Once Searx is added, you can also set it as your default search engine. Searx also offers search results in csv, json and rss formats, which can be used with scripts to automate some tasks. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Searx82019-05-22 17:08:56David JonesAdded information that SearX is accessible via Tor.72018-11-01 09:17:25JosephNuthalapatiAdd ToC62018-03-08 15:08:44JosephNuthalapatiAdd screenshot. Remove last 20 seconds from screencast to reduce size.52018-03-08 14:23:24JosephNuthalapatiAdd query param to make the video play within the browser42018-03-07 20:43:27Drahtseil32018-03-07 20:37:05DrahtseilScreencast of the installation and first steps22018-02-26 17:15:26JamesValleroyincluded in 0.2412018-02-22 12:12:50JosephNuthalapatisearx: Initial draft
Web Search (Searx)
About SearxSearx is a metasearch engine. A metasearch engine aggregates the results from various search engines and presents them in a unified interface. Read more about Searx on their official website. Available since: version 0.24.0
ScreenshotSearx Screenshot
ScreencastSearx installation and first steps (14 MB)
Why use Searx?
Personalization and Filter BubblesSearch engines have the ability to profile users and serve results most relevant to them, putting people into filter bubbles, thus distorting people's view of the world. Search engines have a financial incentive to serve interesting advertisements to their users, increasing their chances of clicking on the advertisements. A metasearch engine is a possible solution to this problem, as it aggregates results from multiple search engines thus bypassing personalization attempts by search engines. Searx avoids storing cookies from search engines as a means of preventing tracking and profiling by search engines.
Advertisement filteringSearx filters out advertisements from the search results before serving the results, thus increasing relevance the of your search results and saving you from distractions.
PrivacySearx uses HTTP POST instead of GET by default to send your search queries to the search engines, so that anyone snooping your traffic wouldn't be able to read your queries. The search queries wouldn't stored in browser history either. Note: Searx used from Chrome browser's omnibar would make GET requests instead of POST.
Searx on FreedomBoxSearx on FreedomBox uses Single Sign On. This means that you should be logged in into your FreedomBox in the browser that you're using Searx. SearX is easily accessible via Tor. Searx can be added as a search engine to the Firefox browser's search bar. See Firefox Help on this topic. Once Searx is added, you can also set it as your default search engine. Searx also offers search results in csv, json and rss formats, which can be used with scripts to automate some tasks. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/SecureShell.raw.xml b/doc/SecureShell.raw.xml index 7ea6f22a1..9c15e463b 100644 --- a/doc/SecureShell.raw.xml +++ b/doc/SecureShell.raw.xml @@ -5,4 +5,4 @@
FreedomBox/Manual/SecureShell122019-02-26 03:46:55JamesValleroyremove wiki links112018-01-30 07:55:33SunilMohanAdapaUpdate GitHub links with Salsa102017-03-06 23:17:08JamesValleroyadd note92016-10-13 21:49:06David JonesAdded infromation about connecting to the FBX using ssh over Tor82016-10-13 21:09:31David JonesAdded information about admin account for first log in to Plinth72016-09-05 09:42:36ElViroloRemoving my previous contribution, as info already present in original version.62016-09-05 09:39:05ElVirolo52016-09-05 09:26:15ElViroloAdded "Users created via Plinth" paragraph42015-12-21 19:42:10JamesValleroyupdate default account32015-12-21 19:33:56JamesValleroyfix outline level22015-12-15 19:31:18PhilippeBaretAdded definition title12015-09-16 16:22:37SunilMohanAdapaNew manual page for secure shell access
Secure Shell
What is Secure Shell?FreedomBox runs openssh-server server by default allowing remote logins from all interfaces. If your hardware device is connected to a monitor and a keyboard, you may login directly as well. Regular operation of FreedomBox does not require you to use the shell. However, some tasks or identifying a problem may require you to login to a shell.
Setting Up A User Account
Plinth First Log In: Admin AccountWhen creating an account in Plinth for the first time, this user will automatically have administrator capabilities. Admin users are able to log in using ssh (see Logging In below) and have superuser privileges via sudo.
Default User AccountNote: If you can access Plinth, then you don't need to do this. You can use the user account created in Plinth to connect to SSH. The pre-built FreedomBox images have a default user account called "fbx". However the password is not set for this account, so it will not be possible to log in with this account by default. There is a script included in the freedom-maker program, that will allow you to set the password for this account, if it is needed. To set a password for the "fbx" user: 1. Decompress the image file. 2. Get a copy of freedom-maker from . 3. Run sudo ./bin/passwd-in-image <image-file> fbx. 4. Copy the image file to SD card and boot device as normal. The "fbx" user also has superuser privileges via sudo.
Logging In
LocalTo login via SSH, to your FreedomBox: Replace fbx with the name of the user you wish to login as. freedombox should be replaced with the hostname or IP address of you FreedomBox device as found in the Quick Start process. fbx is the default user present on FreedomBox with superuser privileges. Any other user created using Plinth and belonging to the group admin will be able to login. The root account has no password set and will not be able to login. Access will be denied to all other users. fbx and users in admin group will also be able to login on the terminal directly. Other users will be denied access. If you repeatedly try to login as a user and fail, you will be blocked from logging in for some time. This is due to libpam-abl package that FreedomBox installs by default. To control this behavior consult libpam-abl documentation.
SSH over TorIf in Plinth you have enabled hidden services via Tor, you can access your FreedomBox using ssh over Tor. On a GNU/Linux computer, install netcat-openbsd. Edit ~/.ssh/config to enable connections over Tor. Add the following: Replace USERNAME with, e.g., an admin username (see above). Note that in some cases you may need to replace 9050 with 9150. Now to connect to the FreedomBox, open a terminal and type: Replace USERNAME with, e.g., an admin username, and ADDRESS with the hidden service address for your FreedomBox.
Becoming SuperuserAfter logging in, if you want to become the superuser for performing administrative activities: Make a habit of logging in as root only when you need to. If you aren't logged in as root, you can't accidentally break everything.
Changing PasswordTo change the password of a user managed by Plinth, use the change password page. However, the fbx default user is not managed by Plinth and its password cannot be changed in the web interface. To change password on the terminal, log in to your FreedomBox as the user whose password you want to change. Then, run the following command: This will ask you for your current password before giving you the opportunity to set a new one. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file + ProxyCommand nc -X 5 -x 127.0.0.1:9050 %h %p]]>Replace USERNAME with, e.g., an admin username (see above). Note that in some cases you may need to replace 9050 with 9150. Now to connect to the FreedomBox, open a terminal and type: Replace USERNAME with, e.g., an admin username, and ADDRESS with the hidden service address for your FreedomBox.
Becoming SuperuserAfter logging in, if you want to become the superuser for performing administrative activities: Make a habit of logging in as root only when you need to. If you aren't logged in as root, you can't accidentally break everything.
Changing PasswordTo change the password of a user managed by Plinth, use the change password page. However, the fbx default user is not managed by Plinth and its password cannot be changed in the web interface. To change password on the terminal, log in to your FreedomBox as the user whose password you want to change. Then, run the following command: This will ask you for your current password before giving you the opportunity to set a new one. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Security.raw.xml b/doc/Security.raw.xml index c4fb3f2e8..9eacd6bbf 100644 --- a/doc/Security.raw.xml +++ b/doc/Security.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Security22016-08-31 17:40:56DrahtseilScreenshot12016-08-31 17:37:33Drahtseilcreation
SecurityWhen this option is enabled, only users in the "admin" group will be able to log in to console or via SSH. Console users may be able to access some services without further authorization. You can define the group of the users in the Users section. Security.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Security32019-10-11 23:17:39SunilMohanAdapaClarify information regarding restricting console logins22016-08-31 17:40:56DrahtseilScreenshot12016-08-31 17:37:33Drahtseilcreation
SecurityWhen the Restrict console logins option is enabled, only users in the admin group will be able to log in via console, secure shell (SSH) or graphical login. When this option is disabled, any user with an account on FreedomBox will be able to log in. They may be able to access some services without further authorization. This option should only be disabled if all the users of the system are well trusted. If you wish to use your FreedomBox machine also as a desktop and allow non-admin users to login via GUI, this option must be disabled. You can define the list of users belonging to admin group in the Users section. Security.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/ServiceDiscovery.raw.xml b/doc/ServiceDiscovery.raw.xml index b675abe13..733c5d89f 100644 --- a/doc/ServiceDiscovery.raw.xml +++ b/doc/ServiceDiscovery.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/ServiceDiscovery22017-01-02 13:17:40JamesValleroymention .local address12016-08-21 09:48:13DrahtseilCreated Service Discovery
Service DiscoveryService discovery allows other devices on the network to discover your FreedomBox and services running on it. If a client on the local network supports mDNS, it can find your FreedomBox at <hostname>.local (for example: freedombox.local). It also allows FreedomBox to discover other devices and services running on your local network. 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. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/ServiceDiscovery22017-01-02 13:17:40JamesValleroymention .local address12016-08-21 09:48:13DrahtseilCreated Service Discovery
Service DiscoveryService discovery allows other devices on the network to discover your FreedomBox and services running on it. If a client on the local network supports mDNS, it can find your FreedomBox at <hostname>.local (for example: freedombox.local). It also allows FreedomBox to discover other devices and services running on your local network. 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. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Shadowsocks.raw.xml b/doc/Shadowsocks.raw.xml index 74cacecba..33761ed49 100644 --- a/doc/Shadowsocks.raw.xml +++ b/doc/Shadowsocks.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Shadowsocks22019-05-10 22:54:33JamesValleroyremove wiki links12018-01-04 19:59:57David Jones
SOCKS5 proxy (Shadowsocks)
What is Shadowsocks?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. Note: Shadowsocks is available in FreedomBox starting with Plinth version 0.18.
Using the Shadowsocks client?The current implementation of Shadowsocks in FreedomBox only supports configuring FreedomBox as a Shadowsocks client. The current use case for Shadowsocks is as follows: Shadowsocks client (FreedomBox) is in a region where some parts of the Internet are blocked or censored. Shadowsocks server is in a different region, which doesn't have these blocks. The FreedomBox provides SOCKS proxy service on the local network for other devices to make use of its Shadowsocks connection. At a future date it will be possible to configure FreedomBox as Shadowsocks server.
Configuring your FreedomBox for the Shadowsocks clientTo enable Shadowsocks, first navigate to the Socks5 Proxy (Shadowsocks) page and install it. Server: the Shadowsocks server is not the FreedomBox IP or URL; rather, it will be another server or VPS that has been configured as a Shadowsocks server. There are also some public Shadowsocks servers listed on the web, but be aware that whoever operates the server can see where requests are going, and any non-encrypted data will be visible to them. To use Shadowsocks after setup, set the SOCKS5 proxy URL in your device, browser or application to Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Shadowsocks22019-05-10 22:54:33JamesValleroyremove wiki links12018-01-04 19:59:57David Jones
SOCKS5 proxy (Shadowsocks)
What is Shadowsocks?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. Note: Shadowsocks is available in FreedomBox starting with Plinth version 0.18.
Using the Shadowsocks client?The current implementation of Shadowsocks in FreedomBox only supports configuring FreedomBox as a Shadowsocks client. The current use case for Shadowsocks is as follows: Shadowsocks client (FreedomBox) is in a region where some parts of the Internet are blocked or censored. Shadowsocks server is in a different region, which doesn't have these blocks. The FreedomBox provides SOCKS proxy service on the local network for other devices to make use of its Shadowsocks connection. At a future date it will be possible to configure FreedomBox as Shadowsocks server.
Configuring your FreedomBox for the Shadowsocks clientTo enable Shadowsocks, first navigate to the Socks5 Proxy (Shadowsocks) page and install it. Server: the Shadowsocks server is not the FreedomBox IP or URL; rather, it will be another server or VPS that has been configured as a Shadowsocks server. There are also some public Shadowsocks servers listed on the web, but be aware that whoever operates the server can see where requests are going, and any non-encrypted data will be visible to them. To use Shadowsocks after setup, set the SOCKS5 proxy URL in your device, browser or application to Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Snapshots.raw.xml b/doc/Snapshots.raw.xml index a3aa007d0..7e774d59d 100644 --- a/doc/Snapshots.raw.xml +++ b/doc/Snapshots.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Snapshots22018-03-10 15:11:41JosephNuthalapatiFix oversized image12017-11-14 02:24:01JamesValleroynew page for snapshots module
SnapshotsSnapshots allows you to create filesystem snapshots, and rollback the system to a previous snapshot. Note: This feature requires a Btrfs filesystem. All of the FreedomBox stable disk images use Btrfs. Snapshots Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Snapshots22018-03-10 15:11:41JosephNuthalapatiFix oversized image12017-11-14 02:24:01JamesValleroynew page for snapshots module
SnapshotsSnapshots allows you to create filesystem snapshots, and rollback the system to a previous snapshot. Note: This feature requires a Btrfs filesystem. All of the FreedomBox stable disk images use Btrfs. Snapshots Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Storage.raw.xml b/doc/Storage.raw.xml index 81f3e6002..77ce41ebf 100644 --- a/doc/Storage.raw.xml +++ b/doc/Storage.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Storage112018-12-18 00:01:12JamesValleroyfix screenshot parameter102018-12-04 06:20:20JosephNuthalapatiRestrict screenshot width to 800px92018-09-25 06:01:56JosephNuthalapatiUpdate description to match current functionality82018-09-25 05:51:15JosephNuthalapatiReplace screenshot with the latest version72018-03-05 12:17:19JosephNuthalapatiRenamed from 'FreedomBox/Manual/Disks'.62018-03-05 12:16:41JosephNuthalapatiRenaming Disks to Storage52017-04-09 13:45:57JamesValleroyupdate note about issue42017-03-31 20:16:25Drahtseilupdate screenshot with "expand partition"32017-02-10 22:33:01JamesValleroyadd warning about non-functional feature22016-08-31 17:10:11Drahtseilscreenshot12016-08-31 17:09:10DrahtseilDisks creation
StorageStorage allows you to see the storage devices attached to your FreedomBox and their disk space usage. FreedomBox can automatically detect and mount removable media like USB flash drives. They are listed under the Removable Devices section along with an option to eject them. If there is some free space left after the root partition, the option to expand the root partition is also available. This is typically not shown, since expanding the root partition happens automatically when the FreedomBox starts up for the first time. Storage.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Storage112018-12-18 00:01:12JamesValleroyfix screenshot parameter102018-12-04 06:20:20JosephNuthalapatiRestrict screenshot width to 800px92018-09-25 06:01:56JosephNuthalapatiUpdate description to match current functionality82018-09-25 05:51:15JosephNuthalapatiReplace screenshot with the latest version72018-03-05 12:17:19JosephNuthalapatiRenamed from 'FreedomBox/Manual/Disks'.62018-03-05 12:16:41JosephNuthalapatiRenaming Disks to Storage52017-04-09 13:45:57JamesValleroyupdate note about issue42017-03-31 20:16:25Drahtseilupdate screenshot with "expand partition"32017-02-10 22:33:01JamesValleroyadd warning about non-functional feature22016-08-31 17:10:11Drahtseilscreenshot12016-08-31 17:09:10DrahtseilDisks creation
StorageStorage allows you to see the storage devices attached to your FreedomBox and their disk space usage. FreedomBox can automatically detect and mount removable media like USB flash drives. They are listed under the Removable Devices section along with an option to eject them. If there is some free space left after the root partition, the option to expand the root partition is also available. This is typically not shown, since expanding the root partition happens automatically when the FreedomBox starts up for the first time. Storage.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Syncthing.raw.xml b/doc/Syncthing.raw.xml index 505c25d9e..de3fd1af3 100644 --- a/doc/Syncthing.raw.xml +++ b/doc/Syncthing.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Syncthing132019-09-11 15:33:32fioddorCode decoration122019-06-09 11:07:46David Jones112019-06-09 11:00:48David Jonesadded information about syncthing and tor hidden service102018-03-10 04:32:57JosephNuthalapatiFix oversized image92017-10-22 14:57:58Drahtseil82017-10-22 14:57:09DrahtseilSyncthing GUI image72017-10-22 14:54:54DrahtseilSome rewording etc.62017-10-21 14:59:53DrahtseilTitel same as in Plinth GUI; standard footer; some basic restructuring before I will update the docu more in detail52017-04-04 10:39:36JosephNuthalapati42017-03-23 10:54:49JosephNuthalapatiRewrote the section on Syncthing's role in FreedomBox32017-03-23 05:12:13SunilMohanAdapaMinor formatting22017-03-23 05:11:43SunilMohanAdapaAdd note about availability of Syncthing12017-03-23 02:11:00JosephNuthalapatiCreated wiki page for Syncthing
File Synchronization (Syncthing)With Syncthing installed on your FreedomBox, you can synchronize content from other devices to your FreedomBox and vice-versa. For example, you can keep the photos taken on your mobile phone synchronized to your FreedomBox. Note: Syncthing is available in FreedomBox starting with Plinth version 0.14. Users should keep in mind that Syncthing is a peer-to-peer synchronization solution, not a client-server one. This means that the FreedomBox isn't really the server and your other devices clients. They're all devices from Syncthing's perspective. You can use Syncthing to synchronize your files between any of your devices. The advantage that FreedomBox provides is that it is a server that's always running. Suppose you want your photos on your phone to be synchronized to your laptop, if you simply sync the photos to the FreedomBox, the laptop can get them from the FreedomBox whenever it comes online the next time. You don't have to be worried about your other devices being online for synchronization. If your FreedomBox is one of the devices set up with your Syncthing shared folder, you can rest assured that your other devices will eventually get the latest files once they come online. After installation follow the instructions in the getting started of the Syncthing project. Syncthing allows individual folders to be selectively shared with other devices. Devices must be paired up before sharing by scanning QR codes or entering the device ids manually. Syncthing has a discovery service for easily identifying the other devices on the same network having Syncthing installed. In order to access to the web client of the Syncthing instance running on your FreedomBox, use the path /syncthing. This web client is currently only accessible to the users of the FreedomBox that have administrator privileges, though it might be accessible to all FreedomBox users in a future release. Syncthing web interface Syncthing has android apps available on the F-Droid and Google Play app stores. Cross-platform desktop apps are also available. To learn more about Syncthing, please visit their official website and documentation.
Synchronizing over TorSyncThing should automatically sync with your FreedomBox even if it is only accessible as a Tor hidden service. If you would like to proxy your Syncthing client over Tor, set the all_proxy environment variable: For more information, see the Syncthing documentation on using proxies. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Syncthing132019-09-11 15:33:32fioddorCode decoration122019-06-09 11:07:46David Jones112019-06-09 11:00:48David Jonesadded information about syncthing and tor hidden service102018-03-10 04:32:57JosephNuthalapatiFix oversized image92017-10-22 14:57:58Drahtseil82017-10-22 14:57:09DrahtseilSyncthing GUI image72017-10-22 14:54:54DrahtseilSome rewording etc.62017-10-21 14:59:53DrahtseilTitel same as in Plinth GUI; standard footer; some basic restructuring before I will update the docu more in detail52017-04-04 10:39:36JosephNuthalapati42017-03-23 10:54:49JosephNuthalapatiRewrote the section on Syncthing's role in FreedomBox32017-03-23 05:12:13SunilMohanAdapaMinor formatting22017-03-23 05:11:43SunilMohanAdapaAdd note about availability of Syncthing12017-03-23 02:11:00JosephNuthalapatiCreated wiki page for Syncthing
File Synchronization (Syncthing)With Syncthing installed on your FreedomBox, you can synchronize content from other devices to your FreedomBox and vice-versa. For example, you can keep the photos taken on your mobile phone synchronized to your FreedomBox. Note: Syncthing is available in FreedomBox starting with Plinth version 0.14. Users should keep in mind that Syncthing is a peer-to-peer synchronization solution, not a client-server one. This means that the FreedomBox isn't really the server and your other devices clients. They're all devices from Syncthing's perspective. You can use Syncthing to synchronize your files between any of your devices. The advantage that FreedomBox provides is that it is a server that's always running. Suppose you want your photos on your phone to be synchronized to your laptop, if you simply sync the photos to the FreedomBox, the laptop can get them from the FreedomBox whenever it comes online the next time. You don't have to be worried about your other devices being online for synchronization. If your FreedomBox is one of the devices set up with your Syncthing shared folder, you can rest assured that your other devices will eventually get the latest files once they come online. After installation follow the instructions in the getting started of the Syncthing project. Syncthing allows individual folders to be selectively shared with other devices. Devices must be paired up before sharing by scanning QR codes or entering the device ids manually. Syncthing has a discovery service for easily identifying the other devices on the same network having Syncthing installed. In order to access to the web client of the Syncthing instance running on your FreedomBox, use the path /syncthing. This web client is currently only accessible to the users of the FreedomBox that have administrator privileges, though it might be accessible to all FreedomBox users in a future release. Syncthing web interface Syncthing has android apps available on the F-Droid and Google Play app stores. Cross-platform desktop apps are also available. To learn more about Syncthing, please visit their official website and documentation.
Synchronizing over TorSyncThing should automatically sync with your FreedomBox even if it is only accessible as a Tor hidden service. If you would like to proxy your Syncthing client over Tor, set the all_proxy environment variable: For more information, see the Syncthing documentation on using proxies. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/TinyTinyRSS.raw.xml b/doc/TinyTinyRSS.raw.xml index 84c72da98..24ada828e 100644 --- a/doc/TinyTinyRSS.raw.xml +++ b/doc/TinyTinyRSS.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/TinyTinyRSS102018-03-11 03:05:29JosephNuthalapatiFix oversized images92017-10-18 13:51:27JosephNuthalapatiRemove link to source code as this wiki seems to have banned anything that starts with git.tt82017-10-18 13:47:46JosephNuthalapatiAdd importing OPML feeds and link to source code of TT-RSS Android App72017-10-18 12:58:46JosephNuthalapatiAdd documentation for automatic detection of RSS feeds and the Unsubscribe option62017-10-18 12:37:03JosephNuthalapatiAdd screenshots for subscribing to a new RSS feed52017-10-16 12:11:52SunilMohanAdapaMinor styling42017-10-16 12:08:36SunilMohanAdapaAdd information about mobile application32016-12-31 03:49:54JamesValleroyadd screenshot22016-12-31 03:44:56JamesValleroyadd user info12016-09-04 10:18:59Drahtseilstub created
News Feed Reader (Tiny Tiny RSS)Tiny Tiny RSS is a news feed (RSS/Atom) reader and aggregator, designed to allow reading news from any location, while feeling as close to a real desktop application as possible. Any user created through FreedomBox web interface will be able to login and use this app. Each user has their own feeds, state and preferences.
Using the Web InterfaceWhen enabled, Tiny Tiny RSS will be available from /tt-rss path on the web server. Any user created through Plinth will be able to login and use this app. Tiny Tiny RSS
Adding a new feed1. Go to the website you want the RSS feed for and copy the RSS/Atom feed link from it. Selecting feeds 2. Select "Subscribe to feed.." from the Actions dropdown. Subscribe to feed 3. In the dialog box that appears, paste the URL for copied in step 1 and click the Subscribe button. Subscription dialog box Give the application a minute to fetch the feeds after clicking Subscribe. In some websites, the RSS feeds button isn't clearly visible. In that case, you can simply paste the website URL into the Subscribe dialog (step 3) and let TT-RSS automatically detect the RSS feeds on the page. You can try this now with the homepage of WikiNews As you can see in the image below, TT-RSS detected and added the Atom feed of WikiNews to our list of feeds. WikiNews feed added If you don't want to keep this feed, right click on the feed shown in the above image, select Edit feed and click Unsubscribe in the dialog box that appears. Unsubscribe from a feed
Importing your feeds from another feed readerIn your existing feed reader, find an option to Export your feeds to a file. Prefer the OPML file format if you have to choose between multiple formats. Let's say your exported feeds file is called Subscriptions.opml Click on the Actions menu at the top left corner and select Preferences. You will be taken to another page. Select the second tab called Feeds in the top header. Feeds has several sections. The second one is called OPML. Select it. OPML feeds page To import your Subscriptions.opml file into TT-RSS, Click Browse and select the file from your file system Click Import my OPML After importing, you'll be taken to the Feeds section that's above the OPML section in the page. You can see that the feeds from your earlier feed reader are now imported into Tiny Tiny RSS. You can now start using Tiny Tiny RSS as your primary feed reader. In the next section, we will discuss setting up the mobile app, which can let you read your feeds on the go.
Using the Mobile AppThe official Android app from the Tiny Tiny RSS project works with FreedomBox's Tiny Tiny RSS Server. The older TTRSS-Reader application is known not to work. The official Android app is unfortunately only available on the Google Play Store and not on F-Droid. You can still obtain the source code and build the apk file yourself. To configure, first install the application, then in the setting page, set URL as . Set your user name and password in the Login details as well as HTTP Authentication details. If your FreedomBox does not have a valid HTTPS certificate, then in settings request allowing any SSL certificate and any host. Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/TinyTinyRSS102018-03-11 03:05:29JosephNuthalapatiFix oversized images92017-10-18 13:51:27JosephNuthalapatiRemove link to source code as this wiki seems to have banned anything that starts with git.tt82017-10-18 13:47:46JosephNuthalapatiAdd importing OPML feeds and link to source code of TT-RSS Android App72017-10-18 12:58:46JosephNuthalapatiAdd documentation for automatic detection of RSS feeds and the Unsubscribe option62017-10-18 12:37:03JosephNuthalapatiAdd screenshots for subscribing to a new RSS feed52017-10-16 12:11:52SunilMohanAdapaMinor styling42017-10-16 12:08:36SunilMohanAdapaAdd information about mobile application32016-12-31 03:49:54JamesValleroyadd screenshot22016-12-31 03:44:56JamesValleroyadd user info12016-09-04 10:18:59Drahtseilstub created
News Feed Reader (Tiny Tiny RSS)Tiny Tiny RSS is a news feed (RSS/Atom) reader and aggregator, designed to allow reading news from any location, while feeling as close to a real desktop application as possible. Any user created through FreedomBox web interface will be able to login and use this app. Each user has their own feeds, state and preferences.
Using the Web InterfaceWhen enabled, Tiny Tiny RSS will be available from /tt-rss path on the web server. Any user created through Plinth will be able to login and use this app. Tiny Tiny RSS
Adding a new feed1. Go to the website you want the RSS feed for and copy the RSS/Atom feed link from it. Selecting feeds 2. Select "Subscribe to feed.." from the Actions dropdown. Subscribe to feed 3. In the dialog box that appears, paste the URL for copied in step 1 and click the Subscribe button. Subscription dialog box Give the application a minute to fetch the feeds after clicking Subscribe. In some websites, the RSS feeds button isn't clearly visible. In that case, you can simply paste the website URL into the Subscribe dialog (step 3) and let TT-RSS automatically detect the RSS feeds on the page. You can try this now with the homepage of WikiNews As you can see in the image below, TT-RSS detected and added the Atom feed of WikiNews to our list of feeds. WikiNews feed added If you don't want to keep this feed, right click on the feed shown in the above image, select Edit feed and click Unsubscribe in the dialog box that appears. Unsubscribe from a feed
Importing your feeds from another feed readerIn your existing feed reader, find an option to Export your feeds to a file. Prefer the OPML file format if you have to choose between multiple formats. Let's say your exported feeds file is called Subscriptions.opml Click on the Actions menu at the top left corner and select Preferences. You will be taken to another page. Select the second tab called Feeds in the top header. Feeds has several sections. The second one is called OPML. Select it. OPML feeds page To import your Subscriptions.opml file into TT-RSS, Click Browse and select the file from your file system Click Import my OPML After importing, you'll be taken to the Feeds section that's above the OPML section in the page. You can see that the feeds from your earlier feed reader are now imported into Tiny Tiny RSS. You can now start using Tiny Tiny RSS as your primary feed reader. In the next section, we will discuss setting up the mobile app, which can let you read your feeds on the go.
Using the Mobile AppThe official Android app from the Tiny Tiny RSS project works with FreedomBox's Tiny Tiny RSS Server. The older TTRSS-Reader application is known not to work. The official Android app is unfortunately only available on the Google Play Store and not on F-Droid. You can still obtain the source code and build the apk file yourself. To configure, first install the application, then in the setting page, set URL as . Set your user name and password in the Login details as well as HTTP Authentication details. If your FreedomBox does not have a valid HTTPS certificate, then in settings request allowing any SSL certificate and any host. Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Tor.raw.xml b/doc/Tor.raw.xml index fd7df3ac1..86e93965a 100644 --- a/doc/Tor.raw.xml +++ b/doc/Tor.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Tor192019-06-09 10:47:56David Jonesadded two more apps to list182019-05-22 17:10:34David JonesCorrected formatting; added transition sentence.172019-05-22 17:05:45David JonesStarted a list of apps accessible via Tor162018-12-30 19:13:56Drahtseilrelay requirements152018-03-19 06:27:56JosephNuthalapatiAdd section on circumventing tor censorship142018-03-19 06:25:43JosephNuthalapatiAdd section on circumventing tor censorship132017-01-07 16:00:24JamesValleroyadd image122017-01-07 15:21:27JamesValleroyplural112016-12-31 02:19:46JamesValleroymention ssh102016-12-31 02:19:03JamesValleroyadd relay info92016-12-23 18:31:29JamesValleroyundo outline level change82016-12-23 18:30:06JamesValleroymove down outline level72016-04-10 07:14:17PhilippeBaretAdded bottom navigation link62015-12-15 16:54:58PhilippeBaretText finishing52015-12-15 16:40:11PhilippeBaret42015-12-15 16:34:38PhilippeBaretAdded Tor definition32015-09-13 14:54:59SunilMohanAdapaDemote headings one level for inclusion into manual22015-09-13 14:53:54SunilMohanAdapaAdd FreedomBox category and portal12015-09-12 15:55:05JamesValleroycreate tor page
Anonymity Network (Tor)
What is Tor?Tor is a network of servers operated by volunteers. It allows users of these servers to improve their privacy and security while surfing on the Internet. You and your friends are able to access to your FreedomBox via Tor network without revealing its IP address. Activating Tor application on your FreedomBox, you will be able to offer remote services (chat, wiki, file sharing, etc...) without showing your location. This application will give you a better protection than a public web server because you will be less exposed to intrusive people on the web.
Using Tor to browse anonymouslyTor Browser is the recommended way to browse the web using Tor. You can download the Tor Browser from and follow the instructions on that site to install and run it.
Using Tor Hidden Service to access your FreedomBoxTor Hidden Service provides a way to access your FreedomBox, even if it's behind a router, firewall, or carrier-grade NAT (i.e., your Internet Service Provider does not provide a public IPv4 address for your router). To enable Tor Hidden Service, first navigate to the Anonymity Network (Tor) page. (If you don't see it, click on the FreedomBox logo at the top-left of the page, to go to the main Apps page.) On the Anonymity Network (Tor) page, under Configuration, check "Enable Tor Hidden Service", then press the Update setup button. Tor will be reconfigured and restarted. After a while, the page will refresh and under Status, you will see a table listing the Hidden Service .onion address. Copy the entire address (ending in .onion) and paste it into the Tor Browser's address field, and you should be able to access your FreedomBox. (You may see a certificate warning because FreedomBox has a self-signed certificate.) Tor Browser - Plinth Currently only HTTP (port 80), HTTPS (port 443), and SSH (port 22) are accessible through the Tor Hidden Service configured on the FreedomBox.
Apps accessible via TorThe following apps can be accessed over Tor. Note that this list is not exhaustive. Calendar and Addressbook (Radicale) File Synchronization (Syncthing) Web Search (Searx) Wiki (MediaWiki) Wiki and Blog (Ikiwiki)
Running a Tor relayWhen Tor is installed, it is configured by default to run as a bridge relay. The relay or bridge option can be disabled through the Tor configuration page in Plinth. At the bottom of the Tor page in Plinth, there is a list of ports used by the Tor relay. If your FreedomBox is behind a router, you will need to configure port forwarding on your router so that these ports can be reached from the public Internet. The requirements to run a relay are listed in the Tor Relay Guide. In short, it is recommended that a relay has at least 16 Mbit/s (Mbps) upload and download bandwidth available for Tor. More is better. required that a Tor relay be allowed to use a minimum of 100 GByte of outbound and of incoming traffic per month. recommended that a <40 Mbit/s non-exit relay should have at least 512 MB of RAM available; A relay faster than 40 Mbit/s should have at least 1 GB of RAM.
Using Tor SOCKS port (advanced)FreedomBox provides a Tor SOCKS port that other applications can connect to, in order to route their traffic over the Tor network. This port is accessible on any interfaces configured in the internal firewall zone. To configure the application, set SOCKS Host to the internal network connection's IP address, and set the SOCKS Port to 9050.
Circumventing Tor censorshipIf your ISP is trying to block Tor traffic, you can use tor bridge relays to connect to the tor network. 1. Get the bridge configuration from the Tor BridgeDB Tor BridgeDB 2. Add the lines to your FreedomBox Tor configuration as show below. Tor Configuration Page Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Tor192019-06-09 10:47:56David Jonesadded two more apps to list182019-05-22 17:10:34David JonesCorrected formatting; added transition sentence.172019-05-22 17:05:45David JonesStarted a list of apps accessible via Tor162018-12-30 19:13:56Drahtseilrelay requirements152018-03-19 06:27:56JosephNuthalapatiAdd section on circumventing tor censorship142018-03-19 06:25:43JosephNuthalapatiAdd section on circumventing tor censorship132017-01-07 16:00:24JamesValleroyadd image122017-01-07 15:21:27JamesValleroyplural112016-12-31 02:19:46JamesValleroymention ssh102016-12-31 02:19:03JamesValleroyadd relay info92016-12-23 18:31:29JamesValleroyundo outline level change82016-12-23 18:30:06JamesValleroymove down outline level72016-04-10 07:14:17PhilippeBaretAdded bottom navigation link62015-12-15 16:54:58PhilippeBaretText finishing52015-12-15 16:40:11PhilippeBaret42015-12-15 16:34:38PhilippeBaretAdded Tor definition32015-09-13 14:54:59SunilMohanAdapaDemote headings one level for inclusion into manual22015-09-13 14:53:54SunilMohanAdapaAdd FreedomBox category and portal12015-09-12 15:55:05JamesValleroycreate tor page
Anonymity Network (Tor)
What is Tor?Tor is a network of servers operated by volunteers. It allows users of these servers to improve their privacy and security while surfing on the Internet. You and your friends are able to access to your FreedomBox via Tor network without revealing its IP address. Activating Tor application on your FreedomBox, you will be able to offer remote services (chat, wiki, file sharing, etc...) without showing your location. This application will give you a better protection than a public web server because you will be less exposed to intrusive people on the web.
Using Tor to browse anonymouslyTor Browser is the recommended way to browse the web using Tor. You can download the Tor Browser from and follow the instructions on that site to install and run it.
Using Tor Hidden Service to access your FreedomBoxTor Hidden Service provides a way to access your FreedomBox, even if it's behind a router, firewall, or carrier-grade NAT (i.e., your Internet Service Provider does not provide a public IPv4 address for your router). To enable Tor Hidden Service, first navigate to the Anonymity Network (Tor) page. (If you don't see it, click on the FreedomBox logo at the top-left of the page, to go to the main Apps page.) On the Anonymity Network (Tor) page, under Configuration, check "Enable Tor Hidden Service", then press the Update setup button. Tor will be reconfigured and restarted. After a while, the page will refresh and under Status, you will see a table listing the Hidden Service .onion address. Copy the entire address (ending in .onion) and paste it into the Tor Browser's address field, and you should be able to access your FreedomBox. (You may see a certificate warning because FreedomBox has a self-signed certificate.) Tor Browser - Plinth Currently only HTTP (port 80), HTTPS (port 443), and SSH (port 22) are accessible through the Tor Hidden Service configured on the FreedomBox.
Apps accessible via TorThe following apps can be accessed over Tor. Note that this list is not exhaustive. Calendar and Addressbook (Radicale) File Synchronization (Syncthing) Web Search (Searx) Wiki (MediaWiki) Wiki and Blog (Ikiwiki)
Running a Tor relayWhen Tor is installed, it is configured by default to run as a bridge relay. The relay or bridge option can be disabled through the Tor configuration page in Plinth. At the bottom of the Tor page in Plinth, there is a list of ports used by the Tor relay. If your FreedomBox is behind a router, you will need to configure port forwarding on your router so that these ports can be reached from the public Internet. The requirements to run a relay are listed in the Tor Relay Guide. In short, it is recommended that a relay has at least 16 Mbit/s (Mbps) upload and download bandwidth available for Tor. More is better. required that a Tor relay be allowed to use a minimum of 100 GByte of outbound and of incoming traffic per month. recommended that a <40 Mbit/s non-exit relay should have at least 512 MB of RAM available; A relay faster than 40 Mbit/s should have at least 1 GB of RAM.
Using Tor SOCKS port (advanced)FreedomBox provides a Tor SOCKS port that other applications can connect to, in order to route their traffic over the Tor network. This port is accessible on any interfaces configured in the internal firewall zone. To configure the application, set SOCKS Host to the internal network connection's IP address, and set the SOCKS Port to 9050.
Circumventing Tor censorshipIf your ISP is trying to block Tor traffic, you can use tor bridge relays to connect to the tor network. 1. Get the bridge configuration from the Tor BridgeDB Tor BridgeDB 2. Add the lines to your FreedomBox Tor configuration as show below. Tor Configuration Page Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Transmission.raw.xml b/doc/Transmission.raw.xml index cb81eb757..168e5caa2 100644 --- a/doc/Transmission.raw.xml +++ b/doc/Transmission.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Transmission112019-09-04 09:19:59fioddorSecurity recommendation102019-03-22 07:08:45JosephNuthalapatiAdd tips on how to transfer downloads from FreedomBox to local PC92016-12-31 02:07:57JamesValleroyadd login info82016-12-30 19:20:51JamesValleroyreword72016-12-30 19:13:09JamesValleroyadd intro paragraph62016-12-30 18:59:46JamesValleroyno space in "BitTorrent"52016-12-26 18:00:44JamesValleroyadd screenshot42016-09-01 19:04:35Drahtseiladapted title to Plinth wording32016-04-10 07:27:22PhilippeBaretAdded bottom navigation link22015-12-15 20:42:02PhilippeBaret12015-12-15 18:23:33PhilippeBaretAdded Transmission page and definition
BitTorrent (Transmission)
What is Transmission ?BitTorrent is a communications protocol using peer-to-peer (P2P) file sharing. It is not anonymous; you should assume that others can see what files you are sharing. There are two BitTorrent web clients available in FreedomBox: Transmission and Deluge. They have similar features, but you may prefer one over the other. Transmission is a lightweight BitTorrent client that is well known for its simplicity and a default configuration that "Just Works".
ScreenshotTransmission Web Interface
Using TransmissionAfter installing Transmission, it can be accessed at https://<your freedombox>/transmission. When you try to access this page, you will be required to login with a username and password. The default for both is "transmission". You can and should change the username and password using the configuration form in Plinth.
Known IssuesThe initial password is shown in the Plinth configuration form in a hashed format. This prevents it from being read or copied. However, after the password is changed, it is shown directly, without hashing.
Tips
Transferring Downloads from the FreedomBoxTransmission's downloads directory can be added as a shared folder in the "Sharing" app. You can then access your downloads from this shared folder using a web browser. (Advanced) If you have the ssh access to your FreedomBox, you can use sftp to browse the downloads directory using a suitable file manager or web browser (e.g. dolphin or Konqueror). Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Transmission112019-09-04 09:19:59fioddorSecurity recommendation102019-03-22 07:08:45JosephNuthalapatiAdd tips on how to transfer downloads from FreedomBox to local PC92016-12-31 02:07:57JamesValleroyadd login info82016-12-30 19:20:51JamesValleroyreword72016-12-30 19:13:09JamesValleroyadd intro paragraph62016-12-30 18:59:46JamesValleroyno space in "BitTorrent"52016-12-26 18:00:44JamesValleroyadd screenshot42016-09-01 19:04:35Drahtseiladapted title to Plinth wording32016-04-10 07:27:22PhilippeBaretAdded bottom navigation link22015-12-15 20:42:02PhilippeBaret12015-12-15 18:23:33PhilippeBaretAdded Transmission page and definition
BitTorrent (Transmission)
What is Transmission ?BitTorrent is a communications protocol using peer-to-peer (P2P) file sharing. It is not anonymous; you should assume that others can see what files you are sharing. There are two BitTorrent web clients available in FreedomBox: Transmission and Deluge. They have similar features, but you may prefer one over the other. Transmission is a lightweight BitTorrent client that is well known for its simplicity and a default configuration that "Just Works".
ScreenshotTransmission Web Interface
Using TransmissionAfter installing Transmission, it can be accessed at https://<your freedombox>/transmission. When you try to access this page, you will be required to login with a username and password. The default for both is "transmission". You can and should change the username and password using the configuration form in Plinth.
Known IssuesThe initial password is shown in the Plinth configuration form in a hashed format. This prevents it from being read or copied. However, after the password is changed, it is shown directly, without hashing.
Tips
Transferring Downloads from the FreedomBoxTransmission's downloads directory can be added as a shared folder in the "Sharing" app. You can then access your downloads from this shared folder using a web browser. (Advanced) If you have the ssh access to your FreedomBox, you can use sftp to browse the downloads directory using a suitable file manager or web browser (e.g. dolphin or Konqueror). Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Upgrades.raw.xml b/doc/Upgrades.raw.xml index 02e06adb8..5db2bfed3 100644 --- a/doc/Upgrades.raw.xml +++ b/doc/Upgrades.raw.xml @@ -9,4 +9,4 @@ Password: # apt -f install # unattended-upgrade --debug # apt install freedombox -# apt update]]>If apt-get update asks for a confirmation to change Codename or other release information, confirm yes. If during update of freedombox package, if a question about overwriting configuration files is asked, answer to install new configuration files from the latest version of the package. This process will upgrade only packages that don't require configuration file questions (except for freedombox package). After this, let FreedomBox handle the upgrade of remaining packages. Be patient while new releases of FreedomBox are made to handle packages that require manual intervention. If you want to go beyond the recommendation to upgrade all the packages on your FreedomBox and if you are really sure about handling the configuration changes for packages yourself, run the following command: InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file +# apt update]]>If apt-get update asks for a confirmation to change Codename or other release information, confirm yes. If during update of freedombox package, if a question about overwriting configuration files is asked, answer to install new configuration files from the latest version of the package. This process will upgrade only packages that don't require configuration file questions (except for freedombox package). After this, let FreedomBox handle the upgrade of remaining packages. Be patient while new releases of FreedomBox are made to handle packages that require manual intervention. If you want to go beyond the recommendation to upgrade all the packages on your FreedomBox and if you are really sure about handling the configuration changes for packages yourself, run the following command: InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file diff --git a/doc/Users.raw.xml b/doc/Users.raw.xml index e8b27ce84..3c15f9604 100644 --- a/doc/Users.raw.xml +++ b/doc/Users.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Users82019-07-29 22:34:11JamesValleroybetter wording72019-07-29 22:22:17JamesValleroyremove "Plinth"62019-07-29 22:10:39JamesValleroymention which releases known issue applies to52019-07-29 22:08:21JamesValleroyadd more supported groups42017-01-14 20:13:01JamesValleroyadd known issue32016-12-31 04:15:09JamesValleroyreword22016-09-01 19:21:25Drahtseiladapted title to Plinth wording12016-08-21 16:48:45DrahtseilCreated Users
Users and GroupsYou can grant access to your FreedomBox for other users. Provide the Username with a password and assign a group to it. Currently the groups admin bit-torrent ed2k feed-reader syncthing web-search wiki are supported. The user will be able to log in to services that support single sign-on through LDAP, if they are in the appropriate group. Users in the admin group will be able to log in to all services. They can also log in to the system through SSH and have administrative privileges (sudo). A user's groups can also be changed later-on. It is also possible to set an SSH public key which will allow this user to securely log in to the system without using a password. You may enter multiple keys, one on each line. Blank lines and lines starting with # will be ignored. A user's account can be deactivated, which will temporarily disable the account.
Known IssuesIn Debian Stretch, the FreedomBox web interface does not distinguish between users and administrators. Every user added will have full access to the web interface. This issue is fixed in Debian Buster and later. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Users82019-07-29 22:34:11JamesValleroybetter wording72019-07-29 22:22:17JamesValleroyremove "Plinth"62019-07-29 22:10:39JamesValleroymention which releases known issue applies to52019-07-29 22:08:21JamesValleroyadd more supported groups42017-01-14 20:13:01JamesValleroyadd known issue32016-12-31 04:15:09JamesValleroyreword22016-09-01 19:21:25Drahtseiladapted title to Plinth wording12016-08-21 16:48:45DrahtseilCreated Users
Users and GroupsYou can grant access to your FreedomBox for other users. Provide the Username with a password and assign a group to it. Currently the groups admin bit-torrent ed2k feed-reader syncthing web-search wiki are supported. The user will be able to log in to services that support single sign-on through LDAP, if they are in the appropriate group. Users in the admin group will be able to log in to all services. They can also log in to the system through SSH and have administrative privileges (sudo). A user's groups can also be changed later-on. It is also possible to set an SSH public key which will allow this user to securely log in to the system without using a password. You may enter multiple keys, one on each line. Blank lines and lines starting with # will be ignored. A user's account can be deactivated, which will temporarily disable the account.
Known IssuesIn Debian Stretch, the FreedomBox web interface does not distinguish between users and administrators. Every user added will have full access to the web interface. This issue is fixed in Debian Buster and later. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/ejabberd.raw.xml b/doc/ejabberd.raw.xml index d57da769f..eb897fecb 100644 --- a/doc/ejabberd.raw.xml +++ b/doc/ejabberd.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/ejabberd122019-03-01 17:43:12JosephNuthalapatiFix PageKite url112019-02-27 00:06:38JamesValleroymake title consistent with FreedomBox interface102018-03-02 13:01:38JosephNuthalapatiConsistent naming conventions92017-01-07 17:42:27JamesValleroyadd note about service restart82017-01-02 13:48:30JamesValleroyadd port forwarding info72016-12-31 03:11:19JamesValleroyclarify62016-12-31 03:10:19JamesValleroymention web client52016-12-31 02:35:52JamesValleroyadd security info42016-09-04 10:31:37Drahtseiladded links32016-04-10 07:18:35PhilippeBaretAdded bottom navigation link22015-12-15 18:37:29PhilippeBaretAdded definition to Chat server page12015-09-20 23:52:11JamesValleroyadd xmpp page
Chat Server (ejabberd)
What is XMPP?XMPP is a federated protocol for Instant Messaging. This means that users who have accounts on one server, can talk to users that are on another server. XMPP can also be used for voice and video calls, if supported by the clients. With XMPP, there are two ways that conversations can be secured: TLS: This secures the connection between the client and server, or between two servers. This should be supported by all clients and is highly recommended. End-to-end: This secures the messages sent from one client to another, so that even the server cannot see the contents. The latest and most convenient protocol is called OMEMO, but it is only supported by a few clients. There is another protocol called OTR that may be supported by some clients that lack OMEMO support. Both clients must support the same protocol for it to work.
Setting the Domain NameFor XMPP to work, your FreedomBox needs to have a Domain Name that can be accessed over the public Internet. You can read more about obtaining a Domain Name in the Dynamic DNS section of this manual. Once you have a Domain Name, you can tell your FreedomBox to use it by setting the Domain Name in the System Configuration. Note: After changing your Domain Name, the Chat Server (XMPP) page may show that the service is not running. After a minute or so, it should be up and running again. Please note that PageKite does not support the XMPP protocol at this time.
Registering XMPP users through SSOCurrently, all users created through Plinth will be able to login to the XMPP server. You can add new users through the System Users and Groups module. It does not matter which Groups are selected for the new user.
Using the web clientAfter the XMPP module install completes, the JSXC web client for XMPP can be accessed at https://<your freedombox>/plinth/apps/xmpp/jsxc/. It will automatically check the BOSH server connection to the configured domain name.
Using a desktop or mobile clientXMPP clients are available for various desktop and mobile platforms.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for XMPP: TCP 5222 (client-to-server) TCP 5269 (server-to-server) Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, October 12th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/ejabberd122019-03-01 17:43:12JosephNuthalapatiFix PageKite url112019-02-27 00:06:38JamesValleroymake title consistent with FreedomBox interface102018-03-02 13:01:38JosephNuthalapatiConsistent naming conventions92017-01-07 17:42:27JamesValleroyadd note about service restart82017-01-02 13:48:30JamesValleroyadd port forwarding info72016-12-31 03:11:19JamesValleroyclarify62016-12-31 03:10:19JamesValleroymention web client52016-12-31 02:35:52JamesValleroyadd security info42016-09-04 10:31:37Drahtseiladded links32016-04-10 07:18:35PhilippeBaretAdded bottom navigation link22015-12-15 18:37:29PhilippeBaretAdded definition to Chat server page12015-09-20 23:52:11JamesValleroyadd xmpp page
Chat Server (ejabberd)
What is XMPP?XMPP is a federated protocol for Instant Messaging. This means that users who have accounts on one server, can talk to users that are on another server. XMPP can also be used for voice and video calls, if supported by the clients. With XMPP, there are two ways that conversations can be secured: TLS: This secures the connection between the client and server, or between two servers. This should be supported by all clients and is highly recommended. End-to-end: This secures the messages sent from one client to another, so that even the server cannot see the contents. The latest and most convenient protocol is called OMEMO, but it is only supported by a few clients. There is another protocol called OTR that may be supported by some clients that lack OMEMO support. Both clients must support the same protocol for it to work.
Setting the Domain NameFor XMPP to work, your FreedomBox needs to have a Domain Name that can be accessed over the public Internet. You can read more about obtaining a Domain Name in the Dynamic DNS section of this manual. Once you have a Domain Name, you can tell your FreedomBox to use it by setting the Domain Name in the System Configuration. Note: After changing your Domain Name, the Chat Server (XMPP) page may show that the service is not running. After a minute or so, it should be up and running again. Please note that PageKite does not support the XMPP protocol at this time.
Registering XMPP users through SSOCurrently, all users created through Plinth will be able to login to the XMPP server. You can add new users through the System Users and Groups module. It does not matter which Groups are selected for the new user.
Using the web clientAfter the XMPP module install completes, the JSXC web client for XMPP can be accessed at https://<your freedombox>/plinth/apps/xmpp/jsxc/. It will automatically check the BOSH server connection to the configured domain name.
Using a desktop or mobile clientXMPP clients are available for various desktop and mobile platforms.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for XMPP: TCP 5222 (client-to-server) TCP 5269 (server-to-server) Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, October 27th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/freedombox-manual.raw.xml b/doc/freedombox-manual.raw.xml index fbb1890ae..4dd04136e 100644 --- a/doc/freedombox-manual.raw.xml +++ b/doc/freedombox-manual.raw.xml @@ -607,7 +607,7 @@ - On accessing Plinth your browser will warn you that it communicates securely but that it regards the security certificate for doing so as invalid. This is a fact you need to accept because the certificate is auto generated on the box and therefore "self-signed" (the browser might also use words such as "untrusted", "not private", "privacy error" or "unknown issuer/authority"). Telling your browser that you are aware of this might involve pressing buttons such as "I understand the Risks", "proceed to ... (unsafe)" or "Add exception". After installation this certificate can be changed to a normal one using the Let's Encrypt option. + On accessing FreedomBox's web interface (Plinth) your browser will warn you that it communicates securely but that it regards the security certificate for doing so as invalid. This is a fact you need to accept because the certificate is auto generated on the box and therefore "self-signed" (the browser might also use words such as "untrusted", "not private", "privacy error" or "unknown issuer/authority"). Telling your browser that you are aware of this might involve pressing buttons such as "I understand the Risks", "proceed to ... (unsafe)" or "Add exception". After installation this certificate can be changed to a normal one using the Let's Encrypt option. @@ -674,7 +674,7 @@ - After completing the form, you will be logged in to Plinth and able to access apps and configuration through the interface. + After completing the form, you will be logged in to FreedomBox's web interface (Plinth) and able to access apps and configuration through the interface. @@ -697,7 +697,7 @@ Finding your way around
Front page - The front page is the page that you will see when accessing the web root of your FreedomBox. You can also access it by clicking the FreedomBox logo in the top-left corner of the Plinth web interface. + The front page is the page that you will see when accessing the web root of your FreedomBox. You can also access it by clicking the FreedomBox logo in the top-left corner of the FreedomBox's web interface (Plinth). The front page includes shortcuts to apps that have been installed and are enabled. For web apps, clicking the shortcut will take you directly to the app's web page. For other services, clicking the shortcut will show more information about the service. @@ -5438,7 +5438,7 @@ https://exampletorhs.onion/_cockpit/]]> DNS - 53/tdp + 53/udp @@ -6563,8 +6563,7 @@ nmcli con modify "" connection.zone internal]]>
Security - When this option is enabled, only users in the "admin" group will be able to log in to console or via SSH. Console users may be able to access some services without further authorization. - You can define the group of the users in the Users section. + When the Restrict console logins option is enabled, only users in the admin group will be able to log in via console, secure shell (SSH) or graphical login. When this option is disabled, any user with an account on FreedomBox will be able to log in. They may be able to access some services without further authorization. This option should only be disabled if all the users of the system are well trusted. If you wish to use your FreedomBox machine also as a desktop and allow non-admin users to login via GUI, this option must be disabled. You can define the list of users belonging to admin group in the Users section. @@ -6713,7 +6712,7 @@ Password:
Hardware FreedomBox is designed to be the software for a consumer electronics device that is easy to setup, maintain and use. The project does not aim to create a custom hardware device ourselves, but instead we intend to partner with hardware vendors to build FreedomBox devices and also support existing hardware. - In addition to supporting various single board computers and other devices, FreedomBox also supports being installed in a virtual machine. Also, any Debian machine can be turned into a FreedomBox by installing the freedombox-setup package. See the manual for more details. + In addition to supporting various single board computers and other devices, FreedomBox also supports being installed in a virtual machine. Also, any Debian machine can be turned into a FreedomBox by installing the freedombox package. See the manual page for installing on Debian for more details.
Recommended Hardware On April 22nd, 2019, the FreedomBox Foundation announced the sales of the Pioneer Edition FreedomBox Home Server Kits. This is the recommended pre-installed hardware for all users who don't wish to build their own FreedomBox by choosing the right components, downloading the image and preparing an SD card with FreedomBox. @@ -9278,6 +9277,12 @@ $ sudo umount /tmp/vbox-root1 Installing FreedomBox changes your Debian system in many important ways. This includes installing a firewall and regenerating server certificates. It is hence recommended that you install FreedomBox on a fresh Debian installation instead of an existing setup. + + + Console/GUI logins for non-admin users will be disabled + + After FreedomBox is fully setup, your system will no longer allow users not belonging to the admin group to log in to the system via console, secure shell (SSH) or graphical login. This behaviour can be disabled from the Security page. Use the administrator account created during FreedomBox first boot for console logins and add further user accounts to admin group, if necessary. +
Installing on Debian 10.0 (Buster) or newer Check the Troubleshooting section below, for any tips or workarounds that might help during the install. @@ -9369,8 +9374,10 @@ iface lo inet loopback]]> ipv4.ignore-auto-dns yes \ ipv6.method ignore]]> + + ..with the block capitals and somedomain.com replaced with your actual address, mask description, gateway and dns server details. + - ...with the block capitals and somedomain.com replaced with your actual address, mask description, gateway and dns server details.
@@ -9865,6 +9872,35 @@ wget https://www.thinkpenguin.com/files/ath9k_firmware_free-version/htc_7010.fw]
Release Notes The following are the release notes for each FreedomBox version. +
+ FreedomBox 19.19 (2019-10-21) + + + gitweb: New app for simple git hosting + + + ikiwiki: Allow full Unicode text in wiki/blog title names + + + users: reload Apache2 to flush LDAP cache after user operations + + + ssh: Show server fingerprints in SSH page + + + frontpage: Show public shortcuts to all users regardless of group + + + ikiwiki: Remove extra create button when no wiki/blog is present + + + quassel: Add Let's Encrypt component for certificates + + + Update translations for Czech, French, Bulgarian, Dutch, German, and Norwegian Bokmål + + +
FreedomBox 19.18 (2019-10-07) diff --git a/plinth/__init__.py b/plinth/__init__.py index f5f8aa77b..b97511f8f 100644 --- a/plinth/__init__.py +++ b/plinth/__init__.py @@ -18,4 +18,4 @@ Package init file. """ -__version__ = '19.18' +__version__ = '19.19' diff --git a/plinth/app.py b/plinth/app.py index 6f604680c..085dc7dad 100644 --- a/plinth/app.py +++ b/plinth/app.py @@ -1,5 +1,5 @@ # -# This file is part of Plinth. +# This file is part of FreedomBox. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/plinth/frontpage.py b/plinth/frontpage.py index 1feeb53ab..664249d6e 100644 --- a/plinth/frontpage.py +++ b/plinth/frontpage.py @@ -78,7 +78,9 @@ class Shortcut(app.FollowerComponent): 'allowed_groups' specifies a list of user groups to whom this shortcut must be shown. All other user groups will not be shown this shortcut on - the frontpage. + the frontpage. If 'login_required' is False, this property has not + effect and the shortcut is shown to all the users including anonymous + users. """ super().__init__(component_id) @@ -131,7 +133,7 @@ class Shortcut(app.FollowerComponent): shortcuts = {} for shortcut_id, shortcut in cls._all_shortcuts.items(): - if shortcut.allowed_groups and \ + if shortcut.login_required and shortcut.allowed_groups and \ user_groups.isdisjoint(shortcut.allowed_groups): continue diff --git a/plinth/locale/bg/LC_MESSAGES/django.po b/plinth/locale/bg/LC_MESSAGES/django.po index 1154c541d..278dca0cd 100644 --- a/plinth/locale/bg/LC_MESSAGES/django.po +++ b/plinth/locale/bg/LC_MESSAGES/django.po @@ -7,14 +7,17 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" +"PO-Revision-Date: 2019-10-12 14:52+0000\n" +"Last-Translator: Nevena Mircheva \n" +"Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.9-dev\n" #: plinth/action_utils.py:298 #, python-brace-format @@ -29,77 +32,83 @@ msgstr "" #: plinth/action_utils.py:397 #, python-brace-format msgid "Access URL {url} on tcp{kind}" -msgstr "" +msgstr "Достъп до URL {url} на tcp{kind}" #: plinth/action_utils.py:401 #, python-brace-format msgid "Access URL {url}" -msgstr "" +msgstr "Достъп до URL {url}" #: plinth/action_utils.py:432 #, python-brace-format msgid "Connect to {host}:{port}" -msgstr "" +msgstr "Свързване с {host}:{port}" #: plinth/action_utils.py:434 #, python-brace-format msgid "Cannot connect to {host}:{port}" -msgstr "" +msgstr "Не може да се свърже с {host}:{port}" #: plinth/context_processors.py:37 plinth/views.py:61 msgid "FreedomBox" -msgstr "" +msgstr "FreedomBox" #: plinth/forms.py:38 msgid "Enable application" msgstr "" #: plinth/forms.py:54 +#, fuzzy msgid "Select a domain name to be used with this application" -msgstr "" +msgstr "Изберете име на домейн, което да се ползва с това приложение" #: plinth/forms.py:56 +#, fuzzy msgid "" "Warning! The application may not work properly if domain name is changed " "later." msgstr "" +"Внимание! Приложението може да не работи коректно, ако по-късно се промени " +"името на домейна." #: plinth/forms.py:64 msgid "Language" -msgstr "" +msgstr "Език" #: plinth/forms.py:65 +#, fuzzy msgid "Language to use for presenting this web interface" -msgstr "" +msgstr "Език, на който ще се показва този уеб интерфейс" #: plinth/forms.py:72 +#, fuzzy msgid "Use the language preference set in the browser" -msgstr "" +msgstr "Използване езиковите настройки на браузъра" #: plinth/middleware.py:73 plinth/templates/setup.html:57 msgid "Application installed." -msgstr "" +msgstr "Приложението е инсталирано." #: plinth/middleware.py:79 #, python-brace-format msgid "Error installing application: {string} {details}" -msgstr "" +msgstr "Грешка при инсталиране на приложението: {string} {details}" #: plinth/middleware.py:83 #, python-brace-format msgid "Error installing application: {error}" -msgstr "" +msgstr "Грешка при инсталиране на приложението: {error}" #: plinth/modules/apache/__init__.py:51 #: plinth/modules/monkeysphere/templates/monkeysphere.html:88 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:60 msgid "Web Server" -msgstr "" +msgstr "Уеб Сървър" #: plinth/modules/apache/__init__.py:58 #, python-brace-format msgid "{box_name} Web Interface (Plinth)" -msgstr "" +msgstr "{box_name} Уеб Интерфейс (Plinth)" #: plinth/modules/avahi/__init__.py:46 msgid "Service Discovery" @@ -331,6 +340,7 @@ msgid "Create Location" msgstr "" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "" @@ -339,7 +349,7 @@ msgid "Delete this archive permanently?" msgstr "" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -356,6 +366,7 @@ msgstr "" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "" @@ -1392,6 +1403,140 @@ msgstr "" msgid "Setup Complete" msgstr "" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +msgid "Name of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +msgid "Private repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +msgid "Invalid repository name." +msgstr "" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +msgid "Create repository" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +msgid "Manage Repositories" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, python-format +msgid "Delete repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +msgid "Edit repository" +msgstr "" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1745,21 +1890,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1777,16 +1918,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1802,11 +1939,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1827,14 +1959,14 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 +#: plinth/modules/ikiwiki/views.py:127 #, python-brace-format -msgid "{name} deleted." +msgid "{title} deleted." msgstr "" -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3537,15 +3669,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3556,7 +3688,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3820,11 +3962,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4265,11 +4402,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4277,6 +4414,24 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +msgid "Server Fingerprints" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/bn/LC_MESSAGES/django.po b/plinth/locale/bn/LC_MESSAGES/django.po index 9cdc5729b..a901d50c0 100644 --- a/plinth/locale/bn/LC_MESSAGES/django.po +++ b/plinth/locale/bn/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -333,6 +333,7 @@ msgid "Create Location" msgstr "" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "" @@ -341,7 +342,7 @@ msgid "Delete this archive permanently?" msgstr "" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -358,6 +359,7 @@ msgstr "" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "" @@ -1394,6 +1396,140 @@ msgstr "" msgid "Setup Complete" msgstr "" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +msgid "Name of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +msgid "Private repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +msgid "Invalid repository name." +msgstr "" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +msgid "Create repository" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +msgid "Manage Repositories" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, python-format +msgid "Delete repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +msgid "Edit repository" +msgstr "" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1747,21 +1883,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1779,16 +1911,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1804,11 +1932,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1829,14 +1952,14 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 +#: plinth/modules/ikiwiki/views.py:127 #, python-brace-format -msgid "{name} deleted." +msgid "{title} deleted." msgstr "" -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3539,15 +3662,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3558,7 +3681,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3822,11 +3955,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4267,11 +4395,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4279,6 +4407,24 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +msgid "Server Fingerprints" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/cs/LC_MESSAGES/django.po b/plinth/locale/cs/LC_MESSAGES/django.po index 1b60fa610..d0a5aa63d 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: 2019-10-07 18:31-0400\n" -"PO-Revision-Date: 2019-09-17 19:24+0000\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" +"PO-Revision-Date: 2019-10-09 20:58+0000\n" "Last-Translator: Pavel Borecki \n" "Language-Team: Czech \n" @@ -354,6 +354,7 @@ msgid "Create Location" msgstr "Vytvořit umístění" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "Vytvořit repozitář" @@ -362,7 +363,7 @@ msgid "Delete this archive permanently?" msgstr "Nevratně smazat tento zachycený archiv?" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -379,6 +380,7 @@ msgstr "Smazat archiv %(name)s" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "Potvrdit" @@ -1577,6 +1579,175 @@ msgstr "Spustit nastavení" msgid "Setup Complete" msgstr "Nastavení dokončeno" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Name of the share" +msgid "Name of the repository" +msgstr "Název sdílení" + +#: plinth/modules/gitweb/forms.py:36 +#, fuzzy +#| msgid "" +#| "A lowercase alpha-numeric string that uniquely identifies a share. " +#| "Example: media." +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" +"Řetězec malými písmeny a číslicemi který jednoznačně identifikuje sdílení. " +"Příklad:média." + +#: plinth/modules/gitweb/forms.py:40 +#, fuzzy +#| msgid "Create new repository" +msgid "Description of the repository" +msgstr "Vytvořit nový repozitář" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository's owner name" +msgstr "Repozitář odstraněn." + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Repository" +msgid "Private repository" +msgstr "Vytvořit repozitář" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Neplatný název stroje" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "A share with this name already exists." +msgid "A repository with this name already exists." +msgstr "Sdílení s tímto názvem už existuje." + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Repository" +msgid "Create repository" +msgstr "Vytvořit repozitář" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Repository" +msgid "Manage Repositories" +msgstr "Vytvořit repozitář" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "Port Tor předávání k dispozici" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "Smazat uživatele %(username)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Přejít na stránku %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "Smazat wiki nebo blog %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this snapshot permanently?" +msgid "Delete this repository permanently?" +msgstr "Nevratně smazat tento zachycený stav?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "Smazat %(name)s" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository created." +msgstr "Repozitář odstraněn." + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository edited." +msgstr "Repozitář odstraněn." + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Repository" +msgid "Edit repository" +msgstr "Vytvořit repozitář" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "Při nastavování se vyskytla chyba." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} smazáno." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "{name} se nepodařilo smazat: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Dokumentace" @@ -1912,10 +2083,8 @@ msgid "Manage I2P application" msgstr "Spravovat aplikaci I2P" #: plinth/modules/i2p/__init__.py:100 -#, fuzzy -#| msgid "Web Proxy" msgid "I2P Proxy" -msgstr "Webová proxy" +msgstr "I2P proxy" #: plinth/modules/i2p/templates/i2p_service.html:31 #: plinth/templates/clients.html:51 @@ -2003,21 +2172,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Zobrazit a upravit wiki aplikace" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Typ" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "Je možné použít pouze písmena a číslice." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Název účtu správce" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Heslo k účtu správce" @@ -2035,16 +2200,12 @@ msgstr "Spravovat wiki a blogy" msgid "No wikis or blogs available." msgstr "Nejsou k dispozici žádné wiki nebo blogy." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Vytvořit wiki nebo blog" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "Smazat stránku %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Přejít na stránku %(site)s" @@ -2062,11 +2223,6 @@ 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/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "Smazat %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2087,14 +2243,16 @@ msgstr "Blog {name} vytvořen." msgid "Could not create blog: {error}" msgstr "Blog se nepodařilo vytvořit: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} smazáno." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "{name} se nepodařilo smazat: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -3478,8 +3636,6 @@ msgid "Computer" msgstr "Počítač" #: plinth/modules/networks/templates/connections_list.html:72 -#, fuzzy -#| msgid "Connection" msgid "Connections" msgstr "Připojení" @@ -4022,15 +4178,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "Přistupte {url} s proxy {proxy} na tcp{kind}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "Quassel" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "IRC klient" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4047,7 +4203,7 @@ msgstr "" "více Quassel klientů z desktopu nebo mobilu může být použito pro připojení " "nebo odpojení od něj." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your desktopu a mobilních zařízení." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Podřízená doména" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "Quasseldroid" @@ -4386,11 +4554,6 @@ msgstr "" msgid "Configuration updated." msgstr "Nastavení aktualizována." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "Při nastavování se vyskytla chyba." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "Omezit přihlášení na konzoli (doporučeno)" @@ -4422,17 +4585,13 @@ msgstr "" #: plinth/modules/security/templates/security.html:26 #: plinth/modules/security/templates/security.html:28 -#, fuzzy -#| msgid "Show security vulnerabilities" msgid "Show security report" -msgstr "Zobrazit zranitelnosti zabezpečení" +msgstr "Zobrazit výkaz o zabezpečení" #: plinth/modules/security/templates/security_report.html:25 #: plinth/modules/security/views.py:91 -#, fuzzy -#| msgid "Security Notice" msgid "Security Report" -msgstr "Výstraha ohledně zabezpečení" +msgstr "Výkaz o zabezpečení" #: plinth/modules/security/templates/security_report.html:27 #, python-format @@ -4452,16 +4611,12 @@ msgid "App Name" msgstr "Název aplikace" #: plinth/modules/security/templates/security_report.html:42 -#, fuzzy -#| msgid "Show security vulnerabilities" msgid "Current Vulnerabilities" -msgstr "Zobrazit zranitelnosti zabezpečení" +msgstr "Stávající zranitelnosti zabezpečení" #: plinth/modules/security/templates/security_report.html:43 -#, fuzzy -#| msgid "Show security vulnerabilities" msgid "Past Vulnerabilities" -msgstr "Zobrazit zranitelnosti zabezpečení" +msgstr "Minulé zranitelnosti zabezpečení" #: plinth/modules/security/views.py:73 #, python-brace-format @@ -4652,10 +4807,8 @@ msgid "With Groups" msgstr "Se skupinami" #: plinth/modules/sharing/templates/sharing.html:77 -#, fuzzy -#| msgid "Allow Public Access" msgid "public access" -msgstr "Umožnit veřejný přístup" +msgstr "veřejný přístup" #: plinth/modules/sharing/views.py:54 msgid "Share added." @@ -4901,11 +5054,11 @@ msgstr "Pro dokončení obnovy ze zálohy je třeba systém restartovat." msgid "Rollback to Snapshot" msgstr "Vrátit do podoby zachyceného stavu" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "Server zabezpečeného shellu (SSH)" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4917,6 +5070,28 @@ msgstr "" "spojení provádět úkoly správy, kopírovat soubory nebo spouštět ostatní " "služby." +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH otisk" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH otisk" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "Sdružené přihlášení (SSO)" @@ -6141,6 +6316,12 @@ msgstr "Aplikace vypnuta" msgid "Gujarati" msgstr "gudžarátština" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "Je možné použít pouze písmena a číslice." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Vytvořit wiki nebo blog" + #~ msgid "Manage" #~ msgstr "Spravovat" @@ -6150,9 +6331,6 @@ msgstr "gudžarátština" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "Kupon který jste obdrželi s vaším {box_name} edice „Dunaj“" -#~ msgid "Subdomain" -#~ msgstr "Podřízená doména" - #~ msgid "The subdomain you want to register" #~ msgstr "Podřízená doména, kterou chcete zaregistrovat" @@ -6203,9 +6381,6 @@ msgstr "gudžarátština" #~ msgid "Pagekite" #~ msgstr "Pagekite" -#~ msgid "Create new repository" -#~ msgstr "Vytvořit nový repozitář" - #~ msgid "Upload" #~ msgstr "Nahrát" @@ -6461,9 +6636,6 @@ msgstr "gudžarátština" #~ msgid "SSH Keys" #~ msgstr "SSH klíče" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "Nevratně smazat tento zachycený stav?" - #~ msgid "Delete Snapshot #%(number)s" #~ msgstr "Smazat zachycený stav č. %(number)s" diff --git a/plinth/locale/da/LC_MESSAGES/django.po b/plinth/locale/da/LC_MESSAGES/django.po index fbbadbda3..885516d59 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2016-07-03 21:44+0000\n" "Last-Translator: Mikkel Kirkgaard Nielsen \n" "Language-Team: Danish Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Create User" +msgid "Name of the repository" +msgstr "Opret Bruger" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "packages not found" +msgid "Repository's owner name" +msgstr "pakker ikke fundet" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create User" +msgid "Private repository" +msgstr "Opret Bruger" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Ugyldigt værtsnavn" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "This service already exists" +msgid "A repository with this name already exists." +msgstr "Denne tjeneste eksisterer allerede" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create User" +msgid "Create repository" +msgstr "Opret Bruger" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create User" +msgid "Manage Repositories" +msgstr "Opret Bruger" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "Tor videresendelsesport tilgængelig" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "Slet bruger %(username)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Gå til sitet %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "Slet Wiki eller Blog %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete user permanently?" +msgid "Delete this repository permanently?" +msgstr "Slet bruger permanent?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "Slet %(name)s" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "packages not found" +msgid "Repository created." +msgstr "pakker ikke fundet" + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "packages not found" +msgid "Repository edited." +msgstr "pakker ikke fundet" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create User" +msgid "Edit repository" +msgstr "Opret Bruger" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "Der opstod en fejl under konfigurationen." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} slettet." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "Kunne ikke slette {name}: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Dokumentation" @@ -2038,21 +2201,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Tjenester og Applikationer" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Type" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Administratorkontonavn" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Administratorkontokodeord" @@ -2070,16 +2229,12 @@ msgstr "Administrer Wikier og Blogs" msgid "No wikis or blogs available." msgstr "Ingen wikier eller blogs tilgængelig." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Opret en Wiki eller Blog" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "Slet sitet %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Gå til sitet %(site)s" @@ -2097,11 +2252,6 @@ msgstr "" "Denne handling fjerner alle artikler, sider og kommentater inklusiv al " "historik. Slet denne wiki eller blog permanent?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "Slet %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2122,14 +2272,16 @@ msgstr "Blog {name} oprettet." msgid "Could not create blog: {error}" msgstr "Kunne ikke oprette blog: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} slettet." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "Kunne ikke slette {name}: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -4117,17 +4269,17 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "Tilgå {url} med proxy {proxy} ved brug af tcp{kind}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 #, fuzzy #| msgid "Quassel IRC Client" msgid "IRC Client" msgstr "Quassel IRC-klient" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4144,7 +4296,7 @@ msgstr "" "kontinuerligt online, og du vil kunne bruge en eller flere Quassel-klienter " "fra en computer eller en mobil til at forbinde til den." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your computer og mobile enhed er tilgængelige." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Subdomæne" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -4481,11 +4645,6 @@ msgstr "" msgid "Configuration updated." msgstr "Konfiguration opdateret." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "Der opstod en fejl under konfigurationen." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4988,11 +5147,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "Secure Shell (SSH) Server" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -5000,6 +5159,28 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH-fingeraftryk" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH-fingeraftryk" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" @@ -6245,6 +6426,9 @@ msgstr "Applikation deaktiveret" msgid "Gujarati" msgstr "" +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Opret en Wiki eller Blog" + #~ msgid "Manage" #~ msgstr "Administrer" @@ -6254,9 +6438,6 @@ msgstr "" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "Rabatkuponen som du modtog sammen med din {box_name} Danube Edition" -#~ msgid "Subdomain" -#~ msgstr "Subdomæne" - #~ msgid "The subdomain you want to register" #~ msgstr "Subdomænet du vil registrere" @@ -6431,11 +6612,6 @@ msgstr "" #~ msgid "SSH Keys" #~ msgstr "SSH-nøgler" -#, fuzzy -#~| msgid "Delete user permanently?" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "Slet bruger permanent?" - #, fuzzy #~| msgid "Delete %(name)s" #~ msgid "Delete Snapshot #%(number)s" diff --git a/plinth/locale/de/LC_MESSAGES/django.po b/plinth/locale/de/LC_MESSAGES/django.po index 10a253768..e840f30ad 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: 2019-10-07 18:31-0400\n" -"PO-Revision-Date: 2019-10-02 19:56+0000\n" -"Last-Translator: Dietmar \n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" +"PO-Revision-Date: 2019-10-21 00:52+0000\n" +"Last-Translator: Michael Breidenbach \n" "Language-Team: German \n" "Language: de\n" @@ -19,7 +19,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 3.9-dev\n" +"X-Generator: Weblate 3.9.1-dev\n" #: plinth/action_utils.py:298 #, python-brace-format @@ -357,6 +357,7 @@ msgid "Create Location" msgstr "Standort anlegen" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "Archiv anlegen" @@ -365,7 +366,7 @@ msgid "Delete this archive permanently?" msgstr "Archiv endgültig löschen?" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -382,6 +383,7 @@ msgstr "Archiv %(name)s löschen" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "Absenden" @@ -732,12 +734,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 "" -"Wählen Sie die Standardseite, die angezeigt werden soll, wenn jemand Ihre " -"FreedomBox {box_name} im Web aufruft. Ein typischer Anwendungsfall ist, " -"Ihren Blog oder Wiki als Einstiegsseite einzustellen, wenn jemand Ihre " -"Domain besucht. Wird als Startseite etwas anderes eingestellt als der " -"{box_name}-Dienst (Plinth), müssen Ihre Benutzer explizit /plinth oder /" -"freedombox eingeben, um den {box_name}-Dienst (Plinth) zu erreichen." +"Wählen Sie die Standard-Web-Anwendung die angezeigt wird wenn jemand ihre " +"{box_name} im Web aufruft. Ein typischer Anwendungsfall ist ihren Blog oder " +"Wiki als die Einstiegsseite einzustellen wenn jemand die Domain besucht. " +"Beachten Sie dass wenn eine andere Standard-Anwendung als {box_name}-Dienst " +"(Plinth) eingestellt ist, die Benutzer explizit /plinth oder /freedombox " +"eingeben müssen um den {box_name}-Dienst (Plinth) zu erreichen." #: plinth/modules/config/forms.py:107 msgid "Show advanced apps and features" @@ -1591,6 +1593,175 @@ msgstr "Einrichten beginnen" msgid "Setup Complete" msgstr "Installation abgeschlossen" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Name of the share" +msgid "Name of the repository" +msgstr "Name der Freigabe" + +#: plinth/modules/gitweb/forms.py:36 +#, fuzzy +#| msgid "" +#| "A lowercase alpha-numeric string that uniquely identifies a share. " +#| "Example: media." +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" +"Eine alphanumerische Zeichenfolge in Kleinbuchstaben, die eine Freigabe " +"eindeutig identifiziert. Beispiel: media." + +#: plinth/modules/gitweb/forms.py:40 +#, fuzzy +#| msgid "Create new repository" +msgid "Description of the repository" +msgstr "Neues Archiv anlegen" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository's owner name" +msgstr "Archiv gelöscht." + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Repository" +msgid "Private repository" +msgstr "Archiv anlegen" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Ungültiger Hostname" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "A share with this name already exists." +msgid "A repository with this name already exists." +msgstr "Eine Freigabe mit diesem Namen existiert bereits." + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Repository" +msgid "Create repository" +msgstr "Archiv anlegen" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Repository" +msgid "Manage Repositories" +msgstr "Archiv anlegen" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "Tor-Relay-Port ist verfügbar" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "Benutzer %(username)s löschen" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Gehe zu Seite %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "Wiki oder Blog %(name)s löschen" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this snapshot permanently?" +msgid "Delete this repository permanently?" +msgstr "Speicherauszug permanent löschen?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "%(name)s löschen" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository created." +msgstr "Archiv gelöscht." + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository edited." +msgstr "Archiv gelöscht." + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Repository" +msgid "Edit repository" +msgstr "Archiv anlegen" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "Ein Fehler ist bei der Konfiguration aufgetreten." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} gelöscht." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "{name} konnte nicht gelöscht werden: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Dokumentation" @@ -1738,7 +1909,6 @@ msgid "The FreedomBox project welcomes contributions of all kinds." msgstr "Das FreedomBox-Projekt begrüßt Beiträge jedweder Art." #: plinth/modules/help/templates/help_contribute.html:33 -#, fuzzy msgid "" "You can contribute by writing code, testing and reporting bugs, discussing " "new use cases and applications, designing logos and artwork, providing " @@ -1753,7 +1923,6 @@ msgstr "" "Parties und indem Sie das Projekt weiter verbreiten." #: plinth/modules/help/templates/help_contribute.html:43 -#, fuzzy msgid "" "You can also help the project financially by donating to the non-profit FreedomBox " @@ -1771,9 +1940,7 @@ msgstr "" "York City zur Unterstützung der FreedomBox. Sie stellt die technische " "Infrastruktur und rechtliche Dienstleistungen für das Projekt zur Verfügung, " "pflegt Partnerschaften und setzt sich weltweit für die FreedomBox ein. Die " -"FreedomBox Foundation würde ohne ihre Unterstützer nicht existieren.\n" -"\n" -"Übersetzt mit www.DeepL.com/Translator" +"FreedomBox Foundation würde ohne ihre Unterstützer nicht existieren." #: plinth/modules/help/templates/help_feedback.html:27 #, python-format @@ -1781,7 +1948,6 @@ msgid "Your feedback will help us improve %(box_name)s!" msgstr "Ihr Feedback wird uns helfen, %(box_name)s zu verbessern!" #: plinth/modules/help/templates/help_feedback.html:33 -#, fuzzy msgid "" "Let us know about missing features, your favourite apps and how we can " "improve them on our Diskussionsforum." #: plinth/modules/help/templates/help_feedback.html:41 -#, fuzzy msgid "" "If you find any bugs or issues, please use the issue trackerDiskussionsforum." #: plinth/modules/help/templates/help_support.html:42 -#, fuzzy msgid "" "You can also chat with us on our IRC and Matrix channels (bridged):
    " "
  • #freedombox on irc.oftc.net
  • #freedombox:matrix.org
" @@ -1961,10 +2125,8 @@ msgid "Manage I2P application" msgstr "I2P-Anwendung verwalten" #: plinth/modules/i2p/__init__.py:100 -#, fuzzy -#| msgid "Web Proxy" msgid "I2P Proxy" -msgstr "Web Proxy" +msgstr "I2P Proxy" #: plinth/modules/i2p/templates/i2p_service.html:31 #: plinth/templates/clients.html:51 @@ -2054,21 +2216,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Wiki-Anwendungen ansehen und bearbeiten" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Typ" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "Nur alphanumerische Zeichen sind erlaubt." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Admin-Konto-Name" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Admin-Konto-Passwort" @@ -2086,16 +2244,12 @@ msgstr "Wikis und Blogs verwalten" msgid "No wikis or blogs available." msgstr "Keine Wikis oder Blogs verfügbar." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Ein Wiki oder Blog anlegen" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "Seite %(site)s löschen" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Gehe zu Seite %(site)s" @@ -2113,11 +2267,6 @@ 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/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "%(name)s löschen" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2138,14 +2287,16 @@ msgstr "Blog {name} angelegt." msgid "Could not create blog: {error}" msgstr "Blog konnte nicht angelegt werden: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} gelöscht." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "{name} konnte nicht gelöscht werden: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -2965,12 +3116,17 @@ msgid "" "Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or " "PPPoE. Share that connection with other devices on the network." msgstr "" +"Konfigurieren Sie Netzwerkgeräte. Stellen Sie über Ethernet, WLAN oder PPPoE " +"eine Verbindung zum Internet her. Teilen Sie diese Verbindung mit anderen " +"Geräten im Netzwerk." #: plinth/modules/networks/__init__.py:41 msgid "" "Devices administered through other methods may not be available for " "configuration here." msgstr "" +"Geräte die mit anderen Methoden verwaltet werden, können hier möglicherweise " +"nicht konfiguriert werden." #: plinth/modules/networks/__init__.py:151 #, python-brace-format @@ -3549,10 +3705,8 @@ msgid "Computer" msgstr "Computer" #: plinth/modules/networks/templates/connections_list.html:72 -#, fuzzy -#| msgid "Connection" msgid "Connections" -msgstr "Verbindung" +msgstr "Verbindungen" #: plinth/modules/networks/templates/connections_list.html:80 #, python-format @@ -4103,15 +4257,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "Zugang auf {url} über Proxy {proxy} auf TCP{kind}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "Quassel" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "IRC-Client" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4129,7 +4283,7 @@ msgstr "" "mobilen App können verwendet werden, um sich mit ihm zu verbinden und oder " "zu trennen." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your Desktop und mobile Telefone zur Verfügung." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Subdomain" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "Quasseldroid" @@ -4475,11 +4641,6 @@ msgstr "" msgid "Configuration updated." msgstr "Konfiguration aktualisiert." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "Ein Fehler ist bei der Konfiguration aufgetreten." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "Konsolen-Logins beschränken (empfohlen)" @@ -4510,17 +4671,13 @@ msgstr "" #: plinth/modules/security/templates/security.html:26 #: plinth/modules/security/templates/security.html:28 -#, fuzzy -#| msgid "Show security vulnerabilities" msgid "Show security report" -msgstr "Sicherheitsschwachstellen anzeigen" +msgstr "Berichte über Sicherheitslücken anzeigen" #: plinth/modules/security/templates/security_report.html:25 #: plinth/modules/security/views.py:91 -#, fuzzy -#| msgid "Security Notice" msgid "Security Report" -msgstr "Sicherheitshinweis" +msgstr "Sicherheits-Mitteilungsbericht" #: plinth/modules/security/templates/security_report.html:27 #, python-format @@ -4532,32 +4689,24 @@ msgstr "" "Sicherheitslücken auf." #: plinth/modules/security/templates/security_report.html:33 -#, fuzzy -#| msgid "" -#| "The following table lists the reported number of security vulnerabilities " -#| "for each installed app." msgid "" "The following table lists the current reported number, and historical count, " "of security vulnerabilities for each installed app." msgstr "" -"Die folgende Tabelle listet die gemeldete Anzahl von Sicherheitslücken für " -"jede installierte Anwendung auf." +"Die folgende Tabelle listet die derzeit gemeldete Anzahl und die vorherigen " +"Zählung von Sicherheitslücken für jede installierte Anwendung auf." #: plinth/modules/security/templates/security_report.html:41 msgid "App Name" msgstr "Anwendungsname" #: plinth/modules/security/templates/security_report.html:42 -#, fuzzy -#| msgid "Show security vulnerabilities" msgid "Current Vulnerabilities" -msgstr "Sicherheitsschwachstellen anzeigen" +msgstr "Aktuelle Sicherheitslücken anzeigen" #: plinth/modules/security/templates/security_report.html:43 -#, fuzzy -#| msgid "Show security vulnerabilities" msgid "Past Vulnerabilities" -msgstr "Sicherheitsschwachstellen anzeigen" +msgstr "Frühere Sicherheitslücken anzeigen" #: plinth/modules/security/views.py:73 #, python-brace-format @@ -4996,11 +5145,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "Zurücksetzen auf Speicherauszug" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "Secure Shell (SSH) Server" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -5012,6 +5161,28 @@ msgstr "" "verifizierter, entfernter Computer Verwaltungsaufgaben ausführen, Dateien " "kopieren oder andere Anwendungen starten." +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH-Fingerabdruck" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH-Fingerabdruck" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "Einmal-Anmeldung" @@ -5694,6 +5865,10 @@ msgid "" "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." msgstr "" +"Erstellen und Verwalten von Benutzerkonten. Diese Konten dienen für die " +"meisten Apps als zentraler Authentifizierungsmechanismus. Für manche Apps " +"muss ein Benutzerkonto Teil einer Gruppe sein, damit ein Benutzer auf die " +"App zugreifen kann." #: plinth/modules/users/__init__.py:55 #, python-brace-format @@ -5702,6 +5877,10 @@ msgid "" "relevant to them in the home page. However, only users of the admin " "group may alter apps or system settings." msgstr "" +"Jeder Benutzer kann sich auf der {box_name} Weboberfläche anmelden, um eine " +"Liste der für ihn relevanten Apps auf der Hauptseite anzuzeigen. Allerdings " +"dürfen nur Mitglieder der Gruppe admin Apps oder " +"Systemeinstellungen ändern." #: plinth/modules/users/__init__.py:123 #, python-brace-format @@ -6258,6 +6437,12 @@ msgstr "Anwendung deaktiviert" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "Nur alphanumerische Zeichen sind erlaubt." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Ein Wiki oder Blog anlegen" + #~ msgid "Manage" #~ msgstr "Verwalten" @@ -6269,9 +6454,6 @@ msgstr "Gujarati" #~ "Der Gutschein-Code, den Sie mit Ihrer {box_name} Danube Edition erhalten " #~ "haben" -#~ msgid "Subdomain" -#~ msgstr "Subdomain" - #~ msgid "The subdomain you want to register" #~ msgstr "Die zu registrierende Subdomain" @@ -6325,9 +6507,6 @@ msgstr "Gujarati" #~ msgid "Pagekite" #~ msgstr "Pagekite" -#~ msgid "Create new repository" -#~ msgstr "Neues Archiv anlegen" - #~ msgid "Upload" #~ msgstr "Hochladen" @@ -6587,9 +6766,6 @@ msgstr "Gujarati" #~ msgid "SSH Keys" #~ msgstr "SSH Schlüssel" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "Speicherauszug permanent löschen?" - #~ msgid "Delete Snapshot #%(number)s" #~ msgstr "Lösche Speicherauszug #%(number)s" diff --git a/plinth/locale/django.pot b/plinth/locale/django.pot index 53d21b9c9..36a7ecc8f 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -332,6 +332,7 @@ msgid "Create Location" msgstr "" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "" @@ -340,7 +341,7 @@ msgid "Delete this archive permanently?" msgstr "" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -357,6 +358,7 @@ msgstr "" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "" @@ -1393,6 +1395,140 @@ msgstr "" msgid "Setup Complete" msgstr "" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +msgid "Name of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +msgid "Private repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +msgid "Invalid repository name." +msgstr "" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +msgid "Create repository" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +msgid "Manage Repositories" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, python-format +msgid "Delete repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +msgid "Edit repository" +msgstr "" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1746,21 +1882,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1778,16 +1910,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1803,11 +1931,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1828,14 +1951,14 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 +#: plinth/modules/ikiwiki/views.py:127 #, python-brace-format -msgid "{name} deleted." +msgid "{title} deleted." msgstr "" -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3538,15 +3661,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3557,7 +3680,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3821,11 +3954,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4266,11 +4394,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4278,6 +4406,24 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +msgid "Server Fingerprints" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/el/LC_MESSAGES/django.po b/plinth/locale/el/LC_MESSAGES/django.po index 543cb850a..4769bffd8 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -331,6 +331,7 @@ msgid "Create Location" msgstr "" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "" @@ -339,7 +340,7 @@ msgid "Delete this archive permanently?" msgstr "" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -356,6 +357,7 @@ msgstr "" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "" @@ -1392,6 +1394,140 @@ msgstr "" msgid "Setup Complete" msgstr "" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +msgid "Name of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +msgid "Private repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +msgid "Invalid repository name." +msgstr "" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +msgid "Create repository" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +msgid "Manage Repositories" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, python-format +msgid "Delete repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +msgid "Edit repository" +msgstr "" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1745,21 +1881,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1777,16 +1909,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1802,11 +1930,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1827,14 +1950,14 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 +#: plinth/modules/ikiwiki/views.py:127 #, python-brace-format -msgid "{name} deleted." +msgid "{title} deleted." msgstr "" -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3537,15 +3660,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3556,7 +3679,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3820,11 +3953,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4265,11 +4393,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4277,6 +4405,24 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +msgid "Server Fingerprints" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/es/LC_MESSAGES/django.po b/plinth/locale/es/LC_MESSAGES/django.po index 0ba4bc89c..9d2256177 100644 --- a/plinth/locale/es/LC_MESSAGES/django.po +++ b/plinth/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-09-29 07:55+0000\n" "Last-Translator: Luis A. Arizmendi \n" "Language-Team: Spanish Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Name of the share" +msgid "Name of the repository" +msgstr "Nombre de la compartición" + +#: plinth/modules/gitweb/forms.py:36 +#, fuzzy +#| msgid "" +#| "A lowercase alpha-numeric string that uniquely identifies a share. " +#| "Example: media." +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" +"Una cadena alfa-numérica en minúsculas que identifica de forma unívoca la " +"compartición. Ejemplo: media." + +#: plinth/modules/gitweb/forms.py:40 +#, fuzzy +#| msgid "Create new repository" +msgid "Description of the repository" +msgstr "Crear nuevo repositorio" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository's owner name" +msgstr "Repositorio eliminado." + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Repository" +msgid "Private repository" +msgstr "Crear repositorio" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Nombre de anfitrión no válido" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "A share with this name already exists." +msgid "A repository with this name already exists." +msgstr "Ya existe una compartición con este nombre." + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Repository" +msgid "Create repository" +msgstr "Crear repositorio" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Repository" +msgid "Manage Repositories" +msgstr "Crear repositorio" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "Puerto de servidor Tor disponible" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "Eliminar usuaria/o %(username)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Ir al sitio %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "Borrar Wiki o Blog %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this snapshot permanently?" +msgid "Delete this repository permanently?" +msgstr "¿Eliminar esta instantánea definitivamente?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "Eliminar %(name)s" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository created." +msgstr "Repositorio eliminado." + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository edited." +msgstr "Repositorio eliminado." + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Repository" +msgid "Edit repository" +msgstr "Crear repositorio" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "Ha habido un error en la configuración." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} eliminado." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "No se pudo eliminar {name}: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Documentación" @@ -2035,21 +2206,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Aplicaciones wiki para ver y editar" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Tipo" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "Solo se permiten caracteres alfanuméricos." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Nombre de la cuenta de administración" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Clave de acceso de la cuenta de administración" @@ -2067,16 +2234,12 @@ msgstr "Gestionar Wikis y Blogs" msgid "No wikis or blogs available." msgstr "No hay wikis o blogs disponibles." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Crear un Wiki o Blog" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "Eliminar sitio %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Ir al sitio %(site)s" @@ -2094,11 +2257,6 @@ msgstr "" "Esta acción borrará todas las entradas, páginas y comentarios incluido el " "historial. ¿Eliminar este wiki o blog definitivamente?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "Eliminar %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2119,14 +2277,16 @@ msgstr "Blog {name} creado." msgid "Could not create blog: {error}" msgstr "No se pudo crear el blog: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} eliminado." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "No se pudo eliminar {name}: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -4064,15 +4224,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "Acceso a {url} con proxy {proxy} en tcp {kind}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "Quassel" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "Cliente IRC" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4089,7 +4249,7 @@ msgstr "" "conectado de forma que distintos clientes Quassel pueden conectarse y " "desconectarse de este servidor desde un ordenador de escritorio o un móvil." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your escritorio y móvil." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Subdominio" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "Quasseldroid" @@ -4430,11 +4602,6 @@ msgstr "" msgid "Configuration updated." msgstr "Configuración actualizada." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "Ha habido un error en la configuración." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "Acceso a consola restringido (recomendada)" @@ -4946,11 +5113,11 @@ msgstr "Debe reiniciar el sistema para completar la restauración." msgid "Rollback to Snapshot" msgstr "Restaurar a instantánea" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "Servidor de intérprete de órdenes seguro (SSH)" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4962,6 +5129,28 @@ msgstr "" "realizar tareas de administración, copiar archivos o ejecutar otros " "servicios a través de esas conexiones." +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "Huella digital SSH" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "Huella digital SSH" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "Inicio de sesión único" @@ -6193,6 +6382,12 @@ msgstr "Aplicación desactivada" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "Solo se permiten caracteres alfanuméricos." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Crear un Wiki o Blog" + #~ msgid "Manage" #~ msgstr "Gestionar" @@ -6202,9 +6397,6 @@ msgstr "Gujarati" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "El cupón que recibió con su {box_name} Danube Edition" -#~ msgid "Subdomain" -#~ msgstr "Subdominio" - #~ msgid "The subdomain you want to register" #~ msgstr "Subdominio que desea registrar" @@ -6258,9 +6450,6 @@ msgstr "Gujarati" #~ msgid "Pagekite" #~ msgstr "PageKite" -#~ msgid "Create new repository" -#~ msgstr "Crear nuevo repositorio" - #~ msgid "Upload" #~ msgstr "Subir archivo" @@ -6519,9 +6708,6 @@ msgstr "Gujarati" #~ msgid "SSH Keys" #~ msgstr "Claves SSH" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "¿Eliminar esta instantánea definitivamente?" - #~ msgid "Delete Snapshot #%(number)s" #~ msgstr "Eliminar instantánea %(number)s" diff --git a/plinth/locale/fa/LC_MESSAGES/django.po b/plinth/locale/fa/LC_MESSAGES/django.po index ee12984ed..8e612823b 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2016-08-12 15:51+0000\n" "Last-Translator: Masoud Abkenar \n" "Language-Team: Persian Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Create Connection" +msgid "Name of the repository" +msgstr "ساختن اتصال" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Connection" +msgid "Private repository" +msgstr "ساختن اتصال" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "نام میزبان معتبر نیست" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Connection" +msgid "Create repository" +msgstr "ساختن اتصال" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Connection" +msgid "Manage Repositories" +msgstr "ساختن اتصال" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "No wikis or blogs available." +msgid "No repositories available." +msgstr "ویکی یا وبلاگی موجود نیست." + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete %(name)s" +msgid "Delete repository %(repo.name)s" +msgstr "پاک‌کردن %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "به سایت %(site)s بروید" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "پاک‌کردن ویکی یا وبلاگ %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete connection %(name)s permanently?" +msgid "Delete this repository permanently?" +msgstr "اتصال %(name)s را برای همیشه پاک می‌کنید؟" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "پاک‌کردن %(name)s" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Connection" +msgid "Edit repository" +msgstr "ساختن اتصال" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} پاک شد." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "نشد که {name} پاک شود: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "راهنما" @@ -1978,21 +2133,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "سرویس‌ها و برنامه‌ها" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "نوع" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "نام حساب مدیر" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "رمز حساب مدیر" @@ -2010,16 +2161,12 @@ msgstr "مدیریت ویکی‌ها و وبلاگ‌ها" msgid "No wikis or blogs available." msgstr "ویکی یا وبلاگی موجود نیست." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "یک ویکی یا وبلاگ بسازید" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "سایت %(site)s را پاک کنید" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "به سایت %(site)s بروید" @@ -2037,11 +2184,6 @@ msgstr "" "این کار همهٔ نوشته‌ها، صفحه‌ها، نظرها، و تاریخچهٔ آن‌ها را حذف می‌کند. آیا به " "پاک‌کردن ویکی یا وبلاگ ادامه می‌دهید؟" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "پاک‌کردن %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2062,14 +2204,16 @@ msgstr "وبلاگ {name} ساخته شد." msgid "Could not create blog: {error}" msgstr "ساختن وبلاگ شکست خورد: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} پاک شد." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "نشد که {name} پاک شود: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -3926,15 +4070,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3945,7 +4089,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "زیردامنه" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -4218,11 +4374,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4712,11 +4863,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4724,6 +4875,28 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "اثر انگشت SSH" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "اثر انگشت SSH" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" @@ -5860,6 +6033,9 @@ msgstr "" msgid "Gujarati" msgstr "" +#~ msgid "Create a Wiki or Blog" +#~ msgstr "یک ویکی یا وبلاگ بسازید" + #~ msgid "Manage" #~ msgstr "مدیریت" @@ -5870,9 +6046,6 @@ msgstr "" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "کوپنی که همراه با {box_name} Danube Edition خود تحویل گرفتید." -#~ msgid "Subdomain" -#~ msgstr "زیردامنه" - #~ msgid "The subdomain you want to register" #~ msgstr "زیردامنه‌ای که می‌خواهید ثبت کنید" diff --git a/plinth/locale/fake/LC_MESSAGES/django.po b/plinth/locale/fake/LC_MESSAGES/django.po index 3ee0c7cc7..9285a2ab4 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2016-01-31 22:24+0530\n" "Last-Translator: Sunil Mohan Adapa \n" "Language-Team: Plinth Developers Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Create User" +msgid "Name of the repository" +msgstr "CREATE USER" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "packages not found" +msgid "Repository's owner name" +msgstr "PACKAGES NOT FOUND" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create User" +msgid "Private repository" +msgstr "CREATE USER" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "INVALID HOSTNAME" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "This service already exists" +msgid "A repository with this name already exists." +msgstr "THIS SERVICE ALREADY EXISTS" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create User" +msgid "Create repository" +msgstr "CREATE USER" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create User" +msgid "Manage Repositories" +msgstr "CREATE USER" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "TOR RELAY PORT AVAILABLE" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "DELETE USER %(username)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "GO TO SITE %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "DELETE WIKI OR BLOG %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete user permanently?" +msgid "Delete this repository permanently?" +msgstr "DELETE USER PERMANENTLY?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "DELETE %(name)s" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "packages not found" +msgid "Repository created." +msgstr "PACKAGES NOT FOUND" + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "packages not found" +msgid "Repository edited." +msgstr "PACKAGES NOT FOUND" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create User" +msgid "Edit repository" +msgstr "CREATE USER" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "AN ERROR OCCURRED DURING CONFIGURATION." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} DELETED." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "COULD NOT DELETE {name}: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "DOCUMENTATION" @@ -2094,21 +2257,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "SERVICES AND APPLICATIONS" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "TYPE" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "ADMIN ACCOUNT NAME" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "ADMIN ACCOUNT NAMEADMIN ACCOUNT PASSWORD" @@ -2126,16 +2285,12 @@ msgstr "MANAGE WIKIS AND BLOGS" msgid "No wikis or blogs available." msgstr "NO WIKIS OR BLOGS AVAILABLE." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "CREATE A WIKI OR BLOG" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "DELETE SITE %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "GO TO SITE %(site)s" @@ -2153,11 +2308,6 @@ msgstr "" "THIS ACTION WILL REMOVE ALL THE POSTS, PAGES AND COMMENTS INCLUDING REVISION " "HISTORY. DELETE THIS WIKI OR BLOG PERMANENTLY?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "DELETE %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2178,14 +2328,16 @@ msgstr "CREATED BLOG {name}." msgid "Could not create blog: {error}" msgstr "COULD NOT CREATE BLOG: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} DELETED." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "COULD NOT DELETE {name}: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -4214,17 +4366,17 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "ACCESS {url} WITH PROXY {proxy} ON TCP{kind}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 #, fuzzy #| msgid "Quassel IRC Client" msgid "IRC Client" msgstr "QUASSEL IRC CLIENT" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, fuzzy, python-brace-format #| msgid "" #| "Quassel is an IRC application that is split into two parts, a \"core\" " @@ -4248,7 +4400,7 @@ msgstr "" "ONE OR MORE QUASSEL CLIENTS FROM A DESKTOP OR A MOBILE CAN BE USED TO " "CONNECT AND DISCONNECT FROM IT." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your DESKTOP AND MOBILE DEVICES ARE AVAILABLE." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Enable Subdomains" +msgid "TLS domain" +msgstr "ENABLE SUBDOMAINS" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -4582,11 +4746,6 @@ msgstr "" msgid "Configuration updated." msgstr "CONFIGURATION UPDATED." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "AN ERROR OCCURRED DURING CONFIGURATION." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -5089,11 +5248,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "SECURE SHELL (SSH) SERVER" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -5101,6 +5260,28 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "GPG Fingerprint" +msgid "Server Fingerprints" +msgstr "GPG FINGERPRINT" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "GPG Fingerprint" +msgid "Fingerprint" +msgstr "GPG FINGERPRINT" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" @@ -6354,17 +6535,15 @@ msgstr "APPLICATIONS" msgid "Gujarati" msgstr "" +#~ msgid "Create a Wiki or Blog" +#~ msgstr "CREATE A WIKI OR BLOG" + #~ msgid "Manage" #~ msgstr "MANAGE" #~ msgid "Create" #~ msgstr "CREATE" -#, fuzzy -#~| msgid "Enable Subdomains" -#~ msgid "Subdomain" -#~ msgstr "ENABLE SUBDOMAINS" - #, fuzzy #~| msgid "This connection is not active." #~ msgid "This code is not valid" @@ -6519,11 +6698,6 @@ msgstr "" #~ msgid "SSH Keys" #~ msgstr "SSH KEYS" -#, fuzzy -#~| msgid "Delete user permanently?" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "DELETE USER PERMANENTLY?" - #, fuzzy #~| msgid "Delete %(name)s" #~ msgid "Delete Snapshot #%(number)s" diff --git a/plinth/locale/fr/LC_MESSAGES/django.po b/plinth/locale/fr/LC_MESSAGES/django.po index 8ef84d4f2..eeb267ddf 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: 2019-10-07 18:31-0400\n" -"PO-Revision-Date: 2019-09-03 21:24+0000\n" -"Last-Translator: Swann Martinet \n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" +"PO-Revision-Date: 2019-10-11 10:10+0000\n" +"Last-Translator: James Valleroy \n" "Language-Team: French \n" "Language: fr\n" @@ -226,11 +226,11 @@ msgstr "La phrase de passe est nécessaire pour le chiffrement." #: plinth/modules/backups/forms.py:189 msgid "Select Disk or Partition" -msgstr "" +msgstr "Choisissez un disque ou une partition" #: plinth/modules/backups/forms.py:190 msgid "Backups will be stored in the directory FreedomBoxBackups" -msgstr "" +msgstr "Les sauvegardes seront conservées dans le répertoire FreedomBoxBackups" #: plinth/modules/backups/forms.py:199 msgid "SSH Repository Path" @@ -291,10 +291,12 @@ msgstr "Accès SSH refusé" #: plinth/modules/backups/repository.py:80 msgid "Repository path is neither empty nor is an existing backups repository." msgstr "" +"Le chemin du dépôt n’est pas vide et n’est pas un dépôt de sauvegarde " +"existant." #: plinth/modules/backups/repository.py:154 msgid "Existing repository is not encrypted." -msgstr "" +msgstr "Le dépôt existant n’est pas chiffré." #: plinth/modules/backups/repository.py:342 #, python-brace-format @@ -319,16 +321,12 @@ msgid "Upload and Restore" msgstr "Charger et Restaurer" #: plinth/modules/backups/templates/backups.html:59 -#, fuzzy -#| msgid "Add a remote backup location" msgid "Add a backup location" -msgstr "Ajouter un dépôt de sauvegarde distant" +msgstr "Ajouter un dépôt de sauvegarde" #: plinth/modules/backups/templates/backups.html:63 -#, fuzzy -#| msgid "Add a remote backup location" msgid "Add Backup Location" -msgstr "Ajouter un dépôt de sauvegarde distant" +msgstr "Ajouter un emplacement de sauvegarde" #: plinth/modules/backups/templates/backups.html:66 msgid "Add a remote backup location" @@ -351,14 +349,17 @@ msgid "" "To restore a backup on a new %(box_name)s you need the ssh credentials and, " "if chosen, the encryption passphrase." msgstr "" +"Les informations d'identification de ce dépôt sont stockées sur votre " +"%(box_name)s.
Pour restaurer une sauvegarde sur une nouvelle " +"%(box_name)s, vous devez disposer des informations d'identification SSH et, " +"le cas échéant, de la phrase secrète de chiffrement." #: plinth/modules/backups/templates/backups_add_remote_repository.html:43 -#, fuzzy -#| msgid "Create Connection" msgid "Create Location" -msgstr "Créer Connexion" +msgstr "Créer un emplacement" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "Créer un dépôt" @@ -367,7 +368,7 @@ msgid "Delete this archive permanently?" msgstr "Supprimer définitivement cette archive ?" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -384,6 +385,7 @@ msgstr "Supprimer l'archive %(name)s" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "Soumettre" @@ -1585,6 +1587,169 @@ msgstr "Démarrer la configuration" msgid "Setup Complete" msgstr "Installation Achevée" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Create new repository" +msgid "Name of the repository" +msgstr "Créer un nouveau dépôt" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +#, fuzzy +#| msgid "Create new repository" +msgid "Description of the repository" +msgstr "Créer un nouveau dépôt" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository's owner name" +msgstr "Dépôt introuvable" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Repository" +msgid "Private repository" +msgstr "Créer un dépôt" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Nom de machine invalide" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "This service already exists" +msgid "A repository with this name already exists." +msgstr "Ce service existe déjà" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Repository" +msgid "Create repository" +msgstr "Créer un dépôt" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Repository" +msgid "Manage Repositories" +msgstr "Créer un dépôt" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "Port du relais Tor disponible" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "Supprimer l'utilisateur %(username)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Aller au site %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "Supprimer le wki ou blogue %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this snapshot permanently?" +msgid "Delete this repository permanently?" +msgstr "Supprimer définitivement cet instantané ?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "Supprimer %(name)s" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository created." +msgstr "Dépôt introuvable" + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository edited." +msgstr "Dépôt introuvable" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Repository" +msgid "Edit repository" +msgstr "Créer un dépôt" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "Une erreur est survenue pendant la configuration." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} supprimé." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "La suppression de {name} n'a pas abouti : {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Documentation" @@ -2019,21 +2184,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Afficher et modifier des applications wiki" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Type" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "Seuls les caractères alphanumériques sont autorisés." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Nom Compte Admin" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Mot de Passe Compte Admin" @@ -2051,16 +2212,12 @@ msgstr "Gestion Wikis et Blogues" msgid "No wikis or blogs available." msgstr "Pas de wiki ou de blogue disponible." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Créer un Wiki ou un Blogue" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "Supprimer le site %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Aller au site %(site)s" @@ -2079,11 +2236,6 @@ msgstr "" "commentaires, ainsi que l'historique des révisions. Voulez-vous supprimer ce " "wiki ou blogue de façon permanente ?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "Supprimer %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2104,14 +2256,16 @@ msgstr "Blogue {name} créé." msgid "Could not create blog: {error}" msgstr "Le blogue n'a pu être créé : {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} supprimé." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "La suppression de {name} n'a pas abouti : {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -4064,15 +4218,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "Accéder à l'URL {url} avec le proxy {proxy} sur tcp{kind}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "Quassel" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "Client IRC" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4089,7 +4243,7 @@ msgstr "" "vous soyez toujours en ligne. Un ou plusieurs clients Quassel basés sur un " "ordinateur ou un mobile servent à se brancher sur le cœur ou s'en débrancher." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile sont disponibles pour " "téléchargement." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Sous-domaine" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "Quasseldroid" @@ -4422,11 +4588,6 @@ msgstr "" msgid "Configuration updated." msgstr "Configuration actualisée." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "Une erreur est survenue pendant la configuration." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "Restreindre les sessions console (recommandé)" @@ -4938,11 +5099,11 @@ msgstr "Le système doit être redémarré pour terminer le retour en arrière." msgid "Rollback to Snapshot" msgstr "Revenir à l'instantané" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "Serveur Secure Shell (SSH)" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4954,6 +5115,28 @@ 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/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "Empreinte SSH" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "Empreinte SSH" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "Authentification unique" @@ -6208,6 +6391,12 @@ msgstr "Application désactivée" msgid "Gujarati" msgstr "" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "Seuls les caractères alphanumériques sont autorisés." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Créer un Wiki ou un Blogue" + #~ msgid "Manage" #~ msgstr "Gérer" @@ -6217,9 +6406,6 @@ msgstr "" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "Le récépissé reçu avec votre {box_name}, Edition Danube." -#~ msgid "Subdomain" -#~ msgstr "Sous-domaine" - #~ msgid "The subdomain you want to register" #~ msgstr "Le sous-domaine que vous voulez inscrire" @@ -6267,9 +6453,6 @@ msgstr "" #~ msgid "Pagekite" #~ msgstr "Pagekite" -#~ msgid "Create new repository" -#~ msgstr "Créer un nouveau dépôt" - #~ msgid "Upload" #~ msgstr "Téléverser" @@ -6554,9 +6737,6 @@ msgstr "" #~ msgid "SSH Keys" #~ msgstr "Clefs SSH" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "Supprimer définitivement cet instantané ?" - #~ msgid "Delete Snapshot #%(number)s" #~ msgstr "Supprimer l'instantané numéro #%(number)s" diff --git a/plinth/locale/gl/LC_MESSAGES/django.po b/plinth/locale/gl/LC_MESSAGES/django.po index 8c26c0ad6..100d70241 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-07-11 08:01+0000\n" "Last-Translator: Miguel A. Bouzada \n" "Language-Team: Galician Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +msgid "Name of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +msgid "Private repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +msgid "Invalid repository name." +msgstr "" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +msgid "Create repository" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +msgid "Manage Repositories" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, python-format +msgid "Delete repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +msgid "Edit repository" +msgstr "" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1750,21 +1886,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1782,16 +1914,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1807,11 +1935,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1832,14 +1955,14 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 +#: plinth/modules/ikiwiki/views.py:127 #, python-brace-format -msgid "{name} deleted." +msgid "{title} deleted." msgstr "" -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3542,15 +3665,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3561,7 +3684,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3825,11 +3958,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4270,11 +4398,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4282,6 +4410,24 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +msgid "Server Fingerprints" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/gu/LC_MESSAGES/django.po b/plinth/locale/gu/LC_MESSAGES/django.po index 0a387d4a2..bcd99be94 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2018-02-05 18:37+0000\n" "Last-Translator: drashti kaushik \n" "Language-Team: Gujarati Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Documentation" +msgid "Name of the repository" +msgstr "દસ્તાવેજીકરણ" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Documentation" +msgid "Private repository" +msgstr "દસ્તાવેજીકરણ" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "અમાન્ય હોસ્ટનું નામ" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Documentation" +msgid "Create repository" +msgstr "દસ્તાવેજીકરણ" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Documentation" +msgid "Manage Repositories" +msgstr "દસ્તાવેજીકરણ" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, python-format +msgid "Delete repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Documentation" +msgid "Edit repository" +msgstr "દસ્તાવેજીકરણ" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "દસ્તાવેજીકરણ" @@ -1895,21 +2043,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1927,16 +2071,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1952,11 +2092,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1977,14 +2112,14 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 +#: plinth/modules/ikiwiki/views.py:127 #, python-brace-format -msgid "{name} deleted." +msgid "{title} deleted." msgstr "" -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3707,15 +3842,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3726,7 +3861,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3990,11 +4135,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4436,11 +4576,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4448,6 +4588,26 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "Server Administration" +msgid "Server Fingerprints" +msgstr "સર્વર સંચાલન" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/hi/LC_MESSAGES/django.po b/plinth/locale/hi/LC_MESSAGES/django.po index accd5e79c..1930df23f 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2018-08-09 20:39+0000\n" "Last-Translator: Gayathri Das \n" "Language-Team: Hindi Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Name of the share" +msgid "Name of the repository" +msgstr "शेयर का नाम" + +#: plinth/modules/gitweb/forms.py:36 +#, fuzzy +#| msgid "" +#| "A lowercase alpha-numeric string that uniquely identifies a share. " +#| "Example: media." +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" +"कोई लोअरकेस अल्फ़ा-सांख्यिक स्ट्रिंग जो विशिष्ट रूप से एक शेयर की पहचान करता है. उदाहरण:" +"media." + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create User" +msgid "Private repository" +msgstr "यूसर बनाये" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "अमान्य होस्टनाम" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "A share with this name already exists." +msgid "A repository with this name already exists." +msgstr "इस नाम का एक शयर पहले से मौजूद है." + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create User" +msgid "Create repository" +msgstr "यूसर बनाये" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create User" +msgid "Manage Repositories" +msgstr "यूसर बनाये" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "टोर रीले पोर्ट उपलब्ध है" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "यूसर हटाइये %(username)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "साइट पर जाएं %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "विकी और ब्लॉग हटाईये %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this snapshot permanently?" +msgid "Delete this repository permanently?" +msgstr "इस स्नैपशॉट को स्थाई रूप से हटाएं?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "%(name)s हटाईये" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create User" +msgid "Edit repository" +msgstr "यूसर बनाये" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "कॉंफ़िगरेशन के दौरान कूछ त्रुटि हुई." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} हटा गया है." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "{name} नहीं हटा गया है: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "प्रलेखन" @@ -1998,21 +2161,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "विकी एप्लिकेशन को देखें और संपादित करें" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "टाइप" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "सिर्फ अक्षरांकीय अक्षरे की अनुमति है." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "व्यवस्थापक अकाउंट नाम" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "व्यवस्थापक अकाउंट पासवर्ड" @@ -2030,16 +2189,12 @@ msgstr "विकी और ब्लॉग्स प्रबंधित क msgid "No wikis or blogs available." msgstr "कोई विकी या ब्लॉग उपलब्ध नहीं है." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "एक विकी या ब्लॉग बनाएं" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "साइट हटाएं %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "साइट पर जाएं %(site)s" @@ -2057,11 +2212,6 @@ msgstr "" "यह कार्य सब पोस्ट, पेज और टिप्पणियां निकाल देगी, संशोधन इतिहास भी. यह ब्लॉग और विकी " "हमेशा से हटा करें?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "%(name)s हटाईये" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2082,14 +2232,16 @@ msgstr "ब्लॉग बनाया है {name}." msgid "Could not create blog: {error}" msgstr "ब्लॉग नहीं बना सकता है: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} हटा गया है." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "{name} नहीं हटा गया है: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -3983,15 +4135,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "{url} ऐकसेस करें प्रॉक्सी लेकर {proxy} टीसीपी पर{kind}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "क्वासेल" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "आईआरसी क्लाइंट" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4007,7 +4159,7 @@ msgstr "" "ताकि आप हमेशा ऑनलाइन रखते हुए और एक या अधिक क्वासेल क्लाइंट डेस्कटॉप या मोबाइल से इसेसे " "कनेक्ट और डिस्कनेक्ट करने के लिए उपयोग किया जा सकता है." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your मोबाइल से कनेक्ट होने के लिए क्लाइंट्स उपलब्ध " "हैं." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "सबडोमेन" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "क्वासेलड्रोइड" @@ -4339,11 +4503,6 @@ msgstr "" msgid "Configuration updated." msgstr "कॉन्फ़िगरेशन अपडेट किया." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "कॉंफ़िगरेशन के दौरान कूछ त्रुटि हुई." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "कंसोल लॉगिन प्रतिबंधित करें (संस्तुत)" @@ -4836,11 +4995,11 @@ msgstr "रोलबैक शुरु करने के लिए सिस msgid "Rollback to Snapshot" msgstr "स्नैपशॉट को रोलबैक करें" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "सुरक्षित शैल (SSH) सर्वर" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4851,6 +5010,28 @@ msgstr "" "स्वीकार करने के लिये. एक अधिकार दिया गया रिमोट कंप्यूटर प्रशासन कार्य निष्पादित कर " "सकता है, फ़ाइलों की कॉपी कर सकता है या ऐसे कनेक्शंस का उपयोग करके अंय सर्विसस चलाएे." +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH फिंगरप्रिंट" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH फिंगरप्रिंट" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "एकल साइन-ऑन" @@ -6059,6 +6240,12 @@ msgstr "एप्लीकेशन अक्षम किया गया ह msgid "Gujarati" msgstr "" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "सिर्फ अक्षरांकीय अक्षरे की अनुमति है." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "एक विकी या ब्लॉग बनाएं" + #~ msgid "Manage" #~ msgstr "प्रबंध" @@ -6068,9 +6255,6 @@ msgstr "" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "आपका {box_name} के साथ आपको प्राप्त वाउचर डेंयूब एडिशन" -#~ msgid "Subdomain" -#~ msgstr "सबडोमेन" - #~ msgid "The subdomain you want to register" #~ msgstr "जो सबडोमेन आप पंजीकृत करना चाहते हैं" @@ -6429,9 +6613,6 @@ msgstr "" #~ msgid "SSH Keys" #~ msgstr "एसएसएच कीज़" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "इस स्नैपशॉट को स्थाई रूप से हटाएं?" - #~ msgid "Delete Snapshot #%(number)s" #~ msgstr "स्नैपशॉट हटाएं #%(number)s" diff --git a/plinth/locale/hu/LC_MESSAGES/django.po b/plinth/locale/hu/LC_MESSAGES/django.po index c7f6340c8..894117207 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-08-31 09:24+0000\n" "Last-Translator: Doma Gergő \n" "Language-Team: Hungarian Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Name of the share" +msgid "Name of the repository" +msgstr "Megosztás neve" + +#: plinth/modules/gitweb/forms.py:36 +#, fuzzy +#| msgid "" +#| "A lowercase alpha-numeric string that uniquely identifies a share. " +#| "Example: media." +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" +"Kisbetűkből és számokból álló szöveg ami egyedien azonosítja a megosztást. " +"Példa: media." + +#: plinth/modules/gitweb/forms.py:40 +#, fuzzy +#| msgid "Create new repository" +msgid "Description of the repository" +msgstr "Új tároló létrehozása" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository's owner name" +msgstr "Tároló eltávolítva." + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Repository" +msgid "Private repository" +msgstr "Tároló létrehozása" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Érvénytelen állomásnév" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "A share with this name already exists." +msgid "A repository with this name already exists." +msgstr "Egy megosztás ezzel a névvel már létezik." + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Repository" +msgid "Create repository" +msgstr "Tároló létrehozása" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Repository" +msgid "Manage Repositories" +msgstr "Tároló létrehozása" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "Tor relay port elérhető" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "%(username)s felhasználó törlése" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Ugrás a %(site)s webhelyre" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "%(name)s wiki vagy blog törlése" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this archive permanently?" +msgid "Delete this repository permanently?" +msgstr "Véglegesen törlöd ezt az archívumot?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "%(name)s törlése" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository created." +msgstr "Tároló eltávolítva." + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository edited." +msgstr "Tároló eltávolítva." + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Repository" +msgid "Edit repository" +msgstr "Tároló létrehozása" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "Hiba történt a beállítás közben." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} törölve." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "{name} nem törölhető: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Dokumentáció" @@ -2029,21 +2200,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Wiki alkalmazások megtekintése és szerkesztése" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Típus" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "Csak alfanumerikus karakterek engedélyezettek." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Adminisztrátori fiók neve" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Adminisztrátori fiók jelszava" @@ -2061,16 +2228,12 @@ msgstr "Wikik és Blogok kezelése" msgid "No wikis or blogs available." msgstr "Nincs elérhető wiki vagy blog." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Wiki vagy Blog létrehozása" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "%(site)s webhely törlése" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Ugrás a %(site)s webhelyre" @@ -2088,11 +2251,6 @@ 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 wiki-t vagy blogot?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "%(name)s törlése" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2113,14 +2271,16 @@ msgstr "{name} blog létrehozva." msgid "Could not create blog: {error}" msgstr "Nem tudtam létrehozni a blog-ot: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} törölve." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "{name} nem törölhető: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -4075,15 +4235,15 @@ msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" "Hozzáférés a {url} URL-hez {proxy} proxy használatával tcp{kind}-on keresztül" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "Quassel" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "IRC kliens" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4100,7 +4260,7 @@ msgstr "" "szolgáltatását, aminek segítségével mindig online lehetsz és egy, vagy több " "Quassel klienssel kapcsolódhatsz hozzá a mobilodról vagy az asztali gépedről." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your asztali és mobil " "eszközökhöz is." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Aldomain" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "Quasseldroid" @@ -4444,11 +4616,6 @@ msgstr "" msgid "Configuration updated." msgstr "Beállítások frissítve." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "Hiba történt a beállítás közben." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "Konzolon keresztüli bejelentkezések korlátozása (ajánlott)" @@ -4966,11 +5133,11 @@ msgstr "A visszaállítás befejezéséhez a rendszert újra kell indítani." msgid "Rollback to Snapshot" msgstr "Visszaállítás pillanatképre" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "Biztonságos parancsértelmező (SSH) kiszolgáló" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4982,6 +5149,28 @@ 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/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH ujjlenyomat" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH ujjlenyomat" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "Egyszeri bejelentkezés" @@ -6222,6 +6411,12 @@ msgstr "Alkalmazás letiltva" msgid "Gujarati" msgstr "Gudzsaráti" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "Csak alfanumerikus karakterek engedélyezettek." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Wiki vagy Blog létrehozása" + #~ msgid "Manage" #~ msgstr "Kezel" @@ -6232,9 +6427,6 @@ msgstr "Gudzsaráti" #~ msgstr "" #~ "Az utalványkód, amit a {box_name} Danube Edition eszközöddel együtt kaptál" -#~ msgid "Subdomain" -#~ msgstr "Aldomain" - #~ msgid "The subdomain you want to register" #~ msgstr "Az aldomain, amit regisztrálni szeretnél" @@ -6286,9 +6478,6 @@ msgstr "Gudzsaráti" #~ msgid "Pagekite" #~ msgstr "Pagekite" -#~ msgid "Create new repository" -#~ msgstr "Új tároló létrehozása" - #~ msgid "Upload" #~ msgstr "Feltöltés" diff --git a/plinth/locale/id/LC_MESSAGES/django.po b/plinth/locale/id/LC_MESSAGES/django.po index b0992942e..ad2b1d1f9 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2018-11-02 00:44+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Indonesian Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Actions" +msgid "Name of the repository" +msgstr "Aksi" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Actions" +msgid "Private repository" +msgstr "Aksi" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +msgid "Invalid repository name." +msgstr "" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Actions" +msgid "Create repository" +msgstr "Aksi" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Actions" +msgid "Manage Repositories" +msgstr "Aksi" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "No wikis or blogs available." +msgid "No repositories available." +msgstr "Tidak ada wiki atau blogs yang tersedia." + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete %(name)s" +msgid "Delete repository %(repo.name)s" +msgstr "Hapus %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Pergi ke situs %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "Hapus Wiki atau Blog %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "Hapus %(name)s" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Actions" +msgid "Edit repository" +msgstr "Aksi" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} dihapus." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "Tidak dapat menghapus {name}: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1833,21 +1984,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Layanan dan Aplikasi" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Tipe" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Nama Akun Admin" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Kata sandi Akun Admin" @@ -1865,16 +2012,12 @@ msgstr "Kelola Wiki dan Blog" msgid "No wikis or blogs available." msgstr "Tidak ada wiki atau blogs yang tersedia." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Membuat Wiki atau Blog" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "Hapus situs %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Pergi ke situs %(site)s" @@ -1890,11 +2033,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "Hapus %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1915,14 +2053,16 @@ msgstr "membuat blog {name}." msgid "Could not create blog: {error}" msgstr "Tidak dapat membuat blog: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} dihapus." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "Tidak dapat menghapus {name}: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -3682,15 +3822,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3701,7 +3841,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Subdomain" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3973,11 +4125,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4458,11 +4605,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4470,6 +4617,28 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "Sidik Jari SSH" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "Sidik Jari SSH" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" @@ -5600,15 +5769,15 @@ msgstr "" msgid "Gujarati" msgstr "" +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Membuat Wiki atau Blog" + #~ msgid "Manage" #~ msgstr "Kelola" #~ msgid "Create" #~ msgstr "Buat" -#~ msgid "Subdomain" -#~ msgstr "Subdomain" - #~ msgid "This code is not valid" #~ msgstr "Kode ini tidak valid" diff --git a/plinth/locale/it/LC_MESSAGES/django.po b/plinth/locale/it/LC_MESSAGES/django.po index 63780290c..fcb04067d 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-09-03 21:24+0000\n" "Last-Translator: Swann Martinet \n" "Language-Team: Italian Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Create Connection" +msgid "Name of the repository" +msgstr "Crea Connessione" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Connection" +msgid "Private repository" +msgstr "Crea Connessione" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +msgid "Invalid repository name." +msgstr "Hostname non valido" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Connection" +msgid "Create repository" +msgstr "Crea Connessione" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Connection" +msgid "Manage Repositories" +msgstr "Crea Connessione" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "No wikis or blogs available." +msgid "No repositories available." +msgstr "Nessun wiki o blog disponibile." + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete Archive %(name)s" +msgid "Delete repository %(repo.name)s" +msgstr "Cancella archivio %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Vai nel sito %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +msgid "Delete Git Repository %(name)s" +msgstr "Cancella Wiki e Blog%(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this archive permanently?" +msgid "Delete this repository permanently?" +msgstr "Rimuovere l'archivio in modo definitivo?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "Cancella %(name)s" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Connection" +msgid "Edit repository" +msgstr "Crea Connessione" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} cancellato." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "Non è stato possibile cancellare {name}: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Documentazione" @@ -2018,22 +2171,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Vedi e modifica le applicazioni wiki" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Tipo" -#: plinth/modules/ikiwiki/forms.py:35 -#, fuzzy -msgid "Only alphanumeric characters are allowed." -msgstr "Sono consentiti so caratteri alfanumerici." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Nome Utente Amministratore" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Password Profilo Amministratore" @@ -2051,16 +2199,12 @@ msgstr "Gestisci Wiki e Blog" msgid "No wikis or blogs available." msgstr "Nessun wiki o blog disponibile." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Crea Wiki o Blog" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "Cancella sito %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Vai nel sito %(site)s" @@ -2078,11 +2222,6 @@ 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/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "Cancella %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2103,14 +2242,16 @@ msgstr "Creato blog {name}." msgid "Could not create blog: {error}" msgstr "Non è stato possibile creare il blog: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} cancellato." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "Non è stato possibile cancellare {name}: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -4043,15 +4184,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "Accesso {url} con proxy {proxy} su tcp{kind}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "Quassel" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "Client IRC" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4068,7 +4209,7 @@ msgstr "" "possibile usare uno o più client Quassel desktop o mobile, per connettersi " "e disconnettersi su di esso." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your desktop e mobile." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Sottodominio" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "Quasseldroid" @@ -4349,11 +4502,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4802,11 +4950,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4814,6 +4962,28 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH Fingerprint" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH Fingerprint" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" @@ -5918,6 +6088,13 @@ msgstr "Applicazione disabilitata" msgid "Gujarati" msgstr "" +#, fuzzy +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "Sono consentiti so caratteri alfanumerici." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Crea Wiki o Blog" + #~ msgid "Manage" #~ msgstr "Gestisci" @@ -5928,9 +6105,6 @@ msgstr "" #~ msgstr "" #~ "Il voucher che hai ricevuto con l'edizione Danube del tuo {box_name}" -#~ msgid "Subdomain" -#~ msgstr "Sottodominio" - #~ msgid "The subdomain you want to register" #~ msgstr "Il sotto dominio che vuoi registrare" diff --git a/plinth/locale/ja/LC_MESSAGES/django.po b/plinth/locale/ja/LC_MESSAGES/django.po index bdea21733..44384c45b 100644 --- a/plinth/locale/ja/LC_MESSAGES/django.po +++ b/plinth/locale/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -333,6 +333,7 @@ msgid "Create Location" msgstr "" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "" @@ -341,7 +342,7 @@ msgid "Delete this archive permanently?" msgstr "" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -358,6 +359,7 @@ msgstr "" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "" @@ -1394,6 +1396,140 @@ msgstr "" msgid "Setup Complete" msgstr "" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +msgid "Name of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +msgid "Private repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +msgid "Invalid repository name." +msgstr "" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +msgid "Create repository" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +msgid "Manage Repositories" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, python-format +msgid "Delete repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +msgid "Edit repository" +msgstr "" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1747,21 +1883,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1779,16 +1911,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1804,11 +1932,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1829,14 +1952,14 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 +#: plinth/modules/ikiwiki/views.py:127 #, python-brace-format -msgid "{name} deleted." +msgid "{title} deleted." msgstr "" -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3539,15 +3662,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3558,7 +3681,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3822,11 +3955,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4267,11 +4395,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4279,6 +4407,24 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +msgid "Server Fingerprints" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/kn/LC_MESSAGES/django.po b/plinth/locale/kn/LC_MESSAGES/django.po index bdea21733..44384c45b 100644 --- a/plinth/locale/kn/LC_MESSAGES/django.po +++ b/plinth/locale/kn/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -333,6 +333,7 @@ msgid "Create Location" msgstr "" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "" @@ -341,7 +342,7 @@ msgid "Delete this archive permanently?" msgstr "" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -358,6 +359,7 @@ msgstr "" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "" @@ -1394,6 +1396,140 @@ msgstr "" msgid "Setup Complete" msgstr "" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +msgid "Name of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +msgid "Private repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +msgid "Invalid repository name." +msgstr "" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +msgid "Create repository" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +msgid "Manage Repositories" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, python-format +msgid "Delete repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +msgid "Edit repository" +msgstr "" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1747,21 +1883,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1779,16 +1911,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1804,11 +1932,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1829,14 +1952,14 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 +#: plinth/modules/ikiwiki/views.py:127 #, python-brace-format -msgid "{name} deleted." +msgid "{title} deleted." msgstr "" -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3539,15 +3662,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3558,7 +3681,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3822,11 +3955,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4267,11 +4395,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4279,6 +4407,24 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +msgid "Server Fingerprints" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/lt/LC_MESSAGES/django.po b/plinth/locale/lt/LC_MESSAGES/django.po index 3a3baf848..d504103dd 100644 --- a/plinth/locale/lt/LC_MESSAGES/django.po +++ b/plinth/locale/lt/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -334,6 +334,7 @@ msgid "Create Location" msgstr "" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "" @@ -342,7 +343,7 @@ msgid "Delete this archive permanently?" msgstr "" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -359,6 +360,7 @@ msgstr "" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "" @@ -1395,6 +1397,140 @@ msgstr "" msgid "Setup Complete" msgstr "" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +msgid "Name of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +msgid "Private repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +msgid "Invalid repository name." +msgstr "" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +msgid "Create repository" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +msgid "Manage Repositories" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, python-format +msgid "Delete repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +msgid "Edit repository" +msgstr "" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1748,21 +1884,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1780,16 +1912,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1805,11 +1933,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1830,14 +1953,14 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 +#: plinth/modules/ikiwiki/views.py:127 #, python-brace-format -msgid "{name} deleted." +msgid "{title} deleted." msgstr "" -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3540,15 +3663,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3559,7 +3682,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3823,11 +3956,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4268,11 +4396,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4280,6 +4408,24 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +msgid "Server Fingerprints" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/nb/LC_MESSAGES/django.po b/plinth/locale/nb/LC_MESSAGES/django.po index 1690f2774..b42f9a78d 100644 --- a/plinth/locale/nb/LC_MESSAGES/django.po +++ b/plinth/locale/nb/LC_MESSAGES/django.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" -"PO-Revision-Date: 2019-10-01 06:56+0000\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" +"PO-Revision-Date: 2019-10-21 00:52+0000\n" "Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Bokmål \n" @@ -25,7 +25,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 3.9-dev\n" +"X-Generator: Weblate 3.9.1-dev\n" #: plinth/action_utils.py:298 #, python-brace-format @@ -364,6 +364,7 @@ msgid "Create Location" msgstr "Opprett plassering" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "Opprett depot" @@ -372,7 +373,7 @@ msgid "Delete this archive permanently?" msgstr "Slett dette arkivet permanent?" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -389,6 +390,7 @@ msgstr "Slett arkiv %(name)s" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "Send inn" @@ -1580,6 +1582,175 @@ msgstr "Gå i gang med oppsett" msgid "Setup Complete" msgstr "Oppsett ferdig" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Name of the share" +msgid "Name of the repository" +msgstr "Navn på delt område" + +#: plinth/modules/gitweb/forms.py:36 +#, fuzzy +#| msgid "" +#| "A lowercase alpha-numeric string that uniquely identifies a share. " +#| "Example: media." +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" +"En alfanumerisk streng med små bokstaver som unikt identifiserer en deling. " +"Eksempel media." + +#: plinth/modules/gitweb/forms.py:40 +#, fuzzy +#| msgid "Create new repository" +msgid "Description of the repository" +msgstr "Opprett nytt depot" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository's owner name" +msgstr "Depot fjernet." + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Repository" +msgid "Private repository" +msgstr "Opprett depot" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Ugyldig vertsnavn" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "A share with this name already exists." +msgid "A repository with this name already exists." +msgstr "En deling ved dette navnet finnes allerede." + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Repository" +msgid "Create repository" +msgstr "Opprett depot" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Repository" +msgid "Manage Repositories" +msgstr "Opprett depot" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "Tor relay-port tilgjengelig" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "Slette bruker %(username)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Gå til siden %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "Slette wiki eller blogg %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this snapshot permanently?" +msgid "Delete this repository permanently?" +msgstr "Slett dette øyeblikksbildet permanent?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "Slette %(name)s" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository created." +msgstr "Depot fjernet." + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository edited." +msgstr "Depot fjernet." + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Repository" +msgid "Edit repository" +msgstr "Opprett depot" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "En feil oppsto under konfigureringen." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "Slettet {name}." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "Kunne ikke slette {name}: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Dokumentasjon" @@ -2031,21 +2202,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Vis og rediger wiki-programmer" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Type" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "Kun alfanumeriske tegn er tillatt." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Administratorkonto navn" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Administratorkonto passord" @@ -2063,16 +2230,12 @@ msgstr "Vedlikehold Wiki og Blogg" msgid "No wikis or blogs available." msgstr "Ingen wikier eller blogger tilgjengelig." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Opprett en Wiki eller Blogg" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "Slette nettstedet %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Gå til siden %(site)s" @@ -2090,11 +2253,6 @@ msgstr "" "Denne handlingen vil fjerne alle poster, sider og kommentarer inkludert " "revisjonshistorien. Skal denne wiki eller bloggen slettes permanent?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "Slette %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2115,14 +2273,16 @@ msgstr "Opprettet blogg {name}." msgid "Could not create blog: {error}" msgstr "Kunne ikke lage blogg: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "Slettet {name}." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "Kunne ikke slette {name}: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -2921,16 +3081,21 @@ msgid "Networks" msgstr "Nettverk" #: plinth/modules/networks/__init__.py:39 +#, fuzzy msgid "" "Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or " "PPPoE. Share that connection with other devices on the network." 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:41 msgid "" "Devices administered through other methods may not be available for " "configuration here." msgstr "" +"Enheter administrert gjennom andre metoder kan være utilgjengelige for " +"oppsett her." #: plinth/modules/networks/__init__.py:151 #, python-brace-format @@ -4054,15 +4219,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "Tilgang {url} med mellomtjener {proxy} på tcp{kind}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "Quassel" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "IRC-klient" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4079,7 +4244,7 @@ msgstr "" "skrivebordet kan en eller flere Quassel-klienter brukes til å koble til og " "fra." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your desktop , og mobile enheter er tilgjengelig." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Underdomene" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "Quasseldroid" @@ -4416,11 +4593,6 @@ msgstr "Tillat dette programmet brukt av alle som kan nå det." msgid "Configuration updated." msgstr "Konfigurering oppdatert." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "En feil oppsto under konfigureringen." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "Begrens konsollinnlogging (anbefalt)" @@ -4923,11 +5095,11 @@ msgstr "Systemet må startes på nytt for å fullføre tilbakerullingen." msgid "Rollback to Snapshot" msgstr "Rull tilbake til øyeblikksbilde" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "Secure Shell (SSH) tjener" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4939,6 +5111,28 @@ msgstr "" "annensteds hen kan utføre administrasjonsoppgaver, kopiere filer eller kjøre " "andre tjenester ved bruk av slike tilkoblinger." +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH Fingeravtrykk" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH Fingeravtrykk" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "Engangspålogging" @@ -5609,12 +5803,15 @@ msgid "" msgstr "" #: plinth/modules/users/__init__.py:55 -#, python-brace-format +#, fuzzy, python-brace-format msgid "" "Any user may login to {box_name} web interface to see a list of apps " "relevant to them in the home page. However, only users of the admin " "group may alter apps or system settings." msgstr "" +"Enhver bruker kan logge inn på nettgrensesnittet på {box_name} og se en " +"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:123 #, python-brace-format @@ -6163,6 +6360,12 @@ msgstr "Programmet er deaktivert" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "Kun alfanumeriske tegn er tillatt." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Opprett en Wiki eller Blogg" + #~ msgid "Manage" #~ msgstr "Håndtere" @@ -6172,9 +6375,6 @@ msgstr "Gujarati" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "Bilaget du mottok med din {box_name} Danube Edition" -#~ msgid "Subdomain" -#~ msgstr "Underdomene" - #~ msgid "The subdomain you want to register" #~ msgstr "Underdomenet du vil registrere" @@ -6227,9 +6427,6 @@ msgstr "Gujarati" #~ msgid "Pagekite" #~ msgstr "PageKite" -#~ msgid "Create new repository" -#~ msgstr "Opprett nytt depot" - #~ msgid "Upload" #~ msgstr "Last opp" @@ -6484,9 +6681,6 @@ msgstr "Gujarati" #~ msgid "SSH Keys" #~ msgstr "SSH-nøkler" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "Slett dette øyeblikksbildet permanent?" - #~ msgid "Delete Snapshot #%(number)s" #~ msgstr "Slett øyeblikksbilde #%(number)s" diff --git a/plinth/locale/nl/LC_MESSAGES/django.po b/plinth/locale/nl/LC_MESSAGES/django.po index 95bbc1019..a1b082331 100644 --- a/plinth/locale/nl/LC_MESSAGES/django.po +++ b/plinth/locale/nl/LC_MESSAGES/django.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" -"PO-Revision-Date: 2019-05-07 20:48+0000\n" -"Last-Translator: Karel Trachet \n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" +"PO-Revision-Date: 2019-10-15 22:52+0000\n" +"Last-Translator: ikmaak \n" "Language-Team: Dutch \n" "Language: nl\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 3.7-dev\n" +"X-Generator: Weblate 3.9\n" "X-Language: nl_NL\n" "X-Source-Language: C\n" @@ -131,7 +131,7 @@ msgstr "" #: plinth/modules/avahi/__init__.py:77 msgid "Local Network Domain" -msgstr "" +msgstr "Lokaal netwerkdomein" #: plinth/modules/backups/__init__.py:40 msgid "Backups" @@ -144,62 +144,54 @@ msgstr "Met back-ups kunt u back-uparchieven maken en beheren." #: plinth/modules/backups/forms.py:48 #, python-brace-format msgid "{app} (No data to backup)" -msgstr "" +msgstr "{app} (geen gegevens voor back-up)" #: plinth/modules/backups/forms.py:67 msgid "Included apps" -msgstr "" +msgstr "Meegeleverde applicaties" #: plinth/modules/backups/forms.py:67 msgid "Apps to include in the backup" -msgstr "" +msgstr "Applicaties die in de back-up moeten worden opgenomen" #: plinth/modules/backups/forms.py:81 -#, fuzzy -#| msgid "The subdomain you want to register" msgid "Select the apps you want to restore" -msgstr "Het subdomein dat u wilt registreren" +msgstr "Selecteer de te herstellen applicaties" #: plinth/modules/backups/forms.py:94 msgid "Upload File" -msgstr "" +msgstr "Bestand uploaden" #: plinth/modules/backups/forms.py:96 msgid "Backup files have to be in .tar.gz format" -msgstr "" +msgstr "Back-up bestanden moeten in .tar.gz formaat zijn" #: plinth/modules/backups/forms.py:97 msgid "Select the backup file you want to upload" -msgstr "" +msgstr "Selecteer het back-upbestand dat u wilt uploaden" #: plinth/modules/backups/forms.py:103 -#, fuzzy -#| msgid "packages not found" msgid "Repository path format incorrect." -msgstr "pakketten niet gevonden" +msgstr "Repository pad-indeling is onjuist." #: plinth/modules/backups/forms.py:110 -#, fuzzy, python-brace-format -#| msgid "Invalid server name" +#, python-brace-format msgid "Invalid username: {username}" -msgstr "Foute servernaam" +msgstr "Ongeldige gebruikersnaam: {username}" #: plinth/modules/backups/forms.py:120 -#, fuzzy, python-brace-format -#| msgid "Invalid hostname" +#, python-brace-format msgid "Invalid hostname: {hostname}" -msgstr "Foutieve hostnaam" +msgstr "Ongeldige hostnaam: {hostname}" #: plinth/modules/backups/forms.py:124 #, python-brace-format msgid "Invalid directory path: {dir_path}" -msgstr "" +msgstr "Ongeldig pad: {dir_path}" #: plinth/modules/backups/forms.py:130 -#, fuzzy -#| msgid "Description" msgid "Encryption" -msgstr "Omschrijving" +msgstr "Encryptie" #: plinth/modules/backups/forms.py:131 msgid "" @@ -213,89 +205,87 @@ msgstr "Wachtwoordzin" #: plinth/modules/backups/forms.py:136 msgid "Passphrase; Only needed when using encryption." -msgstr "" +msgstr "Wachtwoordzin; Alleen nodig bij het gebruik van versleuteling." #: plinth/modules/backups/forms.py:139 -#, fuzzy -#| msgid "Passphrase" msgid "Confirm Passphrase" -msgstr "Wachtwoordzin" +msgstr "Wachtwoordzin bevestigen" #: plinth/modules/backups/forms.py:139 msgid "Repeat the passphrase." -msgstr "" +msgstr "Herhaal de wachtwoordzin." #: plinth/modules/backups/forms.py:150 msgid "The entered encryption passphrases do not match" -msgstr "" +msgstr "De ingevoerde coderingswachtwoorden komen niet overeen" #: plinth/modules/backups/forms.py:154 msgid "Passphrase is needed for encryption." -msgstr "" +msgstr "Wachtwoordzin is nodig voor versleuteling." #: plinth/modules/backups/forms.py:189 msgid "Select Disk or Partition" -msgstr "" +msgstr "Schijf of partitie selecteren" #: plinth/modules/backups/forms.py:190 msgid "Backups will be stored in the directory FreedomBoxBackups" -msgstr "" +msgstr "Back-ups worden opgeslagen in de map FreedomBoxBackups" #: plinth/modules/backups/forms.py:199 msgid "SSH Repository Path" -msgstr "" +msgstr "SSH Repository Pad" #: plinth/modules/backups/forms.py:200 msgid "" "Path of a new or existing repository. Example: user@host:~/path/to/repo/" msgstr "" +"Pad naar een nieuwe of bestaande repository.Voorbeeld: user@host:~/pad/" +"naar/repo/" #: plinth/modules/backups/forms.py:204 -#, fuzzy -#| msgid "Save Password" msgid "SSH server password" -msgstr "Wachtwoord Opslaan" +msgstr "SSH-server wachtwoord" #: plinth/modules/backups/forms.py:205 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" +"Wachtwoord van de SSH Server.
SSH-sleutel-gebaseerde authenticatie is " +"nog niet mogelijk." #: plinth/modules/backups/forms.py:224 msgid "Remote backup repository already exists." -msgstr "" +msgstr "Externe backup repository bestaat al." #: plinth/modules/backups/forms.py:230 msgid "Select verified SSH public key" -msgstr "" +msgstr "Selecteer geverifieerde SSH openbare sleutel" #: plinth/modules/backups/repository.py:48 msgid "" "Connection refused - make sure you provided correct credentials and the " "server is running." msgstr "" +"Verbinding geweigerd - zorg ervoor dat de juiste inloggegevens zijn " +"opgegeven en dat de server actief is." #: plinth/modules/backups/repository.py:55 -#, fuzzy -#| msgid "Connection Type" msgid "Connection refused" -msgstr "Verbindingssoort" +msgstr "Verbinding geweigerd" #: plinth/modules/backups/repository.py:63 -#, fuzzy -#| msgid "packages not found" msgid "Repository not found" -msgstr "pakketten niet gevonden" +msgstr "Repository niet gevonden" #: plinth/modules/backups/repository.py:69 msgid "Incorrect encryption passphrase" -msgstr "" +msgstr "Onjuiste wachtwoordzin voor versleuteling" #: plinth/modules/backups/repository.py:74 msgid "SSH access denied" -msgstr "" +msgstr "SSH toegang geweigerd" #: plinth/modules/backups/repository.py:80 msgid "Repository path is neither empty nor is an existing backups repository." @@ -312,58 +302,40 @@ msgstr "{box_name} opslag" #: plinth/modules/backups/templates/backups.html:45 #: plinth/modules/backups/views.py:77 -#, fuzzy -#| msgid "Create Account" msgid "Create a new backup" -msgstr "Account aanmaken" +msgstr "Maak een nieuwe back-up" #: plinth/modules/backups/templates/backups.html:49 -#, fuzzy -#| msgid "Create Account" msgid "Create Backup" -msgstr "Account aanmaken" +msgstr "Maak een back-up" #: plinth/modules/backups/templates/backups.html:52 -#, fuzzy -#| msgid "Name for new backup archive." msgid "Upload and restore a backup archive" -msgstr "Naam voor nieuw back-uparchief." +msgstr "Een back-uparchief uploaden en herstellen" #: plinth/modules/backups/templates/backups.html:56 -#, fuzzy -#| msgid "Name for new backup archive." msgid "Upload and Restore" -msgstr "Naam voor nieuw back-uparchief." +msgstr "Uploaden en herstellen" #: plinth/modules/backups/templates/backups.html:59 -#, fuzzy -#| msgid "Existing custom services" msgid "Add a backup location" -msgstr "Bestaande aangepaste diensten" +msgstr "Een back-uplocatie toevoegen" #: plinth/modules/backups/templates/backups.html:63 -#, fuzzy -#| msgid "Existing custom services" msgid "Add Backup Location" -msgstr "Bestaande aangepaste diensten" +msgstr "Back-uplocatie toevoegen" #: plinth/modules/backups/templates/backups.html:66 -#, fuzzy -#| msgid "Existing custom services" msgid "Add a remote backup location" -msgstr "Bestaande aangepaste diensten" +msgstr "Een locatie voor externe back-ups toevoegen" #: plinth/modules/backups/templates/backups.html:70 -#, fuzzy -#| msgid "Existing custom services" msgid "Add Remote Backup Location" -msgstr "Bestaande aangepaste diensten" +msgstr "Locatie voor externe back-ups toevoegen" #: plinth/modules/backups/templates/backups.html:73 -#, fuzzy -#| msgid "Existing custom services" msgid "Existing Backups" -msgstr "Bestaande aangepaste diensten" +msgstr "Bestaande back-ups" #: plinth/modules/backups/templates/backups_add_remote_repository.html:34 #, python-format @@ -374,23 +346,20 @@ msgid "" msgstr "" #: plinth/modules/backups/templates/backups_add_remote_repository.html:43 -#, fuzzy -#| msgid "Create Connection" msgid "Create Location" -msgstr "Maak Verbinding" +msgstr "Locatie maken" #: plinth/modules/backups/templates/backups_add_repository.html:34 -#, fuzzy -#| msgid "Create User" +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" -msgstr "Nieuwe gebruiker registreren" +msgstr "Maak Repository" #: plinth/modules/backups/templates/backups_delete.html:27 msgid "Delete this archive permanently?" msgstr "Dit archief permanent verwijderen?" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -407,6 +376,7 @@ msgstr "Archief %(name)s verwijderen" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "Invoeren" @@ -426,29 +396,21 @@ msgid "" msgstr "" #: plinth/modules/backups/templates/backups_repository_remove.html:46 -#, fuzzy -#| msgid "Documentation" msgid "Remove Location" -msgstr "Documentatie" +msgstr "Locatie verwijderen" #: plinth/modules/backups/templates/backups_restore.html:30 -#, fuzzy -#| msgid "Welcome to %(box_name)s!" msgid "Restore data from" -msgstr "Welkom bij %(box_name)s!" +msgstr "Gegevens herstellen van" #: plinth/modules/backups/templates/backups_restore.html:43 #: plinth/modules/backups/views.py:171 -#, fuzzy -#| msgid "reStore" msgid "Restore" -msgstr "reStore" +msgstr "Herstellen" #: plinth/modules/backups/templates/backups_restore.html:47 -#, fuzzy -#| msgid "reStore" msgid "Restoring" -msgstr "reStore" +msgstr "Backup aan het terugzetten" #: plinth/modules/backups/templates/backups_upload.html:32 #, python-format @@ -475,10 +437,8 @@ msgid "" msgstr "" #: plinth/modules/backups/templates/backups_upload.html:56 -#, fuzzy -#| msgid "Download my profile" msgid "Upload file" -msgstr "Download mijn profiel" +msgstr "Bestand uploaden" #: plinth/modules/backups/templates/verify_ssh_hostkey.html:40 msgid "How to verify?" @@ -508,20 +468,16 @@ msgid "Archive deleted." msgstr "Archief verwijderd." #: plinth/modules/backups/views.py:124 -#, fuzzy -#| msgid "Name for new backup archive." msgid "Upload and restore a backup" -msgstr "Naam voor nieuw back-uparchief." +msgstr "Een back-up uploaden en herstellen" #: plinth/modules/backups/views.py:159 msgid "Restored files from backup." msgstr "" #: plinth/modules/backups/views.py:187 -#, fuzzy -#| msgid "Name for new backup archive." msgid "No backup file found." -msgstr "Naam voor nieuw back-uparchief." +msgstr "Er is geen back-upbestand gevonden." #: plinth/modules/backups/views.py:195 msgid "Restore from uploaded file" @@ -532,20 +488,16 @@ msgid "No additional disks available to add a repository." msgstr "" #: plinth/modules/backups/views.py:263 -#, fuzzy -#| msgid "Create Snapshot" msgid "Create backup repository" -msgstr "Maak Snapshot" +msgstr "Maak een back-up repository" #: plinth/modules/backups/views.py:290 msgid "Create remote backup repository" msgstr "" #: plinth/modules/backups/views.py:309 -#, fuzzy -#| msgid "Add new introducer" msgid "Added new remote SSH repository." -msgstr "Nieuwe introduceerder toevoegen" +msgstr "Nieuwe externe SSH-repository toegevoegd." #: plinth/modules/backups/views.py:331 msgid "Verify SSH hostkey" @@ -568,16 +520,12 @@ msgid "Authentication to remote server failed." msgstr "" #: plinth/modules/backups/views.py:385 -#, fuzzy -#| msgid "Error installing application: {error}" msgid "Error establishing connection to server: {}" -msgstr "Fout bij het installeren van de toepassing: {error}" +msgstr "Fout bij het tot stand brengen van een verbinding met de server: {}" #: plinth/modules/backups/views.py:396 -#, fuzzy -#| msgid "packages not found" msgid "Repository removed." -msgstr "pakketten niet gevonden" +msgstr "Repository verwijderd." #: plinth/modules/backups/views.py:410 msgid "Remove Repository" @@ -669,13 +617,7 @@ msgstr "" "Er is ook een webgebaseerde terminal beschikbaar voor consoleactiviteiten." #: plinth/modules/cockpit/__init__.py:57 -#, 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 with a {box_name} login. Sensitive " -#| "information and system altering abilities are limited to users belonging " -#| "to admin group." +#, python-brace-format msgid "" "When enabled, Cockpit will be available from /" "_cockpit/ path on the web server. It can be accessed by /" "_cockpit/ pad op de webserver. Het kan geraadpleegd worden door elke geregistreerde gebruiker die kan inloggen op " -"{box_name}. Toegang tot gevoelige (persoonlijke) informatie en de " -"mogelijkheid om het systeem aan te passen is beperkt tot de gebruikers die " -"tot de systeembeheerdergroep (admin) horen." +"\"{users_url}\">iedere gebruiker op {box_name} die lid is van de " +"systeembeheerdergroep (admin)." #: plinth/modules/config/__init__.py:60 plinth/modules/dynamicdns/views.py:45 #: plinth/modules/i2p/views.py:31 plinth/modules/names/templates/names.html:44 @@ -707,10 +647,8 @@ msgid "Invalid domain name" msgstr "Foutieve domeinnaam" #: plinth/modules/config/forms.py:50 -#, fuzzy -#| msgid "Default" msgid "Apache Default" -msgstr "Standaard" +msgstr "Apache standaard" #: plinth/modules/config/forms.py:51 msgid "FreedomBox Service (Plinth)" @@ -755,10 +693,8 @@ msgstr "" "niet langer zijn dan 253 tekens." #: plinth/modules/config/forms.py:94 -#, fuzzy -#| msgid "Web Server (HTTP)" msgid "Webserver Home Page" -msgstr "Webserver (HTTP)" +msgstr "Startpagina van de webserver" #: plinth/modules/config/forms.py:96 #, python-brace-format @@ -811,20 +747,19 @@ msgid "Domain name set" msgstr "Domeinnaam ingesteld" #: plinth/modules/config/views.py:100 -#, fuzzy, python-brace-format -#| msgid "Error setting hostname: {exception}" +#, python-brace-format msgid "Error setting webserver home page: {exception}" -msgstr "Hostnaam instellen mislukt: {exception}" +msgstr "" +"Fout bij het instellen van de startpagina van de webserver: {exception}" #: plinth/modules/config/views.py:103 msgid "Webserver home page set" -msgstr "Webserver start pagina ingesteld" +msgstr "Startpagina van webserver ingesteld" #: plinth/modules/config/views.py:111 -#, fuzzy, python-brace-format -#| msgid "Error setting domain name: {exception}" +#, python-brace-format msgid "Error changing advanced mode: {exception}" -msgstr "Domeinnaam instellen mislukt: {exception}" +msgstr "Fout bij het wijzigen van de geavanceerde modus: {exception}" #: plinth/modules/config/views.py:116 msgid "Showing advanced apps and features" @@ -832,7 +767,7 @@ msgstr "" #: plinth/modules/config/views.py:119 msgid "Hiding advanced apps and features" -msgstr "" +msgstr "Geavanceerde applicaties en functies verbergen" #: plinth/modules/coquelicot/__init__.py:40 msgid "Coquelicot" @@ -919,7 +854,7 @@ msgstr "" #: plinth/modules/datetime/__init__.py:99 msgid "Time synchronized to NTP server" -msgstr "" +msgstr "Tijd gesynchroniseerd met NTP-server" #: plinth/modules/datetime/forms.py:35 msgid "Time Zone" @@ -1080,7 +1015,7 @@ msgstr "" "Gebruiker IDs zien er uit als username@diaspora.%(domain_name)s
" "Als de FreedomBox domeinnaam wordt gewijzigd, is alle data van de gebruikers " "die geregistreerd zijn met de vorige podnaam zijn niet meer toegankelijk. " -"
Je kunt de diaspora* pod bereiken op De diaspora* pod is bereikbaar op diaspora.%(domain_name)s " #: plinth/modules/diaspora/templates/diaspora-pre-setup.html:58 @@ -1147,10 +1082,8 @@ msgstr "" "vraagt wordt dit beantwoord met het juiste IP adres." #: plinth/modules/dynamicdns/__init__.py:78 -#, fuzzy -#| msgid "Domain Name" msgid "Dynamic Domain Name" -msgstr "Domeinnaam" +msgstr "Dynamische domeinnaam" #: plinth/modules/dynamicdns/forms.py:43 msgid "" @@ -1391,12 +1324,7 @@ msgstr "" "XMPP server met de naam ejabberd worden ingesteld." #: plinth/modules/ejabberd/__init__.py:58 -#, fuzzy, python-brace-format -#| msgid "" -#| "To actually communicate, you can use the web " -#| "client or any other XMPP client. When enabled, ejabberd can be accessed " -#| "by any user with a {box_name} login." +#, python-brace-format msgid "" "To actually communicate, you can use the web client or any other Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Name of the share" +msgid "Name of the repository" +msgstr "Naam van de gedeelde bron" + +#: plinth/modules/gitweb/forms.py:36 +#, fuzzy +#| msgid "" +#| "A lowercase alpha-numeric string that uniquely identifies a share. " +#| "Example: media." +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" +"Een aaneengesloten reeks van kleine letters en/of cijfers, die " +"bestandsdeling aanduidt. Bijvoorbeeld: media." + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository's owner name" +msgstr "Repository verwijderd." + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Repository" +msgid "Private repository" +msgstr "Maak Repository" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Foutieve hostnaam" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "A share with this name already exists." +msgid "A repository with this name already exists." +msgstr "Er bestaat reeds een gedeelde map met deze naam." + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Repository" +msgid "Create repository" +msgstr "Maak Repository" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Repository" +msgid "Manage Repositories" +msgstr "Maak Repository" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "Tor relay poort beschikbaar" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "Verwijder gebruiker %(username)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Ga naar site %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "Verwijder Wiki of Blog %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this snapshot permanently?" +msgid "Delete this repository permanently?" +msgstr "Deze Snapshot permanent verwijderen?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "%(name)s verwijderen" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository created." +msgstr "Repository verwijderd." + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository edited." +msgstr "Repository verwijderd." + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Repository" +msgid "Edit repository" +msgstr "Maak Repository" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "Er is een fout opgetreden tijdens de configuratie." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} verwijderd." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "Verwijderen van {name} mislukt: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Documentatie" @@ -1635,19 +1730,19 @@ msgstr "Handmatig" #: plinth/modules/help/templates/help_support.html:24 #: plinth/templates/help-menu.html:42 plinth/templates/help-menu.html:43 msgid "Get Support" -msgstr "" +msgstr "Ondersteuning krijgen" #: plinth/modules/help/help.py:61 plinth/modules/help/help.py:98 #: plinth/modules/help/templates/help_feedback.html:24 #: plinth/templates/help-menu.html:48 plinth/templates/help-menu.html:49 msgid "Submit Feedback" -msgstr "" +msgstr "Feedback indienen" #: plinth/modules/help/help.py:66 plinth/modules/help/help.py:92 #: plinth/modules/help/templates/help_contribute.html:24 #: plinth/templates/help-menu.html:54 plinth/templates/help-menu.html:55 msgid "Contribute" -msgstr "" +msgstr "Bijdragen" #: plinth/modules/help/help.py:86 msgid "Documentation and FAQ" @@ -1741,10 +1836,8 @@ msgid "%(box_name)s is up to date." msgstr "De nieuwste versie van %(box_name)s is geïnstalleerd." #: plinth/modules/help/templates/help_about.html:94 -#, fuzzy -#| msgid "Security" msgid "Security Notice" -msgstr "Security" +msgstr "Veiligheidsmededeling" #: plinth/modules/help/templates/help_about.html:96 msgid "" @@ -1762,7 +1855,7 @@ msgstr "%(box_name)s Setup" #: plinth/modules/help/templates/help_contribute.html:27 msgid "The FreedomBox project welcomes contributions of all kinds." -msgstr "" +msgstr "Het FreedomBox-project verwelkomt alle soorten bijdragen." #: plinth/modules/help/templates/help_contribute.html:33 msgid "" @@ -1807,7 +1900,7 @@ msgstr "" #: plinth/modules/help/templates/help_feedback.html:51 msgid "Thank you!" -msgstr "" +msgstr "Bedankt!" #: plinth/modules/help/templates/help_index.html:27 #: plinth/templates/help-menu.html:23 plinth/templates/help-menu.html:28 @@ -1860,10 +1953,8 @@ msgstr "" "a> kanaal via de webinterface van IRC." #: plinth/modules/help/templates/help_manual.html:40 -#, fuzzy -#| msgid "downloading" msgid "Download as PDF" -msgstr "downloaden" +msgstr "Downloaden als PDF" #: plinth/modules/help/templates/help_support.html:27 #, python-format @@ -1878,6 +1969,8 @@ msgid "" "Search for past discussions or post a new query on our discussion forum." msgstr "" +"Zoek naar eerdere discussies of stel een nieuwe vraag op ons discussieforum." #: plinth/modules/help/templates/help_support.html:42 msgid "" @@ -1914,7 +2007,7 @@ msgstr "" #: plinth/modules/i2p/__init__.py:42 plinth/modules/i2p/manifest.py:31 msgid "I2P" -msgstr "" +msgstr "I2P" #: plinth/modules/i2p/__init__.py:44 plinth/modules/tor/__init__.py:48 msgid "Anonymity Network" @@ -1929,16 +2022,12 @@ msgid "" msgstr "" #: plinth/modules/i2p/__init__.py:51 -#, fuzzy -#| msgid "" -#| "For more information about the %(box_name)s project, see the %(box_name)s Wiki." msgid "" "Find more information about I2P on their project homepage." msgstr "" -"Voor meer informatie over het %(box_name)s project, zie de %(box_name)s Wiki." +"Vind meer informatie over I2P op hun project homepage." #: plinth/modules/i2p/__init__.py:53 msgid "" @@ -1947,16 +2036,12 @@ msgid "" msgstr "" #: plinth/modules/i2p/__init__.py:59 -#, fuzzy -#| msgid "Enable application" msgid "Manage I2P application" -msgstr "Toepassing inschakelen" +msgstr "I2P-toepassing beheren" #: plinth/modules/i2p/__init__.py:100 -#, fuzzy -#| msgid "Web Proxy" msgid "I2P Proxy" -msgstr "Web Proxy" +msgstr "I2P proxy" #: plinth/modules/i2p/templates/i2p_service.html:31 #: plinth/templates/clients.html:51 @@ -1965,15 +2050,15 @@ msgstr "Starten" #: plinth/modules/i2p/views.py:34 msgid "Proxies" -msgstr "" +msgstr "Proxies" #: plinth/modules/i2p/views.py:38 msgid "Anonymous torrents" -msgstr "" +msgstr "Anonieme torrents" #: plinth/modules/i2p/views.py:89 msgid "I2P Proxies and Tunnels" -msgstr "" +msgstr "I2P Proxies en Tunnels" #: plinth/modules/i2p/views.py:92 msgid "" @@ -1981,6 +2066,9 @@ msgid "" "For this, your browser, preferably a Tor Browser, needs to be configured for " "a proxy." msgstr "" +"I2P maakt het mogelijk anoniem het internet en verborgen diensten (eepsites) " +"te bezoeken. Hiervoor moet je browser , liefst een Tor Browser, ingesteld " +"zijn met een proxy." #: plinth/modules/i2p/views.py:95 msgid "" @@ -1990,7 +2078,7 @@ msgstr "" #: plinth/modules/i2p/views.py:104 msgid "Anonymous Torrents" -msgstr "" +msgstr "Anonieme Torrents" #: plinth/modules/i2p/views.py:107 msgid "" @@ -2038,21 +2126,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Bekijken en bewerken van wiki toepassingen" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Type" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "Alleen alfanumerieke tekens zijn toegestaan." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Beheerdersaccount naam" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Beheerdersaccount wachtwooord" @@ -2070,16 +2154,12 @@ msgstr "Stel Wiki's en Blog's in" msgid "No wikis or blogs available." msgstr "Geen wiki's of blogs beschikbaar." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Maak een Wiki of Blog" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "Verwijder site %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Ga naar site %(site)s" @@ -2097,11 +2177,6 @@ msgstr "" "Deze actie zal alle bijdragen, pagina's, en commentaar inclusief revisie-" "historie. Deze wiki of blog permanent verwijderen?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "%(name)s verwijderen" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2122,14 +2197,16 @@ msgstr "Blog {name} gemaakt." msgid "Could not create blog: {error}" msgstr "Kan blog niet aanmaken: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} verwijderd." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "Verwijderen van {name} mislukt: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -2294,16 +2371,13 @@ msgid "Obtain" msgstr "Verkrijgen" #: plinth/modules/letsencrypt/templates/letsencrypt.html:134 -#, fuzzy, python-format -#| msgid "" -#| "No domains have been configured. Configure domains to be able to obtain " -#| "certificates for them." +#, python-format msgid "" "No domains have been configured. Configure " "domains to be able to obtain certificates for them." msgstr "" -"Er zijn geen geconfigureerde domeinen. Stel domeinen in om certificaten " -"ervoor te kunnen uitgeven." +"Er zijn geen geconfigureerde domeinen. Stel " +"domeinen in om certificaten ervoor te kunnen uitgeven." #: plinth/modules/letsencrypt/views.py:55 #, python-brace-format @@ -2441,6 +2515,8 @@ msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" +"Nieuwe gebruikers kunnen worden geregistreerd vanaf elke client als de " +"openbare registratie is ingeschakeld." #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:45 #, python-format @@ -2654,16 +2730,12 @@ msgstr "Instelling schade bijgewerkt" #: plinth/modules/mldonkey/__init__.py:40 #: plinth/modules/mldonkey/manifest.py:27 -#, fuzzy -#| msgid "Monkeysphere" msgid "MLDonkey" -msgstr "Monkeysphere" +msgstr "MLDonkey" #: plinth/modules/mldonkey/__init__.py:42 -#, fuzzy -#| msgid "File Sharing" msgid "Peer-to-peer File Sharing" -msgstr "Delen van bestanden" +msgstr "Peer-to-peer bestandsdeling" #: plinth/modules/mldonkey/__init__.py:45 msgid "" @@ -2686,22 +2758,16 @@ msgid "" msgstr "" #: plinth/modules/mldonkey/__init__.py:61 -#, fuzzy -#| msgid "Download files using BitTorrent applications" msgid "Download files using eDonkey applications" -msgstr "Download bestanden met BitTorrent toepassingen" +msgstr "Bestanden downloaden met eDonkey-toepassingen" #: plinth/modules/mldonkey/manifest.py:34 -#, fuzzy -#| msgid "Monkeysphere" msgid "KMLDonkey" -msgstr "Monkeysphere" +msgstr "KMLDonkey" #: plinth/modules/mldonkey/manifest.py:46 -#, fuzzy -#| msgid "Monkeysphere" msgid "AMLDonkey" -msgstr "Monkeysphere" +msgstr "AMLDonkey" #: plinth/modules/monkeysphere/__init__.py:32 #: plinth/modules/monkeysphere/templates/monkeysphere_details.html:26 @@ -2924,11 +2990,11 @@ msgstr "" #: plinth/modules/names/components.py:27 msgid "All" -msgstr "" +msgstr "Alle" #: plinth/modules/names/components.py:31 plinth/modules/names/components.py:35 msgid "All web apps" -msgstr "" +msgstr "Alle webapps" #: plinth/modules/networks/__init__.py:36 msgid "Networks" @@ -3521,10 +3587,8 @@ msgid "Computer" msgstr "Computer" #: plinth/modules/networks/templates/connections_list.html:72 -#, fuzzy -#| msgid "Connection" msgid "Connections" -msgstr "Verbinding" +msgstr "Verbindingen" #: plinth/modules/networks/templates/connections_list.html:80 #, python-format @@ -3585,14 +3649,7 @@ msgid "Profile" msgstr "Profiel" #: plinth/modules/openvpn/templates/openvpn.html:43 -#, fuzzy, python-format -#| msgid "" -#| "To connect to %(box_name)s's VPN, you need to download a profile and feed " -#| "it to an OpenVPN client on your mobile or desktop machine. OpenVPN " -#| "Clients are available for most platforms. See documentation on recommended clients and instructions on " -#| "how to configure them." +#, python-format msgid "" "To connect to %(box_name)s's VPN, you need to download a profile and feed it " "to an OpenVPN client on your mobile or desktop machine. OpenVPN Clients are " @@ -3602,9 +3659,9 @@ msgid "" msgstr "" "Om te verbinden met de VPN van %(box_name)s moet een profiel worden " "gedownload, en ingesteld worden in een OpenVPN cliënt op de mobiele of " -"desktop computer. Zie deze (Engelstalige) documentatie met aanbevolen cliënts en gebruiksinstructies." +"desktop computer. Zie deze (Engelstalige) handleiding met " +"aanbevolen cliënts en gebruiksinstructies." #: plinth/modules/openvpn/templates/openvpn.html:55 #, python-format @@ -3730,10 +3787,8 @@ msgstr "" "{box_name} van een van je vrienden te gebruiken." #: plinth/modules/pagekite/__init__.py:88 -#, fuzzy -#| msgid "PageKite Account" msgid "PageKite Domain" -msgstr "PageKite Account" +msgstr "PageKite domein" #: plinth/modules/pagekite/forms.py:67 msgid "Enable PageKite" @@ -4080,15 +4135,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "Gebruik {url} via proxy {proxy} op tcp{kind}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "Quassel" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "IRC Cliënt" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4106,7 +4161,7 @@ msgstr "" "telefoon kunnen worden gebruikt om te verbinden of de verbinding te " "verbreken." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your desktop en mobiele apparaten." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Subdomein" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "Quasseldroid" @@ -4158,45 +4225,36 @@ msgstr "" "wijzigingen aanbrengen." #: plinth/modules/radicale/forms.py:34 -#, fuzzy, python-brace-format -#| msgid "" -#| "Any user can view any calendar/addressbook, but only the owner can make " -#| "changes." +#, python-brace-format msgid "" "Any user with a {box_name} login can view any calendar/addressbook, but only " "the owner can make changes." msgstr "" -"Elke gebruiker kan een kalender/adresboek bekijken, maar alleen de eigenaar " -"kan wijzigingen aanbrengen." +"Elke gebruiker met een {box_name} login kan een kalender/adresboek bekijken, " +"maar alleen de eigenaar kan wijzigingen aanbrengen." #: plinth/modules/radicale/forms.py:39 -#, fuzzy, python-brace-format -#| msgid "Any user can view or make changes to any calendar/addressbook." +#, python-brace-format msgid "" "Any user with a {box_name} login can view or make changes to any calendar/" "addressbook." msgstr "" -"Elke gebruiker kan bekijken of wijzigingen aanbrengen in een kalender/" -"adresboek." +"Elke gebruiker met een {box_name} login kan kijken of wijzigingen aanbrengen " +"in een kalender/adresboek." #: plinth/modules/radicale/manifest.py:25 msgid "DAVx5" -msgstr "" +msgstr "DAVx5" #: plinth/modules/radicale/manifest.py:27 -#, fuzzy -#| msgid "" -#| "Enter the URL of the Radicale server (e.g. http://localhost:5232) and " -#| "your user name. DAVdroid will show all existing calendars and address " -#| "books and you can create new." msgid "" "Enter the URL of the Radicale server (e.g. https://) and your user name. DAVx5 will show all existing calendars and " "address books and you can create new." msgstr "" -"Voer de URL van de Radicale-server (bijv. http://localhost:5232) en uw " -"gebruikersnaam in. DAVdroid toont alle bestaande kalenders en adresboeken en " -"u kunt nieuwe maken." +"Voer de URL van de Radicale-server (bijv. https://) " +"en uw gebruikersnaam in. DAVx5 toont alle bestaande kalenders en adresboeken " +"en u kunt nieuwe maken." #: plinth/modules/radicale/manifest.py:44 msgid "GNOME Calendar" @@ -4219,12 +4277,6 @@ msgstr "" "een geïntegreerde e-mail, agenda en adresboek functionaliteit." #: plinth/modules/radicale/manifest.py:78 -#, fuzzy -#| msgid "" -#| "In Evolution add a new calendar and address book respectively with " -#| "WebDAV. Enter the URL of the Radicale server (e.g. http://localhost:5232) " -#| "and your user name. Clicking on the search button will list the existing " -#| "calendars and address books." msgid "" "In Evolution add a new calendar and address book respectively with WebDAV. " "Enter the URL of the Radicale server (e.g. https://) en uw gebruikersnaam. Klikken op de zoekknop zal de " +"bestaande kalenders en adresboeken weergeven." #: plinth/modules/radicale/views.py:56 msgid "Access rights configuration updated" @@ -4444,22 +4496,19 @@ msgstr "Strikt" #: plinth/modules/searx/forms.py:35 msgid "Allow Public Access" -msgstr "" +msgstr "Openbare toegang toestaan" #: plinth/modules/searx/forms.py:36 msgid "Allow this application to be used by anyone who can reach it." msgstr "" +"Sta toe dat deze applicatie wordt gebruikt door iedereen die er toegang toe " +"heeft." #: plinth/modules/searx/views.py:59 plinth/modules/searx/views.py:70 #: plinth/modules/tor/views.py:141 plinth/modules/tor/views.py:168 msgid "Configuration updated." msgstr "Configuratie bijgewerkt." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "Er is een fout opgetreden tijdens de configuratie." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "Beperk console-aanmeldingen (aanbevolen)" @@ -4489,17 +4538,13 @@ msgstr "" #: plinth/modules/security/templates/security.html:26 #: plinth/modules/security/templates/security.html:28 -#, fuzzy -#| msgid "Security" msgid "Show security report" -msgstr "Security" +msgstr "Beveiligingsrapport weergeven" #: plinth/modules/security/templates/security_report.html:25 #: plinth/modules/security/views.py:91 -#, fuzzy -#| msgid "Security" msgid "Security Report" -msgstr "Security" +msgstr "Beveiligingsrapport" #: plinth/modules/security/templates/security_report.html:27 #, python-format @@ -4515,18 +4560,16 @@ msgid "" msgstr "" #: plinth/modules/security/templates/security_report.html:41 -#, fuzzy -#| msgid "Name" msgid "App Name" -msgstr "Naam" +msgstr "Applicatie naam" #: plinth/modules/security/templates/security_report.html:42 msgid "Current Vulnerabilities" -msgstr "" +msgstr "Huidige kwetsbaarheden" #: plinth/modules/security/templates/security_report.html:43 msgid "Past Vulnerabilities" -msgstr "" +msgstr "Kwetsbaarheden in het verleden" #: plinth/modules/security/views.py:73 #, python-brace-format @@ -4660,32 +4703,24 @@ msgid "Disk path to a folder on this server that you intend to share." msgstr "Pad naar een map op deze server die u wilt delen." #: plinth/modules/sharing/forms.py:43 -#, fuzzy -#| msgid "Publish Key" msgid "Public share" -msgstr "Sleutel Publiceren" +msgstr "Publieke share" #: plinth/modules/sharing/forms.py:44 msgid "Make files in this folder available to anyone with the link." -msgstr "" +msgstr "Bestanden in deze map beschikbaar maken voor iedereen met de link." #: plinth/modules/sharing/forms.py:48 -#, fuzzy -#| msgid "User groups who can read the files in the share" msgid "User groups that can read the files in the share" msgstr "Gebruikersgroepen die de bestanden in de share kunnen lezen" #: plinth/modules/sharing/forms.py:50 -#, fuzzy -#| msgid "" -#| "Users who have these permissions will also be able to read the files in " -#| "the share." msgid "" "Users of the selected user groups will be able to read the files in the " "share." msgstr "" -"Gebruikers die deze permissies hebben kunnen ook de bestanden in de share " -"lezen." +"Gebruikers in de geselecteerde gebruikersgroepen kunnen de bestanden in de " +"share lezen." #: plinth/modules/sharing/forms.py:67 msgid "A share with this name already exists." @@ -4693,7 +4728,7 @@ msgstr "Er bestaat reeds een gedeelde map met deze naam." #: plinth/modules/sharing/forms.py:78 msgid "Shares should be either public or shared with at least one group" -msgstr "" +msgstr "Shares moeten openbaar zijn of gedeeld worden met minimaal één groep" #: plinth/modules/sharing/templates/sharing.html:43 #: plinth/modules/sharing/templates/sharing.html:46 @@ -4718,7 +4753,7 @@ msgstr "Met Groepen" #: plinth/modules/sharing/templates/sharing.html:77 msgid "public access" -msgstr "" +msgstr "openbare toegang" #: plinth/modules/sharing/views.py:54 msgid "Share added." @@ -4763,19 +4798,15 @@ msgid "" msgstr "" #: plinth/modules/snapshot/__init__.py:47 -#, fuzzy -#| msgid "" -#| "Snapshots work on btrfs file systems only and on the root partition only. " -#| "Snapshots are not a replacement for backups since they are stored on the " -#| "same partition. " msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -"Snapshots werken alleen op btrfs bestandssystemen, en enkel op de root-" -"partitie. Snapshots zijn geen vervanging van backups aangezien ze op " -"dezelfde partitie als hun bron worden bewaard. " +"Snapshots werken momenteel alleen op btrfs bestandssystemen, en enkel op de " +"root-partitie. Snapshots zijn geen vervanging van backups aangezien ze op dezelfde partitie als hun bron worden " +"bewaard. " #: plinth/modules/snapshot/forms.py:27 msgid "Free Disk Space to Maintain" @@ -4845,9 +4876,6 @@ msgid "Yearly Snapshots Limit" msgstr "Jaarlijkse Snapshots limiet" #: plinth/modules/snapshot/forms.py:63 -#, fuzzy -#| msgid "" -#| "Keep a maximum of this many yearly snapshots. The default is 0 (disabled)." msgid "" "Keep a maximum of this many yearly snapshots. The default value is 0 " "(disabled)." @@ -4938,16 +4966,12 @@ msgid "Action error: {0} [{1}] [{2}]" msgstr "Actiefout: {0} [{1}] [{2}]" #: plinth/modules/snapshot/views.py:175 -#, fuzzy -#| msgid "Deleted all snapshots." msgid "Deleted all snapshots" -msgstr "Snapshots allemaal verwijderd." +msgstr "Alle snapshots verwijderd" #: plinth/modules/snapshot/views.py:179 -#, fuzzy -#| msgid "Delete all the snapshots" msgid "Deleted selected snapshots" -msgstr "Verwijder alle snapshots" +msgstr "Verwijderde geselecteerde snapshots" #: plinth/modules/snapshot/views.py:184 msgid "Snapshot is currently in use. Please try again later." @@ -4967,11 +4991,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "Terugdraaien naar Snapshot" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "Secure Shell (SSH) Server" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4983,6 +5007,28 @@ msgstr "" "andere locatie die daarvoor geautoriseerd is, kan beheerdertaken uitvoeren, " "bestanden kopiëren en andere taken verrichten door zulk een verbinding." +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH Vingerafdruk" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH Vingerafdruk" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "Eenmalige aanmelding" @@ -5030,17 +5076,15 @@ msgstr "{disk_size:.1f} TiB" #: plinth/modules/storage/__init__.py:237 msgid "The operation failed." -msgstr "" +msgstr "De bewerking is mislukt." #: plinth/modules/storage/__init__.py:239 msgid "The operation was cancelled." -msgstr "" +msgstr "De bewerking is afgebroken." #: plinth/modules/storage/__init__.py:241 -#, fuzzy -#| msgid "repro service is running" msgid "The device is already unmounting." -msgstr "repro-service wordt uitgevoerd" +msgstr "Het apparaat is al aan het ontkoppelen." #: plinth/modules/storage/__init__.py:243 msgid "The operation is not supported due to missing driver/tool support." @@ -5048,7 +5092,7 @@ msgstr "" #: plinth/modules/storage/__init__.py:246 msgid "The operation timed out." -msgstr "" +msgstr "Er is een time-out opgetreden voor deze bewerking." #: plinth/modules/storage/__init__.py:248 msgid "The operation would wake up a disk that is in a deep-sleep state." @@ -5056,27 +5100,23 @@ msgstr "" #: plinth/modules/storage/__init__.py:251 msgid "Attempting to unmount a device that is busy." -msgstr "" +msgstr "Poging om een apparaat te ontkoppelen dat in gebruik is." #: plinth/modules/storage/__init__.py:253 msgid "The operation has already been cancelled." -msgstr "" +msgstr "De bewerking is al geannuleerd." #: plinth/modules/storage/__init__.py:259 msgid "Not authorized to perform the requested operation." msgstr "" #: plinth/modules/storage/__init__.py:261 -#, fuzzy -#| msgid "This service already exists" msgid "The device is already mounted." -msgstr "Deze dienst bestaat al" +msgstr "Het apparaat is al gekoppeld." #: plinth/modules/storage/__init__.py:263 -#, fuzzy -#| msgid "repro service is not running" msgid "The device is not mounted." -msgstr "repro-service is niet actief" +msgstr "Het apparaat is niet ge-mount." #: plinth/modules/storage/__init__.py:266 msgid "Not permitted to use the requested option." @@ -5087,10 +5127,8 @@ msgid "The device is mounted by another user." msgstr "" #: plinth/modules/storage/templates/storage.html:53 -#, fuzzy -#| msgid "The following disks are in use:" msgid "The following storage devices are in use:" -msgstr "De volgende schijven worden gebruikt:" +msgstr "De volgende opslagapparaten zijn in gebruik:" #: plinth/modules/storage/templates/storage.html:59 msgid "Label" @@ -5158,11 +5196,11 @@ msgstr "" #: plinth/modules/storage/views.py:132 #, python-brace-format msgid "{drive_vendor} {drive_model} can be safely unplugged." -msgstr "" +msgstr "{drive_vendor} {drive_model} kan veilig worden losgekoppeld." #: plinth/modules/storage/views.py:136 msgid "Device can be safely unplugged." -msgstr "" +msgstr "Het apparaat kan veilig worden losgekoppeld." #: plinth/modules/storage/views.py:146 #, python-brace-format @@ -5591,44 +5629,37 @@ msgstr "Update" #: plinth/modules/upgrades/__init__.py:38 msgid "Check for and apply the latest software and security updates." msgstr "" +"Controleer de nieuwste software- en beveiligingsupdates en pas deze toe." #: plinth/modules/upgrades/forms.py:28 -#, fuzzy -#| msgid "Enable automatic upgrades" msgid "Enable auto-update" msgstr "Automatisch bijwerken inschakelen" #: plinth/modules/upgrades/forms.py:29 msgid "When enabled, FreedomBox automatically updates once a day." msgstr "" +"Als deze functie is ingeschakeld, wordt FreedomBox automatisch één keer per " +"dag bijgewerkt." #: plinth/modules/upgrades/templates/upgrades.html:45 -#, fuzzy -#| msgid "Update" msgid "Update now" -msgstr "Update" +msgstr "Nu bijwerken" #: plinth/modules/upgrades/templates/upgrades.html:54 msgid "Updating..." -msgstr "" +msgstr "Bezig met bijwerken…" #: plinth/modules/upgrades/templates/upgrades.html:59 -#, fuzzy -#| msgid "" -#| "Depending on the number of packages to install, this may take a long time " -#| "to complete. While upgrades are in progress, you will not be able to " -#| "install other packages. During the upgrade, this web interface may be " -#| "temporarily unavailable and show an error. Refresh the page to continue." msgid "" "This may take a long time to complete. During an update, " "you cannot install apps. Also, this web interface may be temporarily " "unavailable and show an error. In that case, refresh the page to continue." msgstr "" -"Afhankelijk van het aantal te installeren pakketten, kan het updaten lang " -"duren. Tijdens softwareupgrades is het niet mogelijk om andere installaties " -"te starten. Tijdens de upgrade kan deze webinterface tijdelijk niet " -"beschikbaar zijn, en een foutmelding weergeven. Vernieuw de pagina om door " -"te gaan." +"Afhankelijk van het aantal te installeren pakketten, kan het updaten " +"lang duren. Tijdens softwareupgrades is het niet mogelijk om " +"andere installaties te starten. Tijdens de upgrade kan deze webinterface " +"tijdelijk niet beschikbaar zijn, en een foutmelding weergeven. Vernieuw in " +"dat geval de pagina om door te gaan." #: plinth/modules/upgrades/templates/upgrades.html:73 msgid "Toggle recent update logs" @@ -5637,10 +5668,8 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:26 #: plinth/modules/upgrades/templates/upgrades_configure.html:27 #: plinth/modules/upgrades/views.py:107 -#, fuzzy -#| msgid "Last update" msgid "Manual update" -msgstr "Laatste bijwerking" +msgstr "Handmatige update" #: plinth/modules/upgrades/views.py:66 #, python-brace-format @@ -5729,7 +5758,7 @@ msgstr "Nieuwe gebruiker aan groep {group} toevoegen mislukt." #: plinth/modules/users/forms.py:150 msgid "Authorized SSH Keys" -msgstr "" +msgstr "Geautoriseerde SSH-sleutels" #: plinth/modules/users/forms.py:154 msgid "" @@ -5975,8 +6004,7 @@ msgid "Service %(service_name)s is not running." msgstr "Service %(service_name)s is niet actief." #: plinth/templates/base.html:50 -#, fuzzy, python-format -#| msgid "Core funtionality and web interface for %(box_name)s" +#, python-format msgid "Core functionality and web interface for %(box_name)s" msgstr "Basisfunctionaliteit en webinterface voor %(box_name)s" @@ -6166,10 +6194,8 @@ msgstr "" "%(interface_list)s" #: plinth/templates/port-forwarding-info.html:23 -#, fuzzy -#| msgid "Enable forwarding" msgid "Port Forwarding" -msgstr "Doorsturen inschakelen" +msgstr "Port Forwarding" #: plinth/templates/port-forwarding-info.html:26 #, python-format @@ -6235,7 +6261,13 @@ msgstr "Toepassing uitgeschakeld" #: plinth/web_framework.py:189 msgid "Gujarati" -msgstr "" +msgstr "Gujarati" + +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "Alleen alfanumerieke tekens zijn toegestaan." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Maak een Wiki of Blog" #~ msgid "Manage" #~ msgstr "Instellen" @@ -6246,9 +6278,6 @@ msgstr "" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "De voucher die u bij uw {box_name} Danube Edition hebt ontvangen" -#~ msgid "Subdomain" -#~ msgstr "Subdomein" - #~ msgid "The subdomain you want to register" #~ msgstr "Het subdomein dat u wilt registreren" @@ -6629,9 +6658,6 @@ msgstr "" #~ msgid "SSH Keys" #~ msgstr "SSH Sleutels" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "Deze Snapshot permanent verwijderen?" - #~ msgid "Delete Snapshot #%(number)s" #~ msgstr "Snapshot #%(number)s verwijderen" diff --git a/plinth/locale/pl/LC_MESSAGES/django.po b/plinth/locale/pl/LC_MESSAGES/django.po index 6ebf11af8..c4d916a45 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-08-08 00:23+0000\n" "Last-Translator: Radek Pasiok \n" "Language-Team: Polish Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Create new repository" +msgid "Name of the repository" +msgstr "Utwórz nowe repozytorium" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +#, fuzzy +#| msgid "Create new repository" +msgid "Description of the repository" +msgstr "Utwórz nowe repozytorium" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository's owner name" +msgstr "Usunięto repozytorium." + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Repository" +msgid "Private repository" +msgstr "Utwórz repozytorium" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Niewłaściwa nazwa hosta" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "Remote backup repository already exists." +msgid "A repository with this name already exists." +msgstr "Zdalne repozytorium już istnieje." + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Repository" +msgid "Create repository" +msgstr "Utwórz repozytorium" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Repository" +msgid "Manage Repositories" +msgstr "Utwórz repozytorium" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete Archive %(name)s" +msgid "Delete repository %(repo.name)s" +msgstr "Usuń archiwum %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "Usuń wiki lub blog %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this archive permanently?" +msgid "Delete this repository permanently?" +msgstr "Usunąć trwale to archiwum?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "Usuń %(name)s" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository created." +msgstr "Usunięto repozytorium." + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository edited." +msgstr "Usunięto repozytorium." + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Repository" +msgid "Edit repository" +msgstr "Utwórz repozytorium" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Dokumentacja" @@ -1947,21 +2109,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Aplikacje i usługi" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Typ" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "Dozwolone są tylko znaki alfanumeryczne." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Nazwa konta administratora" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Hasło konta administratora" @@ -1979,16 +2137,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -2006,11 +2160,6 @@ msgstr "" "Ta akcja spowoduje usunięcie wszystkich postów, stron oraz komentarzy - w " "tym historii zmian. Trwale usunąć wiki lub blog?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "Usuń %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2031,14 +2180,15 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." -msgstr "" +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "Archive deleted." +msgid "{title} deleted." +msgstr "Archiwum zostało usunięte." -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3783,15 +3933,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3802,7 +3952,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Subdomena" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -4068,11 +4230,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4535,11 +4692,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4547,6 +4704,26 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "Administrator Account" +msgid "Server Fingerprints" +msgstr "Konto Administratora" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" @@ -5708,12 +5885,12 @@ msgstr "Aplikacja wyłączona" msgid "Gujarati" msgstr "" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "Dozwolone są tylko znaki alfanumeryczne." + #~ msgid "Create" #~ msgstr "Utwórz" -#~ msgid "Subdomain" -#~ msgstr "Subdomena" - #~ msgid "The subdomain you want to register" #~ msgstr "Subdomena którą chcesz zarejstrować" @@ -5750,9 +5927,6 @@ msgstr "" #~ msgid "Dynamic DNS Service" #~ msgstr "Usługa dynamicznego DNS" -#~ msgid "Create new repository" -#~ msgstr "Utwórz nowe repozytorium" - #~ msgid "Upload" #~ msgstr "Prześlij" diff --git a/plinth/locale/pt/LC_MESSAGES/django.po b/plinth/locale/pt/LC_MESSAGES/django.po index 621ae358f..36fb48f51 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-06-22 06:01+0000\n" "Last-Translator: adaragao \n" "Language-Team: Portuguese Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Create new repository" +msgid "Name of the repository" +msgstr "Criar novo repositório" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository's owner name" +msgstr "Repositório não encontrado" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create new repository" +msgid "Private repository" +msgstr "Criar novo repositório" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid domain name" +msgid "Invalid repository name." +msgstr "Nome de domínio inválido" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create new repository" +msgid "Create repository" +msgstr "Criar novo repositório" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create new repository" +msgid "Manage Repositories" +msgstr "Criar novo repositório" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete Archive %(name)s" +msgid "Delete repository %(repo.name)s" +msgstr "Apagar ficheiro %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this archive permanently?" +msgid "Delete this repository permanently?" +msgstr "Apagar este arquivo permanentemente?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository created." +msgstr "Repositório não encontrado" + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository edited." +msgstr "Repositório não encontrado" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create new repository" +msgid "Edit repository" +msgstr "Criar novo repositório" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1881,21 +2038,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Serviços e Aplicações" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1913,16 +2066,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1938,11 +2087,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1963,14 +2107,15 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." -msgstr "" +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "Archive deleted." +msgid "{title} deleted." +msgstr "Arquivo apagado." -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3713,15 +3858,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3732,7 +3877,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Domain Name" +msgid "TLS domain" +msgstr "Nome de Domínio" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -4000,11 +4157,6 @@ msgstr "" msgid "Configuration updated." msgstr "Configuração atualizada" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4452,11 +4604,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4464,6 +4616,26 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "Server Administration" +msgid "Server Fingerprints" +msgstr "Administração do servidor" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" @@ -5592,11 +5764,6 @@ msgstr "Aplicações" msgid "Gujarati" msgstr "" -#, fuzzy -#~| msgid "Domain Name" -#~ msgid "Subdomain" -#~ msgstr "Nome de Domínio" - #, fuzzy #~| msgid "Add Remote Repository" #~ msgid "Add Remote Location" diff --git a/plinth/locale/ru/LC_MESSAGES/django.po b/plinth/locale/ru/LC_MESSAGES/django.po index 9cfe56f5c..1100a5cc8 100644 --- a/plinth/locale/ru/LC_MESSAGES/django.po +++ b/plinth/locale/ru/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-07-22 17:06+0000\n" "Last-Translator: Igor \n" "Language-Team: Russian Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Name of the share" +msgid "Name of the repository" +msgstr "Имя общего ресурса" + +#: plinth/modules/gitweb/forms.py:36 +#, fuzzy +#| msgid "" +#| "A lowercase alpha-numeric string that uniquely identifies a share. " +#| "Example: media." +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" +"Цифро-буквенная строка в нижнем регистре, однозначно идентифицирующая " +"ресурс. Пример: media." + +#: plinth/modules/gitweb/forms.py:40 +#, fuzzy +#| msgid "Create new repository" +msgid "Description of the repository" +msgstr "Создать новый репозиторий" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository's owner name" +msgstr "Репозиторий удалён." + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Repository" +msgid "Private repository" +msgstr "Создать репозиторий" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Недопустимое имя хоста" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "A share with this name already exists." +msgid "A repository with this name already exists." +msgstr "Общий ресурс с таким именем уже существует." + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Repository" +msgid "Create repository" +msgstr "Создать репозиторий" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Repository" +msgid "Manage Repositories" +msgstr "Создать репозиторий" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "Доступен порт трансляции Tor" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "Удалить пользователя %(username)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Перейти к %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "Удалить Вики или Блог %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this snapshot permanently?" +msgid "Delete this repository permanently?" +msgstr "Окончательно удалить этот снимок?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "Удаление %(name)s" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository created." +msgstr "Репозиторий удалён." + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository edited." +msgstr "Репозиторий удалён." + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Repository" +msgid "Edit repository" +msgstr "Создать репозиторий" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "Произошла ошибка во время настройки." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} удален." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "Не удалось удалить {name}: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Документация" @@ -2019,21 +2190,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Просмотр и редактирование приложений Wiki" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Тип" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "Допускаются только буквенно-цифровые символы." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Имя учетной записи администратора" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Пароль учетной записи администратора" @@ -2051,16 +2218,12 @@ msgstr "Управление Блогами и Вики" msgid "No wikis or blogs available." msgstr "Нет доступных вики или блогов." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Создать Вики или Блог" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "Удаление узла %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Перейти к %(site)s" @@ -2078,11 +2241,6 @@ msgstr "" "Это действие приведет к удалению всех постов, страниц и комментариев, " "включая историю изменений. Окончательно удалить этот вики или блог?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "Удаление %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2103,14 +2261,16 @@ msgstr "Созданный блог {name}." msgid "Could not create blog: {error}" msgstr "Не удалось создать блог: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} удален." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "Не удалось удалить {name}: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -4047,15 +4207,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "Доступ к {url} с прокси {proxy} на tcp{kind}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "Quassel" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "IRC-клиент" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4072,7 +4232,7 @@ msgstr "" "клиентов. Для этого могут использоваться как клиенты настольного компьютера, " "так и мобильные версии." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your для десктопов и мобильных устройств." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Субдомен" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "Quasseldroid" @@ -4412,11 +4584,6 @@ msgstr "" msgid "Configuration updated." msgstr "Конфигурация обновлена." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "Произошла ошибка во время настройки." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "Ограничение консольного входа (рекомендуется)" @@ -4916,11 +5083,11 @@ msgstr "Необходимо перезагрузить систему для з msgid "Rollback to Snapshot" msgstr "Откат к снимку" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "Secure Shell (SSH) сервер" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4932,6 +5099,28 @@ msgstr "" "может выполнять задачи администрирования, копировать файлы или запускать " "другие услуги с использованием таких соединений." +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH отпечаток" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH отпечаток" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "Единый вход" @@ -6161,6 +6350,12 @@ msgstr "Приложение отключено" msgid "Gujarati" msgstr "Гуджарати" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "Допускаются только буквенно-цифровые символы." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Создать Вики или Блог" + #~ msgid "Manage" #~ msgstr "Управление" @@ -6170,9 +6365,6 @@ msgstr "Гуджарати" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "Вы получили ваучер с вашим {box_name} Danube Edition" -#~ msgid "Subdomain" -#~ msgstr "Субдомен" - #~ msgid "The subdomain you want to register" #~ msgstr "Субдомен, который вы хотите зарегистрировать" @@ -6221,9 +6413,6 @@ msgstr "Гуджарати" #~ msgid "Pagekite" #~ msgstr "Pаgekite" -#~ msgid "Create new repository" -#~ msgstr "Создать новый репозиторий" - #~ msgid "Upload" #~ msgstr "Скачать" @@ -6476,9 +6665,6 @@ msgstr "Гуджарати" #~ msgid "SSH Keys" #~ msgstr "Ключи SSH" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "Окончательно удалить этот снимок?" - #~ msgid "Delete Snapshot #%(number)s" #~ msgstr "Удалить снимок %(number)s" diff --git a/plinth/locale/sl/LC_MESSAGES/django.po b/plinth/locale/sl/LC_MESSAGES/django.po index f1a188d86..4f736e9a6 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-05-07 20:48+0000\n" "Last-Translator: Erik Ušaj \n" "Language-Team: Slovenian Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Create new repository" +msgid "Name of the repository" +msgstr "Ustvari novo skladišče" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository's owner name" +msgstr "Ne najdem skladišča" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create new repository" +msgid "Private repository" +msgstr "Ustvari novo skladišče" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Neveljavno ime gostitelja" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "Create remote backup repository" +msgid "A repository with this name already exists." +msgstr "Ustvari oddaljeno skladišče za rezervne kopije" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create new repository" +msgid "Create repository" +msgstr "Ustvari novo skladišče" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create new repository" +msgid "Manage Repositories" +msgstr "Ustvari novo skladišče" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete Archive %(name)s" +msgid "Delete repository %(repo.name)s" +msgstr "Brisanje arhiva %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this archive permanently?" +msgid "Delete this repository permanently?" +msgstr "Želite ta arhiv trajno izbrisati?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository created." +msgstr "Ne najdem skladišča" + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository edited." +msgstr "Ne najdem skladišča" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create new repository" +msgid "Edit repository" +msgstr "Ustvari novo skladišče" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1847,21 +2006,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1879,16 +2034,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1904,11 +2055,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1929,14 +2075,15 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." -msgstr "" +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "Archive deleted." +msgid "{title} deleted." +msgstr "Arhiv je izbrisan." -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3641,15 +3788,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3660,7 +3807,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3924,11 +4081,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4371,11 +4523,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4383,6 +4535,26 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "Server Administration" +msgid "Server Fingerprints" +msgstr "Skrbništvo strežnika" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/sv/LC_MESSAGES/django.po b/plinth/locale/sv/LC_MESSAGES/django.po index 0e3472f24..564b62d7d 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2016-07-23 19:30+0000\n" "Last-Translator: Caly \n" "Language-Team: Swedish Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Documentation" +msgid "Name of the repository" +msgstr "Dokumentation" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Documentation" +msgid "Private repository" +msgstr "Dokumentation" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Ogiltigt värdnamn" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Documentation" +msgid "Create repository" +msgstr "Dokumentation" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Documentation" +msgid "Manage Repositories" +msgstr "Dokumentation" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "No wikis or blogs available." +msgid "No repositories available." +msgstr "Ingen wiki eller blogg tillgänglig." + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete %(name)s" +msgid "Delete repository %(repo.name)s" +msgstr "Ta bort %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "Gå till webbsidan %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "Ta bort Wiki eller Blogg %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "Ta bort %(name)s" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Documentation" +msgid "Edit repository" +msgstr "Dokumentation" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} borttagen." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "Kunde inte ta bort {name}: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Dokumentation" @@ -2043,21 +2196,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Tjänster och Applikationer" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Typ" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Namn på administratörskontot" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Lösenord för administratörskontot" @@ -2075,16 +2224,12 @@ msgstr "Hantera wikis och bloggar" msgid "No wikis or blogs available." msgstr "Ingen wiki eller blogg tillgänglig." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Skapa en wiki eller blogg" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "Ta bort webbsida %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "Gå till webbsidan %(site)s" @@ -2102,11 +2247,6 @@ 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/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "Ta bort %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2127,14 +2267,16 @@ msgstr "Blogg skapad {name}." msgid "Could not create blog: {error}" msgstr "Kunde inte skapa blogg: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} borttagen." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "Kunde inte ta bort {name}: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -4015,15 +4157,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4034,7 +4176,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Domain" +msgid "TLS domain" +msgstr "Domän" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -4306,11 +4460,6 @@ msgstr "" msgid "Configuration updated." msgstr "Konfiguration uppdaterad." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4786,11 +4935,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4798,6 +4947,28 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "GPG Fingerprint" +msgid "Server Fingerprints" +msgstr "GPG Fingeravtryck" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "GPG Fingerprint" +msgid "Fingerprint" +msgstr "GPG Fingeravtryck" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" @@ -5952,17 +6123,15 @@ msgstr "Applikationer" msgid "Gujarati" msgstr "" +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Skapa en wiki eller blogg" + #~ msgid "Manage" #~ msgstr "Hantera" #~ msgid "Create" #~ msgstr "Skapa" -#, fuzzy -#~| msgid "Domain" -#~ msgid "Subdomain" -#~ msgstr "Domän" - #, fuzzy #~| msgid "Last update" #~ msgid "Auto-update" diff --git a/plinth/locale/ta/LC_MESSAGES/django.po b/plinth/locale/ta/LC_MESSAGES/django.po index 9cdc5729b..a901d50c0 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -333,6 +333,7 @@ msgid "Create Location" msgstr "" #: plinth/modules/backups/templates/backups_add_repository.html:34 +#: plinth/modules/gitweb/views.py:67 msgid "Create Repository" msgstr "" @@ -341,7 +342,7 @@ msgid "Delete this archive permanently?" msgstr "" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -358,6 +359,7 @@ msgstr "" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "" @@ -1394,6 +1396,140 @@ msgstr "" msgid "Setup Complete" msgstr "" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +msgid "Name of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +msgid "Private repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +msgid "Invalid repository name." +msgstr "" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +msgid "Create repository" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +msgid "Manage Repositories" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, python-format +msgid "Delete repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +msgid "Delete this repository permanently?" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +msgid "Edit repository" +msgstr "" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1747,21 +1883,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1779,16 +1911,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1804,11 +1932,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1829,14 +1952,14 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 +#: plinth/modules/ikiwiki/views.py:127 #, python-brace-format -msgid "{name} deleted." +msgid "{title} deleted." msgstr "" -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3539,15 +3662,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3558,7 +3681,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3822,11 +3955,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4267,11 +4395,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4279,6 +4407,24 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +msgid "Server Fingerprints" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/te/LC_MESSAGES/django.po b/plinth/locale/te/LC_MESSAGES/django.po index 982322768..8cdd48f84 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: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-07-22 17:06+0000\n" "Last-Translator: Joseph Nuthalapati \n" "Language-Team: Telugu %(name)s అనుసంధానం శాశ్వతంగా తొలగించు ?" #: plinth/modules/backups/templates/backups_delete.html:33 -#: plinth/modules/ikiwiki/forms.py:34 +#: plinth/modules/ikiwiki/forms.py:32 #: plinth/modules/networks/templates/connection_show.html:78 #: plinth/modules/sharing/templates/sharing.html:56 msgid "Name" @@ -401,6 +402,7 @@ msgstr "%(name)s తొలగించు" #: plinth/modules/backups/templates/backups_form.html:35 #: plinth/modules/config/templates/config.html:45 +#: plinth/modules/gitweb/templates/gitweb_create_edit.html:35 #: plinth/modules/sharing/templates/sharing_add_edit.html:35 msgid "Submit" msgstr "సమర్పించు" @@ -1579,6 +1581,164 @@ msgstr "అమరికను ప్రారంభించు" msgid "Setup Complete" msgstr "అమరక పూర్తయ్యింది" +#: plinth/modules/gitweb/__init__.py:41 plinth/modules/gitweb/manifest.py:28 +msgid "Gitweb" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:43 +msgid "Simple Git Hosting" +msgstr "" + +#: plinth/modules/gitweb/__init__.py:46 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:53 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Name of the share" +msgid "Name of the repository" +msgstr "షేర్ యొక్క పేరు" + +#: plinth/modules/gitweb/forms.py:36 +#, fuzzy +#| msgid "" +#| "A lowercase alpha-numeric string that uniquely identifies a share. " +#| "Example: media." +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "ప్రత్యేకంగా ఒక వాటాను గుర్తించే చిన్న అక్షర సంఖ్యా స్ట్రింగ్. ఉదాహరణ: media." + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +msgid "Repository's owner name" +msgstr "" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create User" +msgid "Private repository" +msgstr "వినియోగదారుని సృష్టించు" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "ఆతిథ్యనామం చెల్లనిది" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +msgid "A repository with this name already exists." +msgstr "ఈ సేవ ఇప్పటికే ఉంది" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create User" +msgid "Create repository" +msgstr "వినియోగదారుని సృష్టించు" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create User" +msgid "Manage Repositories" +msgstr "వినియోగదారుని సృష్టించు" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "టార్ రిలే పోర్ట్ అందుబాటులో ఉంది" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "వినియోగదారి %(username)s ను తొలగించు" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "ప్రదేశం కు వెళ్ళండి %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "వికీ లేదా బ్లాగ్ తొలగించు %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete connection %(name)s permanently?" +msgid "Delete this repository permanently?" +msgstr "%(name)s అనుసంధానం శాశ్వతంగా తొలగించు ?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "%(name)s తొలగించు" + +#: plinth/modules/gitweb/views.py:62 +msgid "Repository created." +msgstr "" + +#: plinth/modules/gitweb/views.py:93 +msgid "Repository edited." +msgstr "" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create User" +msgid "Edit repository" +msgstr "వినియోగదారుని సృష్టించు" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "అక్రుతీకరణలో ఒక పొరపాటు జరిగింది." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} తొలగించబడింది." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "{name} ను తొలగించలేము: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "పత్రావళి" @@ -1988,21 +2148,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "వికీ అనువర్తనాలను చూడండి మరియు మార్చండి" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "రకం" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "ఆల్ఫాన్యూమరిక్ అక్షరాలు (ఆంగ్ల అక్షరాలు మరియు అంకెలు) మాత్రమే అనుమతించబడతాయి." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "నిర్వాహకుని ఖాతా పేరు" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "నిర్వాహకుని ఖాతా రహస్యపదం" @@ -2020,16 +2176,12 @@ msgstr "వికీ మరియు బ్లాగులను నిర్వ msgid "No wikis or blogs available." msgstr "ఏ వికీలు లేదా బ్లాగులు అందుబాటులో లేవు." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "ఒక వికీ లేదా బ్లాగు సృష్టించండి" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "ప్రదేశం తొలగించు %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "ప్రదేశం కు వెళ్ళండి %(site)s" @@ -2047,11 +2199,6 @@ msgstr "" "ఈ చర్య పునర్విమర్శ చరిత్రతో సహా అన్ని పోస్ట్లు, పుటలు మరియు వ్యాఖ్యలు తొలగిస్తుంది. ఈ వికీ లేదా బ్లాగ్ " "శాశ్వతంగా తొలగించాలా?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "%(name)s తొలగించు" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2072,14 +2219,16 @@ msgstr "{name} బ్లాగు సృష్టించబడింది." msgid "Could not create blog: {error}" msgstr "బ్లాగు సృష్టించలేము: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} తొలగించబడింది." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "{name} ను తొలగించలేము: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -4049,16 +4198,16 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "టీసీపీ{kind} పై{proxy} తో యాక్సిస్ {url} చేయండి" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "క్వాసెల్" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 #, fuzzy msgid "IRC Client" msgstr "ఐ ర్ సి క్లయింట్ (Quassel)" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4069,7 +4218,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "ఉప డోమైన్ పేరు" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "క్వాసెల్ డ్రొఇడ్" @@ -4375,11 +4536,6 @@ msgstr "" msgid "Configuration updated." msgstr "ఆకృతీకరణ నవీకరించబడింది." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "అక్రుతీకరణలో ఒక పొరపాటు జరిగింది." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "కన్సోల్ లాగిన్ ని పరిమితించండి (సిఫార్సు)" @@ -4896,11 +5052,11 @@ msgstr "రొల్ల్బచ్క్ ని పూర్తి చేయడ msgid "Rollback to Snapshot" msgstr "చాయాచిత్రం కు రొల్ల్బచ్క్ చేయండి" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "సెక్యూర్ షెల్ (SSH) సర్వర్" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4908,6 +5064,28 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH వేలిముద్ర" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH వేలిముద్ర" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" @@ -6100,6 +6278,12 @@ msgstr "అనువర్తనం ఆమోదింపబడలేదు" msgid "Gujarati" msgstr "" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "ఆల్ఫాన్యూమరిక్ అక్షరాలు (ఆంగ్ల అక్షరాలు మరియు అంకెలు) మాత్రమే అనుమతించబడతాయి." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "ఒక వికీ లేదా బ్లాగు సృష్టించండి" + #~ msgid "Manage" #~ msgstr "నిర్వహించండి" @@ -6109,9 +6293,6 @@ msgstr "" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "మీ {box_name} దానుబే ప్రతి తో మీరు అందుకున్న రశీదు" -#~ msgid "Subdomain" -#~ msgstr "ఉప డోమైన్ పేరు" - #~ msgid "The subdomain you want to register" #~ msgstr "మీరు నమోదు చేయదల్చిన ఉప డోమైన్" @@ -6488,11 +6669,6 @@ msgstr "" #~ msgid "SSH Keys" #~ msgstr "SSH కీస్" -#, fuzzy -#~| msgid "Delete connection %(name)s permanently?" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "%(name)s అనుసంధానం శాశ్వతంగా తొలగించు ?" - #~ msgid "Delete Snapshot #%(number)s" #~ msgstr "స్నాప్షాట్‌ #%(number)s 1 తొలగించు" diff --git a/plinth/locale/tr/LC_MESSAGES/django.po b/plinth/locale/tr/LC_MESSAGES/django.po index 31a2750ca..b7cb8ffd4 100644 --- a/plinth/locale/tr/LC_MESSAGES/django.po +++ b/plinth/locale/tr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-08-08 00:22+0000\n" "Last-Translator: Mesut Akcan \n" "Language-Team: Turkish Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Create new repository" +msgid "Name of the repository" +msgstr "Yeni depo oluştur" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +#, fuzzy +#| msgid "Create new repository" +msgid "Description of the repository" +msgstr "Yeni depo oluştur" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository's owner name" +msgstr "Depo kaldırıldı." + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create Repository" +msgid "Private repository" +msgstr "Depo oluştur" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "Geçersiz makine ismi" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "This service already exists" +msgid "A repository with this name already exists." +msgstr "Bu servis zaten mevcuttur" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create Repository" +msgid "Create repository" +msgstr "Depo oluştur" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create Repository" +msgid "Manage Repositories" +msgstr "Depo oluştur" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "Tor geçit portu mevcuttur" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "%(username)s kullanıcısını sil" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "%(site)s sitesine git" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "%(name)s isimli Viki ya da Blogu sil" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this snapshot permanently?" +msgid "Delete this repository permanently?" +msgstr "Bu anlık daimi olarak silinsin mi?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "%(name)s unsurunu sil" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository created." +msgstr "Depo kaldırıldı." + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository edited." +msgstr "Depo kaldırıldı." + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create Repository" +msgid "Edit repository" +msgstr "Depo oluştur" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "Yapılandırma sırasında bir hata meydana geldi." + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} silindi." + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "{name} silinemedi: {error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "Belgelendirme" @@ -2009,21 +2174,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "Viki uygulamalarını görüntüle ve düzenle" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "Tür" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "Sadece alfanümerik karakterlere izin verilir." - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "Yönetici Hesap İsmi" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "Yönetici Hesap Parolası" @@ -2041,16 +2202,12 @@ msgstr "Viki ve Blogları Yönet" msgid "No wikis or blogs available." msgstr "Hiçbir viki ya da blog mevcut değil." -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "Bir Viki ya da Blog oluştur" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "%(site)s sitesini sil" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "%(site)s sitesine git" @@ -2069,11 +2226,6 @@ msgstr "" "yorumları silecektir. Bu viki ya da blogu daimi olarak silmek istiyor " "musunuz?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "%(name)s unsurunu sil" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2094,14 +2246,16 @@ msgstr "{name} isimli blog oluşturuldu." msgid "Could not create blog: {error}" msgstr "Blog oluşturulamadı: {error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} silindi." -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "{name} silinemedi: {error}" #: plinth/modules/infinoted/__init__.py:40 @@ -4068,15 +4222,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "{url} konumuna {proxy} vekili vasıtasıyla tcp{kind} üzerinden eriş" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "Quassel" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "IRC İstemcisi" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -4093,7 +4247,7 @@ msgstr "" "da daha fazla Quassel istemcileri masaüstünden ya da mobil telefondan ona " "bağlanmak ve ondan bağlantıyı kesmek için kullanılabilir." -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your masaüstü ve mobil cihaz istemcileri mevcuttur." +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "Alt Alan" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "Quasseldroid" @@ -4445,11 +4611,6 @@ msgstr "" msgid "Configuration updated." msgstr "Kurulum güncellendi." -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "Yapılandırma sırasında bir hata meydana geldi." - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "Konsol girişlerini kısıtla (tavsiye edilir)" @@ -4977,11 +5138,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "Anlığa Geri Al" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "Güvenli Kabuk (SSH) Sunucusu" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4993,6 +5154,28 @@ msgstr "" "bilgisayar bu bağlantıları vasıtasıyla yönetim işlemleri yapabilir, dosya " "kopyalayabilir ve diğer servisleri çalıştırabilir." +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH Parmak izi" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH Parmak izi" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "Tekli Oturum Açma" @@ -6262,6 +6445,12 @@ msgstr "Uygulama devre dışı bırakıldı" msgid "Gujarati" msgstr "" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "Sadece alfanümerik karakterlere izin verilir." + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "Bir Viki ya da Blog oluştur" + #~ msgid "Manage" #~ msgstr "Yönet" @@ -6271,9 +6460,6 @@ msgstr "" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "{box_name} kutunuzun Danube sürümü ile aldığınız fiş" -#~ msgid "Subdomain" -#~ msgstr "Alt Alan" - #~ msgid "The subdomain you want to register" #~ msgstr "Kaydetmek istediğiniz alt alan" @@ -6324,9 +6510,6 @@ msgstr "" #~ msgid "Pagekite" #~ msgstr "Pagekite" -#~ msgid "Create new repository" -#~ msgstr "Yeni depo oluştur" - #~ msgid "Upload" #~ msgstr "Yükle" @@ -6650,9 +6833,6 @@ msgstr "" #~ msgid "SSH Keys" #~ msgstr "SSH Anahtarları" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "Bu anlık daimi olarak silinsin mi?" - #~ msgid "Delete Snapshot #%(number)s" #~ msgstr "#%(number)s sayılı anlığı sil" diff --git a/plinth/locale/uk/LC_MESSAGES/django.po b/plinth/locale/uk/LC_MESSAGES/django.po index 3e8f1d66c..44e884871 100644 --- a/plinth/locale/uk/LC_MESSAGES/django.po +++ b/plinth/locale/uk/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-01-04 17:06+0000\n" "Last-Translator: prolinux ukraine \n" "Language-Team: Ukrainian Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Remove Repository" +msgid "Name of the repository" +msgstr "Видалити сховище" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +msgid "Description of the repository" +msgstr "" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository's owner name" +msgstr "Сховище не знайдено" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Remove Repository" +msgid "Private repository" +msgstr "Видалити сховище" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Repository not found" +msgid "Invalid repository name." +msgstr "Сховище не знайдено" + +#: plinth/modules/gitweb/forms.py:71 +msgid "A repository with this name already exists." +msgstr "" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Remove Repository" +msgid "Create repository" +msgstr "Видалити сховище" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Remove Repository" +msgid "Manage Repositories" +msgstr "Видалити сховище" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +msgid "No repositories available." +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete Archive %(name)s" +msgid "Delete repository %(repo.name)s" +msgstr "Видалити архів %(name)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this archive permanently?" +msgid "Delete this repository permanently?" +msgstr "Остаточно видалити цей архів?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository created." +msgstr "Сховище не знайдено" + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository not found" +msgid "Repository edited." +msgstr "Сховище не знайдено" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Remove Repository" +msgid "Edit repository" +msgstr "Видалити сховище" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "" @@ -1803,21 +1960,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "" @@ -1835,16 +1988,12 @@ msgstr "" msgid "No wikis or blogs available." msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "" @@ -1860,11 +2009,6 @@ msgid "" "history. Delete this wiki or blog permanently?" msgstr "" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -1885,14 +2029,15 @@ msgstr "" msgid "Could not create blog: {error}" msgstr "" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." -msgstr "" +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "Archive deleted." +msgid "{title} deleted." +msgstr "Архів видалено." -#: plinth/modules/ikiwiki/views.py:129 +#: plinth/modules/ikiwiki/views.py:131 #, python-brace-format -msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "" #: plinth/modules/infinoted/__init__.py:40 @@ -3597,15 +3742,15 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 msgid "IRC Client" msgstr "" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3616,7 +3761,7 @@ msgid "" "connect and disconnect from it." msgstr "" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your mobile devices are available." msgstr "" +#: plinth/modules/quassel/forms.py:38 +msgid "TLS domain" +msgstr "" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -3880,11 +4035,6 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "" @@ -4327,11 +4477,11 @@ msgstr "" msgid "Rollback to Snapshot" msgstr "" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4339,6 +4489,24 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +msgid "Server Fingerprints" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +msgid "Fingerprint" +msgstr "" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" diff --git a/plinth/locale/zh_Hans/LC_MESSAGES/django.po b/plinth/locale/zh_Hans/LC_MESSAGES/django.po index be52732c5..076eca705 100644 --- a/plinth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/plinth/locale/zh_Hans/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Plinth\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-07 18:31-0400\n" +"POT-Creation-Date: 2019-10-21 17:55-0400\n" "PO-Revision-Date: 2019-09-13 05:23+0000\n" "Last-Translator: Anxin YI <2732146152@qq.com>\n" "Language-Team: Chinese (Simplified) Git tutorial." +msgstr "" + +#: plinth/modules/gitweb/__init__.py:57 +msgid "Read-write access to Git repositories" +msgstr "" + +#: plinth/modules/gitweb/forms.py:32 +#, fuzzy +#| msgid "Create new repository" +msgid "Name of the repository" +msgstr "创建新存储库" + +#: plinth/modules/gitweb/forms.py:36 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:40 +#, fuzzy +#| msgid "Create new repository" +msgid "Description of the repository" +msgstr "创建新存储库" + +#: plinth/modules/gitweb/forms.py:41 plinth/modules/gitweb/forms.py:45 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: plinth/modules/gitweb/forms.py:44 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository's owner name" +msgstr "储存库被移除。" + +#: plinth/modules/gitweb/forms.py:48 +#, fuzzy +#| msgid "Create User" +msgid "Private repository" +msgstr "创建用户" + +#: plinth/modules/gitweb/forms.py:49 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: plinth/modules/gitweb/forms.py:66 +#, fuzzy +#| msgid "Invalid hostname" +msgid "Invalid repository name." +msgstr "无效的主机名" + +#: plinth/modules/gitweb/forms.py:71 +#, fuzzy +#| msgid "This service already exists" +msgid "A repository with this name already exists." +msgstr "此服务已存在" + +#: plinth/modules/gitweb/manifest.py:36 +msgid "Git" +msgstr "" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:41 +#: plinth/modules/gitweb/templates/gitweb_configure.html:43 +#, fuzzy +#| msgid "Create User" +msgid "Create repository" +msgstr "创建用户" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:50 +#, fuzzy +#| msgid "Create User" +msgid "Manage Repositories" +msgstr "创建用户" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:55 +#, fuzzy +#| msgid "Tor relay port available" +msgid "No repositories available." +msgstr "Tor 中继端口可用" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:63 +#, fuzzy, python-format +#| msgid "Delete user %(username)s" +msgid "Delete repository %(repo.name)s" +msgstr "删除用户 %(username)s" + +#: plinth/modules/gitweb/templates/gitweb_configure.html:78 +#, fuzzy, python-format +#| msgid "Go to site %(site)s" +msgid "Go to repository %(repo.name)s" +msgstr "转到站点 %(site)s" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:27 +#, fuzzy, python-format +#| msgid "Delete Wiki or Blog %(name)s" +msgid "Delete Git Repository %(name)s" +msgstr "删除 wiki 页面或博客 %(name)s " + +#: plinth/modules/gitweb/templates/gitweb_delete.html:33 +#, fuzzy +#| msgid "Delete this snapshot permanently?" +msgid "Delete this repository permanently?" +msgstr "永久删除此快照?" + +#: plinth/modules/gitweb/templates/gitweb_delete.html:42 +#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 +#, python-format +msgid "Delete %(name)s" +msgstr "删除 %(name)s" + +#: plinth/modules/gitweb/views.py:62 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository created." +msgstr "储存库被移除。" + +#: plinth/modules/gitweb/views.py:93 +#, fuzzy +#| msgid "Repository removed." +msgid "Repository edited." +msgstr "储存库被移除。" + +#: plinth/modules/gitweb/views.py:98 +#, fuzzy +#| msgid "Create User" +msgid "Edit repository" +msgstr "创建用户" + +#: plinth/modules/gitweb/views.py:126 plinth/modules/searx/views.py:62 +#: plinth/modules/searx/views.py:73 plinth/modules/tor/views.py:170 +msgid "An error occurred during configuration." +msgstr "在配置过程中出错。" + +#: plinth/modules/gitweb/views.py:147 +#, python-brace-format +msgid "{name} deleted." +msgstr "{name} 已删除。" + +#: plinth/modules/gitweb/views.py:151 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "不能删除 {name}:{error}" + #: plinth/modules/help/help.py:47 msgid "Documentation" msgstr "文档" @@ -1929,21 +2094,17 @@ msgstr "" msgid "View and edit wiki applications" msgstr "服务和应用程序" -#: plinth/modules/ikiwiki/forms.py:30 +#: plinth/modules/ikiwiki/forms.py:29 #: plinth/modules/networks/templates/connection_show.html:98 #: plinth/modules/storage/templates/storage.html:61 msgid "Type" msgstr "类型" -#: plinth/modules/ikiwiki/forms.py:35 -msgid "Only alphanumeric characters are allowed." -msgstr "只能使用字母和数字。" - -#: plinth/modules/ikiwiki/forms.py:38 +#: plinth/modules/ikiwiki/forms.py:34 msgid "Admin Account Name" msgstr "管理员帐户名称" -#: plinth/modules/ikiwiki/forms.py:41 +#: plinth/modules/ikiwiki/forms.py:37 msgid "Admin Account Password" msgstr "管理员帐户密码" @@ -1961,16 +2122,12 @@ msgstr "管理 Wiki 和博客" msgid "No wikis or blogs available." msgstr "没有 wiki 或博客可用。" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:44 -msgid "Create a Wiki or Blog" -msgstr "创建一个 Wiki 或博客" - -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:48 #, python-format msgid "Delete site %(site)s" msgstr "删除站点 %(site)s" -#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:60 +#: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:54 #, python-format msgid "Go to site %(site)s" msgstr "转到站点 %(site)s" @@ -1987,11 +2144,6 @@ msgid "" msgstr "" "此操作将删除所有文章、 网页和评论包括修订历史记录。 永久删除此 wiki 或博客吗?" -#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:44 -#, python-format -msgid "Delete %(name)s" -msgstr "删除 %(name)s" - #: plinth/modules/ikiwiki/views.py:96 #, python-brace-format msgid "Created wiki {name}." @@ -2012,14 +2164,16 @@ msgstr "已创建的博客 {name}。" msgid "Could not create blog: {error}" msgstr "不能创建博客:{error}" -#: plinth/modules/ikiwiki/views.py:125 -#, python-brace-format -msgid "{name} deleted." +#: plinth/modules/ikiwiki/views.py:127 +#, fuzzy, python-brace-format +#| msgid "{name} deleted." +msgid "{title} deleted." msgstr "{name} 已删除。" -#: plinth/modules/ikiwiki/views.py:129 -#, python-brace-format -msgid "Could not delete {name}: {error}" +#: plinth/modules/ikiwiki/views.py:131 +#, fuzzy, python-brace-format +#| msgid "Could not delete {name}: {error}" +msgid "Could not delete {title}: {error}" msgstr "不能删除 {name}:{error}" #: plinth/modules/infinoted/__init__.py:40 @@ -3930,17 +4084,17 @@ msgstr "" msgid "Access {url} with proxy {proxy} on tcp{kind}" msgstr "在 tcp{kind} 上通过 {proxy} 访问 {url}" -#: plinth/modules/quassel/__init__.py:40 plinth/modules/quassel/manifest.py:25 +#: plinth/modules/quassel/__init__.py:45 plinth/modules/quassel/manifest.py:25 msgid "Quassel" msgstr "" -#: plinth/modules/quassel/__init__.py:42 +#: plinth/modules/quassel/__init__.py:47 #, fuzzy #| msgid "Quassel IRC Client" msgid "IRC Client" msgstr "Quassel IRC 客户端" -#: plinth/modules/quassel/__init__.py:46 +#: plinth/modules/quassel/__init__.py:51 #, python-brace-format msgid "" "Quassel is an IRC application that is split into two parts, a \"core\" and a " @@ -3955,7 +4109,7 @@ msgstr "" "以运行 Quassel 核心服务,使您始终在线,并且可以使用桌面或移动设备上的一个或多" "个 Quassel 客户端连接和断开连接。" -#: plinth/modules/quassel/__init__.py:53 +#: plinth/modules/quassel/__init__.py:58 msgid "" "You can connect to your Quassel core on the default Quassel port 4242. " "Clients to connect to Quassel from your 桌面移动设备客户端连接到 Quassel 的核心。" +#: plinth/modules/quassel/forms.py:38 +#, fuzzy +#| msgid "Subdomain" +msgid "TLS domain" +msgstr "子域" + +#: plinth/modules/quassel/forms.py:40 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" + #: plinth/modules/quassel/manifest.py:49 msgid "Quasseldroid" msgstr "" @@ -4290,11 +4456,6 @@ msgstr "" msgid "Configuration updated." msgstr "配置已更新。" -#: plinth/modules/searx/views.py:62 plinth/modules/searx/views.py:73 -#: plinth/modules/tor/views.py:170 -msgid "An error occurred during configuration." -msgstr "在配置过程中出错。" - #: plinth/modules/security/forms.py:29 msgid "Restrict console logins (recommended)" msgstr "限制控制台访问(建议)" @@ -4810,11 +4971,11 @@ msgstr "系统需要重启以完成完全回滚。" msgid "Rollback to Snapshot" msgstr "回滚到快照" -#: plinth/modules/ssh/__init__.py:40 +#: plinth/modules/ssh/__init__.py:43 msgid "Secure Shell (SSH) Server" msgstr "安全 Shell(SSH)服务器" -#: plinth/modules/ssh/__init__.py:43 +#: plinth/modules/ssh/__init__.py:46 msgid "" "A Secure Shell server uses the secure shell protocol to accept connections " "from remote computers. An authorized remote computer can perform " @@ -4822,6 +4983,28 @@ msgid "" "connections." msgstr "" +#: plinth/modules/ssh/templates/ssh.html:26 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Server Fingerprints" +msgstr "SSH 指纹" + +#: plinth/modules/ssh/templates/ssh.html:29 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:38 +msgid "Algorithm" +msgstr "" + +#: plinth/modules/ssh/templates/ssh.html:39 +#, fuzzy +#| msgid "SSH Fingerprint" +msgid "Fingerprint" +msgstr "SSH 指纹" + #: plinth/modules/sso/__init__.py:30 msgid "Single Sign On" msgstr "" @@ -6057,6 +6240,12 @@ msgstr "应用程序已禁用" msgid "Gujarati" msgstr "古吉拉特语" +#~ msgid "Only alphanumeric characters are allowed." +#~ msgstr "只能使用字母和数字。" + +#~ msgid "Create a Wiki or Blog" +#~ msgstr "创建一个 Wiki 或博客" + #~ msgid "Manage" #~ msgstr "管理" @@ -6066,9 +6255,6 @@ msgstr "古吉拉特语" #~ msgid "The voucher you received with your {box_name} Danube Edition" #~ msgstr "您收到的您的 {box_name} Danube 版本优惠卷" -#~ msgid "Subdomain" -#~ msgstr "子域" - #~ msgid "The subdomain you want to register" #~ msgstr "您想注册的子域名" @@ -6121,9 +6307,6 @@ msgstr "古吉拉特语" #~ msgid "Pagekite" #~ msgstr "Pagekite" -#~ msgid "Create new repository" -#~ msgstr "创建新存储库" - #~ msgid "Upload" #~ msgstr "上传" @@ -6267,9 +6450,6 @@ msgstr "古吉拉特语" #~ msgid "SSH Keys" #~ msgstr "SSH 密钥" -#~ msgid "Delete this snapshot permanently?" -#~ msgstr "永久删除此快照?" - #~ msgid "Delete Snapshot #%(number)s" #~ msgstr "删除快照 #%(number)s" diff --git a/plinth/modules/coquelicot/__init__.py b/plinth/modules/coquelicot/__init__.py index 1ad4a05af..13d01a67f 100644 --- a/plinth/modules/coquelicot/__init__.py +++ b/plinth/modules/coquelicot/__init__.py @@ -27,7 +27,7 @@ from plinth.daemon import Daemon from plinth.modules.apache.components import Webserver from plinth.modules.firewall.components import Firewall -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import clients = clients diff --git a/plinth/modules/datetime/__init__.py b/plinth/modules/datetime/__init__.py index 40f2a4a4f..c23bc8b18 100644 --- a/plinth/modules/datetime/__init__.py +++ b/plinth/modules/datetime/__init__.py @@ -26,7 +26,7 @@ from plinth import app as app_module from plinth import menu from plinth.daemon import Daemon -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 2 diff --git a/plinth/modules/diagnostics/__init__.py b/plinth/modules/diagnostics/__init__.py index e6b9cdc39..78246b4c5 100644 --- a/plinth/modules/diagnostics/__init__.py +++ b/plinth/modules/diagnostics/__init__.py @@ -24,7 +24,7 @@ from plinth import action_utils from plinth import app as app_module from plinth import menu -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/gitweb/__init__.py b/plinth/modules/gitweb/__init__.py new file mode 100644 index 000000000..afad3422c --- /dev/null +++ b/plinth/modules/gitweb/__init__.py @@ -0,0 +1,263 @@ +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +""" +FreedomBox app to configure Gitweb. +""" + +import json +import os + +from django.utils.translation import ugettext_lazy as _ + +from plinth import action_utils, actions +from plinth import app as app_module +from plinth import frontpage, menu +from plinth.modules.apache.components import Webserver +from plinth.modules.firewall.components import Firewall +from plinth.modules.users import register_group + +from .manifest import GIT_REPO_PATH, backup, clients # noqa, pylint: disable=unused-import + +clients = clients + +version = 1 + +managed_packages = ['gitweb', 'highlight'] + +name = _('Gitweb') + +short_description = _('Simple Git Hosting') + +description = [ + _('Git is a distributed version-control system for tracking changes in ' + 'source code during software development. Gitweb provides a web ' + 'interface to Git repositories. You can browse history and content of ' + 'source code, use search to find relevant commits and code. ' + 'You can also clone repositories and upload code changes with a ' + 'command-line Git client or with multiple available graphical clients. ' + 'And you can share your code with people around the world.'), + _('To learn more on how to use Git visit ' + 'Git tutorial.') +] + +group = ('git-access', _('Read-write access to Git repositories')) + +app = None + + +class GitwebApp(app_module.App): + """FreedomBox app for Gitweb.""" + + app_id = 'gitweb' + + def __init__(self): + """Create components for the app.""" + super().__init__() + + self.repos = [] + + menu_item = menu.Menu('menu-gitweb', name, short_description, 'gitweb', + 'gitweb:index', parent_url_name='apps') + self.add(menu_item) + + shortcut = frontpage.Shortcut( + 'shortcut-gitweb', name, short_description=short_description, + icon='gitweb', url='/gitweb/', clients=clients, + login_required=True, allowed_groups=[group[0]]) + self.add(shortcut) + + firewall = Firewall('firewall-gitweb', name, ports=['http', 'https'], + is_external=True) + self.add(firewall) + + webserver = Webserver('webserver-gitweb', 'gitweb-freedombox') + self.add(webserver) + + self.auth_webserver = GitwebWebserverAuth('webserver-gitweb-auth', + 'gitweb-freedombox-auth') + self.add(self.auth_webserver) + + def set_shortcut_login_required(self, login_required): + """Change the login_required property of shortcut.""" + shortcut = self.remove('shortcut-gitweb') + shortcut.login_required = login_required + self.add(shortcut) + + def get_repo_list(self): + """List all Git repositories and set Gitweb as public or private.""" + repos = [] + if os.path.exists(GIT_REPO_PATH): + for repo in os.listdir(GIT_REPO_PATH): + if not repo.endswith('.git'): + continue + private_file = os.path.join(GIT_REPO_PATH, repo, 'private') + access = 'public' + if os.path.exists(private_file): + access = 'private' + repos.append({'name': repo[:-4], 'access': access}) + + return sorted(repos, key=lambda repo: repo['name']) + + def update_service_access(self): + """Update the frontpage shortcut and webserver auth requirement.""" + repos = self.get_repo_list() + if have_public_repos(repos): + self._enable_public_access() + else: + self._disable_public_access() + + def _enable_public_access(self): + """Allow Gitweb app to be accessed by anyone with access.""" + if self.auth_webserver.is_conf_enabled(): + self.auth_webserver.disable() + + self.set_shortcut_login_required(False) + + def _disable_public_access(self): + """Allow Gitweb app to be accessed by logged-in users only.""" + if not self.auth_webserver.is_conf_enabled(): + self.auth_webserver.enable() + + self.set_shortcut_login_required(True) + + +class GitwebWebserverAuth(Webserver): + """Component to handle Gitweb authentication webserver configuration.""" + + def is_conf_enabled(self): + """Check whether Gitweb authentication configuration is enabled.""" + return super().is_enabled() + + def is_enabled(self): + """Return if configuration is enabled or public access is enabled.""" + repos = app.get_repo_list() + return have_public_repos(repos) or super().is_enabled() + + +def init(): + """Initialize the module.""" + global app + app = GitwebApp() + register_group(group) + + setup_helper = globals()['setup_helper'] + if setup_helper.get_state() != 'needs-setup': + app.update_service_access() + if app.is_enabled(): + app.set_enabled(True) + + +def setup(helper, old_version=None): + """Install and configure the module.""" + helper.install(managed_packages) + helper.call('post', actions.superuser_run, 'gitweb', ['setup']) + helper.call('post', app.enable) + + +def diagnose(): + """Run diagnostics and return the results.""" + results = [] + + results.extend( + action_utils.diagnose_url_on_all('https://{host}/gitweb/', + check_certificate=False)) + return results + + +def have_public_repos(repos): + """Check for public repositories""" + return any((repo['access'] == 'public' for repo in repos)) + + +def create_repo(repo, repo_description, owner, is_private): + """Create a new repository by calling the action script.""" + args = [ + 'create-repo', '--name', repo, '--description', repo_description, + '--owner', owner + ] + if is_private: + args.append('--is-private') + + actions.superuser_run('gitweb', args) + + +def repo_info(repo): + """Get information about repository.""" + output = actions.run('gitweb', ['repo-info', '--name', repo]) + info = json.loads(output) + if info['access'] == 'private': + info['is_private'] = True + else: + info['is_private'] = False + + return info + + +def _rename_repo(oldname, newname): + """Rename a repository.""" + args = ['rename-repo', '--oldname', oldname, '--newname', newname] + actions.superuser_run('gitweb', args) + + +def _set_repo_description(repo, repo_description): + """Set description of the repository.""" + args = [ + 'set-repo-description', + '--name', + repo, + '--description', + repo_description, + ] + actions.superuser_run('gitweb', args) + + +def _set_repo_owner(repo, owner): + """Set repository's owner name.""" + args = ['set-repo-owner', '--name', repo, '--owner', owner] + actions.superuser_run('gitweb', args) + + +def _set_repo_access(repo, access): + """Set repository's owner name.""" + args = ['set-repo-access', '--name', repo, '--access', access] + actions.superuser_run('gitweb', args) + + +def edit_repo(form_initial, form_cleaned): + """Edit repository data.""" + repo = form_initial['name'] + + if form_cleaned['name'] != repo: + _rename_repo(repo, form_cleaned['name']) + repo = form_cleaned['name'] + + if form_cleaned['description'] != form_initial['description']: + _set_repo_description(repo, form_cleaned['description']) + + if form_cleaned['owner'] != form_initial['owner']: + _set_repo_owner(repo, form_cleaned['owner']) + + if form_cleaned['is_private'] != form_initial['is_private']: + if form_cleaned['is_private']: + _set_repo_access(repo, 'private') + else: + _set_repo_access(repo, 'public') + + +def delete_repo(repo): + """Delete a repository.""" + actions.superuser_run('gitweb', ['delete-repo', '--name', repo]) diff --git a/plinth/modules/gitweb/data/etc/apache2/conf-available/gitweb-freedombox-auth.conf b/plinth/modules/gitweb/data/etc/apache2/conf-available/gitweb-freedombox-auth.conf new file mode 100644 index 000000000..9f5d0b62f --- /dev/null +++ b/plinth/modules/gitweb/data/etc/apache2/conf-available/gitweb-freedombox-auth.conf @@ -0,0 +1,11 @@ +## +## Limit access to gitweb web interface. Only users belonging to 'admin' or +## 'git-access' groups are allowed to view the web interface. This configuration +## is to be enabled when there is at least one public git project. +## + + Include includes/freedombox-single-sign-on.conf + + TKTAuthToken "git-access" "admin" + + diff --git a/plinth/modules/gitweb/data/etc/apache2/conf-available/gitweb-freedombox.conf b/plinth/modules/gitweb/data/etc/apache2/conf-available/gitweb-freedombox.conf new file mode 100644 index 000000000..726fd5820 --- /dev/null +++ b/plinth/modules/gitweb/data/etc/apache2/conf-available/gitweb-freedombox.conf @@ -0,0 +1,73 @@ +## +## On all sites, enable gitweb web interface. Also enable git-http-backend on +## when performing upload/receive operations on the URL. +## +## Requires the following Apache modules to be enabled: +## mod_cgi or mod_cgid +## mod_rewrite +## + +# Make gitweb work with custom FreedomBox configuration. +SetEnv GITWEB_CONFIG /etc/gitweb-freedombox.conf + +# Configure git-http-backend to work with our repository path. +SetEnv GIT_PROJECT_ROOT /var/lib/git + +# Tell git-http-backend to work with all the projects even when they don't have +# the file 'git-daemon-export-ok'. +SetEnv GIT_HTTP_EXPORT_ALL + +# All git operations are handled by git-http-backend CGI script. Rest of the +# HTTP requests (say sent by the browser) are handled by gitweb. +ScriptAliasMatch \ + "(?x)^/gitweb/(.*/(HEAD | \ + info/refs | \ + objects/(info/[^/]+ | \ + [0-9a-f]{2}/[0-9a-f]{38} | \ + pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ + git-(upload|receive)-pack))$" \ + /usr/lib/git-core/git-http-backend/$1 + +Alias /gitweb /usr/share/gitweb + + + + Include includes/freedombox-single-sign-on.conf + + TKTAuthToken "git-access" "admin" + + + + # Allow index.cgi symlink to gitweb.cgi to work. Treat gitweb.cgi as CGI + # script and execute it. + Options +FollowSymLinks +ExecCGI + AddHandler cgi-script .cgi + + # Allow files in /usr/share/gitweb/static/ to be served directly by Apache. + # Pass every other URL as argument to gitweb.cgi to enable short and clean + # URLs. + RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule ^.* /gitweb/gitweb.cgi/$0 [L,PT] + + + + # Authentication is required when performing git push (git send-pack). + SetEnvIfExpr "%{QUERY_STRING} =~ /service=git-receive-pack/" AUTHREQUIRED + SetEnvIfExpr "%{REQUEST_URI} =~ /git-receive-pack$/" AUTHREQUIRED + # Authentication is required for any operation if repository is private. + SetEnvIfExpr "%{REQUEST_URI} =~ m#^/gitweb/([^/]+)# && ( -f '/var/lib/git/$1/private' || -f '/var/lib/git/$1.git/private' )" AUTHREQUIRED + + # Either authentication is not required for this operation and repository + # combination, or... + + Require all granted + Require not env AUTHREQUIRED + + + # ...user belongs to admin or git-access groups, with basic auth via LDAP. + Include includes/freedombox-auth-ldap.conf + Require ldap-group cn=admin,ou=groups,dc=thisbox + Require ldap-group cn=git-access,ou=groups,dc=thisbox + diff --git a/plinth/modules/gitweb/data/etc/gitweb-freedombox.conf b/plinth/modules/gitweb/data/etc/gitweb-freedombox.conf new file mode 100644 index 000000000..32c6b48d0 --- /dev/null +++ b/plinth/modules/gitweb/data/etc/gitweb-freedombox.conf @@ -0,0 +1,51 @@ +# path to git projects (.git) +$projectroot = "/var/lib/git"; + +# directory to use for temp files +$git_temp = "/tmp"; + +# target of the home link on top of all pages +#$home_link = $my_uri || "/"; + +# html text to include at home page +#$home_text = "indextext.html"; + +# file with project list; by default, simply scan the projectroot dir. +#$projects_list = $projectroot; + +# stylesheet to use +@stylesheets = ("/gitweb/static/gitweb.css"); + +# javascript code for gitweb +$javascript = "/gitweb/static/gitweb.js"; + +# logo to use +$logo = "/gitweb/static/git-logo.png"; + +# the 'favicon' +$favicon = "/gitweb/static/git-favicon.png"; + +# git-diff-tree(1) options to use for generated patches +#@diff_opts = ("-M"); + +# enable short urls +$feature{'pathinfo'}{'default'} = [1]; + +# enable git blame +$feature{'blame'}{'default'} = [1]; + +# enable pickaxe search +$feature{'pickaxe'}{'default'} = [1]; + +# enable syntax highlighting +$feature{'highlight'}{'default'} = [1]; + +# export private repos only if authorized +our $per_request_config = sub { + if(defined $ENV{'REMOTE_USER_TOKENS'}){ + our $export_auth_hook = sub { return 1; }; + } + else { + our $export_auth_hook = sub { return ! -e "$_[0]/private"; }; + } +}; diff --git a/plinth/modules/gitweb/data/etc/plinth/modules-enabled/gitweb b/plinth/modules/gitweb/data/etc/plinth/modules-enabled/gitweb new file mode 100644 index 000000000..640d8a836 --- /dev/null +++ b/plinth/modules/gitweb/data/etc/plinth/modules-enabled/gitweb @@ -0,0 +1 @@ +plinth.modules.gitweb diff --git a/plinth/modules/gitweb/forms.py b/plinth/modules/gitweb/forms.py new file mode 100644 index 000000000..670570a70 --- /dev/null +++ b/plinth/modules/gitweb/forms.py @@ -0,0 +1,73 @@ +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +""" +Django form for configuring Gitweb. +""" + +from django import forms +from django.core.exceptions import ValidationError +from django.utils.translation import ugettext_lazy as _ + +from plinth.modules import gitweb + + +class EditRepoForm(forms.Form): + """Form to create and edit a new repository.""" + + name = forms.RegexField( + label=_('Name of the repository'), + strip=True, + regex=r'^[a-zA-Z0-9-._]+$', + help_text=_( + 'An alpha-numeric string that uniquely identifies a repository.'), + ) + + description = forms.CharField( + label=_('Description of the repository'), strip=True, required=False, + help_text=_('Optional, for displaying on Gitweb.')) + + owner = forms.CharField( + label=_('Repository\'s owner name'), strip=True, required=False, + help_text=_('Optional, for displaying on Gitweb.')) + + is_private = forms.BooleanField( + label=_('Private repository'), required=False, + help_text=_('Allow only authorized users to access this repository.')) + + def __init__(self, *args, **kwargs): + """Initialize the form with extra request argument.""" + super().__init__(*args, **kwargs) + self.fields['name'].widget.attrs.update({'autofocus': 'autofocus'}) + + def clean_name(self): + """Check if the name is valid.""" + name = self.cleaned_data['name'] + if 'name' in self.initial and name == self.initial['name']: + return name + + if name.endswith('.git'): + name = name[:-4] + + if (not name) or name.startswith(('-', '.')): + raise ValidationError(_('Invalid repository name.')) + + for repo in gitweb.app.get_repo_list(): + if name == repo['name']: + raise ValidationError( + _('A repository with this name already exists.')) + + return name diff --git a/plinth/modules/gitweb/manifest.py b/plinth/modules/gitweb/manifest.py new file mode 100644 index 000000000..c5a1ffc34 --- /dev/null +++ b/plinth/modules/gitweb/manifest.py @@ -0,0 +1,60 @@ +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +from django.utils.translation import ugettext_lazy as _ + +from plinth.clients import validate +from plinth.modules.backups.api import validate as validate_backup + +CONFIG_FILE = '/etc/gitweb-freedombox.conf' +GIT_REPO_PATH = '/var/lib/git' + +clients = validate([ + { + 'name': _('Gitweb'), + 'platforms': [{ + 'type': 'web', + 'url': '/gitweb/' + }] + }, + { + 'name': + _('Git'), + 'platforms': [{ + 'type': 'download', + 'os': 'gnu-linux', + 'url': 'https://git-scm.com/download/linux' + }, { + 'type': 'download', + 'os': 'macos', + 'url': 'https://git-scm.com/download/mac' + }, { + 'type': 'download', + 'os': 'windows', + 'url': 'https://git-scm.com/download/windows' + }] + }, +]) + +backup = validate_backup({ + 'config': { + 'files': [CONFIG_FILE] + }, + 'data': { + 'directories': [GIT_REPO_PATH] + } +}) diff --git a/plinth/modules/gitweb/templates/gitweb_configure.html b/plinth/modules/gitweb/templates/gitweb_configure.html new file mode 100644 index 000000000..84b615f33 --- /dev/null +++ b/plinth/modules/gitweb/templates/gitweb_configure.html @@ -0,0 +1,88 @@ +{% extends "app.html" %} +{% comment %} +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +{% endcomment %} + +{% load bootstrap %} +{% load i18n %} + +{% block page_head %} + +{% endblock %} + +{% block status %} + + + {% trans 'Create repository' %} + +{% endblock %} + +{% block configuration %} + {{ block.super }} + +

{% trans "Manage Repositories" %}

+ +
+
+ {% if not repos %} +

{% trans 'No repositories available.' %}

+ {% else %} +
+ {% for repo in repos %} +
+ + + + + + + + + {% if repo.access == 'private' %} + + {% endif %} + + + {{ repo.name }} + +
+ {% endfor %} +
+ {% endif %} +
+
+ +{% endblock %} diff --git a/plinth/modules/gitweb/templates/gitweb_create_edit.html b/plinth/modules/gitweb/templates/gitweb_create_edit.html new file mode 100644 index 000000000..9af6cb3af --- /dev/null +++ b/plinth/modules/gitweb/templates/gitweb_create_edit.html @@ -0,0 +1,38 @@ +{% extends "base.html" %} +{% comment %} +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +{% endcomment %} + +{% load bootstrap %} +{% load i18n %} +{% load static %} + +{% block content %} + +

{{ title }}

+ +
+ {% csrf_token %} + + {{ form|bootstrap }} + + +
+ +{% endblock %} diff --git a/plinth/modules/gitweb/templates/gitweb_delete.html b/plinth/modules/gitweb/templates/gitweb_delete.html new file mode 100644 index 000000000..b02e121bf --- /dev/null +++ b/plinth/modules/gitweb/templates/gitweb_delete.html @@ -0,0 +1,45 @@ +{% extends "base.html" %} +{% comment %} +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +{% endcomment %} + +{% load bootstrap %} +{% load i18n %} + +{% block content %} + +

+ {% blocktrans trimmed %} + Delete Git Repository {{ name }} + {% endblocktrans %} +

+ +

+ {% blocktrans trimmed %} + Delete this repository permanently? + {% endblocktrans %} +

+ +
+ {% csrf_token %} + + +
+ +{% endblock %} diff --git a/plinth/modules/gitweb/tests/__init__.py b/plinth/modules/gitweb/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/plinth/modules/gitweb/urls.py b/plinth/modules/gitweb/urls.py new file mode 100644 index 000000000..7b1763038 --- /dev/null +++ b/plinth/modules/gitweb/urls.py @@ -0,0 +1,38 @@ +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +""" +URLs for the Gitweb module. +""" + +from django.conf.urls import url + +from .views import CreateRepoView, EditRepoView, GitwebAppView, delete + +urlpatterns = [ + url(r'^apps/gitweb/$', GitwebAppView.as_view(), name='index'), + url(r'^apps/gitweb/create/$', CreateRepoView.as_view(), name='create'), + url( + r'^apps/gitweb/(?P[a-zA-Z0-9-._]+)/edit/$', + EditRepoView.as_view(), + name='edit', + ), + url( + r'^apps/gitweb/(?P[a-zA-Z0-9-._]+)/delete/$', + delete, + name='delete', + ), +] diff --git a/plinth/modules/gitweb/views.py b/plinth/modules/gitweb/views.py new file mode 100644 index 000000000..717190a44 --- /dev/null +++ b/plinth/modules/gitweb/views.py @@ -0,0 +1,161 @@ +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +""" +Django views for Gitweb. +""" + +from django.contrib import messages +from django.contrib.messages.views import SuccessMessageMixin +from django.http import Http404 +from django.shortcuts import redirect +from django.template.response import TemplateResponse +from django.urls import reverse_lazy +from django.utils.translation import ugettext as _ +from django.views.generic import FormView + +from plinth import actions, views +from plinth.errors import ActionError +from plinth.modules import gitweb + +from .forms import EditRepoForm + + +class GitwebAppView(views.AppView): + """Serve configuration page.""" + + clients = gitweb.clients + name = gitweb.name + description = gitweb.description + diagnostics_module_name = 'gitweb' + app_id = 'gitweb' + show_status_block = False + template_name = 'gitweb_configure.html' + + def get_context_data(self, *args, **kwargs): + """Add repositories to the context data.""" + context = super().get_context_data(*args, **kwargs) + context['repos'] = gitweb.app.get_repo_list() + return context + + +class CreateRepoView(SuccessMessageMixin, FormView): + """View to create a new repository.""" + + form_class = EditRepoForm + prefix = 'gitweb' + template_name = 'gitweb_create_edit.html' + success_url = reverse_lazy('gitweb:index') + success_message = _('Repository created.') + + def get_context_data(self, **kwargs): + """Return additional context for rendering the template.""" + context = super().get_context_data(**kwargs) + context['title'] = _('Create Repository') + return context + + def form_valid(self, form): + """Create the repository on valid form submission.""" + form_data = {} + for key, value in form.cleaned_data.items(): + if value is None: + form_data[key] = '' + else: + form_data[key] = value + + gitweb.create_repo(form_data['name'], form_data['description'], + form_data['owner'], form_data['is_private']) + gitweb.app.update_service_access() + + return super().form_valid(form) + + +class EditRepoView(SuccessMessageMixin, FormView): + """View to edit an existing repository.""" + + form_class = EditRepoForm + prefix = 'gitweb' + template_name = 'gitweb_create_edit.html' + success_url = reverse_lazy('gitweb:index') + success_message = _('Repository edited.') + + def get_context_data(self, **kwargs): + """Return additional context for rendering the template.""" + context = super().get_context_data(**kwargs) + context['title'] = _('Edit repository') + return context + + def get_initial(self): + """Load information about repository being edited.""" + name = self.kwargs['name'] + for repo in gitweb.app.get_repo_list(): + if repo['name'] == name: + break + else: + raise Http404 + + return gitweb.repo_info(name) + + def form_valid(self, form): + """Edit the repo on valid form submission.""" + if form.initial != form.cleaned_data: + form_data = {} + for key, value in form.cleaned_data.items(): + if value is None: + form_data[key] = '' + else: + form_data[key] = value + + try: + gitweb.edit_repo(form.initial, form_data) + except ActionError: + messages.error(self.request, + _('An error occurred during configuration.')) + gitweb.app.update_service_access() + + return super().form_valid(form) + + +def delete(request, name): + """Handle deleting repositories, showing a confirmation dialog first. + + On GET, display a confirmation page. + On POST, delete the repository. + """ + for repo in gitweb.app.get_repo_list(): + if repo['name'] == name: + break + else: + raise Http404 + + if request.method == 'POST': + try: + gitweb.delete_repo(name) + messages.success(request, _('{name} deleted.').format(name=name)) + except actions.ActionError as error: + messages.error( + request, + _('Could not delete {name}: {error}').format( + name=name, error=error), + ) + gitweb.app.update_service_access() + + return redirect(reverse_lazy('gitweb:index')) + + return TemplateResponse(request, 'gitweb_delete.html', { + 'title': gitweb.name, + 'name': name + }) diff --git a/plinth/modules/ikiwiki/__init__.py b/plinth/modules/ikiwiki/__init__.py index 657b39e99..64e0a1a8a 100644 --- a/plinth/modules/ikiwiki/__init__.py +++ b/plinth/modules/ikiwiki/__init__.py @@ -29,7 +29,7 @@ from plinth.modules.firewall.components import Firewall from plinth.modules.users import register_group from plinth.utils import format_lazy -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 1 @@ -79,10 +79,7 @@ class IkiwikiApp(app_module.App): parent_url_name='apps') self.add(menu_item) - sites = actions.run('ikiwiki', ['get-sites']).split('\n') - sites = [name for name in sites if name != ''] - for site in sites: - self.add_shortcut(site) + self.refresh_sites() firewall = Firewall('firewall-ikiwiki', name, ports=['http', 'https'], is_external=True) @@ -91,9 +88,9 @@ class IkiwikiApp(app_module.App): webserver = Webserver('webserver-ikiwiki', 'ikiwiki-plinth') self.add(webserver) - def add_shortcut(self, site): + def add_shortcut(self, site, title): """Add an ikiwiki shortcut to frontpage.""" - shortcut = frontpage.Shortcut('shortcut-ikiwiki-' + site, site, + shortcut = frontpage.Shortcut('shortcut-ikiwiki-' + site, title, icon='ikiwiki', url='/ikiwiki/' + site, clients=clients) self.add(shortcut) @@ -104,6 +101,17 @@ class IkiwikiApp(app_module.App): component = self.remove('shortcut-ikiwiki-' + site) component.remove() # Remove from global list. + def refresh_sites(self): + """Refresh blog and wiki list""" + sites = actions.run('ikiwiki', ['get-sites']).split('\n') + sites = [name.split(' ', 1) for name in sites if name != ''] + + for site in sites: + if not 'shortcut-ikiwiki-' + site[0] in self.components: + self.add_shortcut(site[0], site[1]) + + return sites + def init(): """Initialize the ikiwiki module.""" diff --git a/plinth/modules/ikiwiki/data/etc/ikiwiki/plinth-blog.setup b/plinth/modules/ikiwiki/data/etc/ikiwiki/plinth-blog.setup index cde81794d..b7a83a418 100644 --- a/plinth/modules/ikiwiki/data/etc/ikiwiki/plinth-blog.setup +++ b/plinth/modules/ikiwiki/data/etc/ikiwiki/plinth-blog.setup @@ -10,7 +10,8 @@ if (($wikiname eq "") || ($admin eq "")) { exit; } -our $wikiname_short=IkiWiki::Setup::Automator::sanitize_wikiname($wikiname); +our $wikiname_short=IkiWiki::Setup::Automator::sanitize_wikiname($wikiname . "_"); +if (length($wikiname_short)>1) { chop($wikiname_short) }; IkiWiki::Setup::Automator->import( wikiname => $wikiname, diff --git a/plinth/modules/ikiwiki/data/etc/ikiwiki/plinth-wiki.setup b/plinth/modules/ikiwiki/data/etc/ikiwiki/plinth-wiki.setup index 9b7b51998..1abc066ec 100644 --- a/plinth/modules/ikiwiki/data/etc/ikiwiki/plinth-wiki.setup +++ b/plinth/modules/ikiwiki/data/etc/ikiwiki/plinth-wiki.setup @@ -10,7 +10,8 @@ if (($wikiname eq "") || ($admin eq "")) { exit; } -our $wikiname_short=IkiWiki::Setup::Automator::sanitize_wikiname($wikiname); +our $wikiname_short=IkiWiki::Setup::Automator::sanitize_wikiname($wikiname . "_"); +if (length($wikiname_short)>1) { chop($wikiname_short) }; IkiWiki::Setup::Automator->import( wikiname => $wikiname, diff --git a/plinth/modules/ikiwiki/forms.py b/plinth/modules/ikiwiki/forms.py index a6f6faed1..433d9f0b7 100644 --- a/plinth/modules/ikiwiki/forms.py +++ b/plinth/modules/ikiwiki/forms.py @@ -21,7 +21,6 @@ Forms for configuring ikiwiki from django import forms from django.utils.translation import ugettext_lazy as _ -from django.core.validators import RegexValidator class IkiwikiCreateForm(forms.Form): @@ -30,10 +29,7 @@ class IkiwikiCreateForm(forms.Form): label=_('Type'), choices=[('wiki', 'Wiki'), ('blog', 'Blog')]) - name = forms.CharField( - label=_('Name'), - help_text=_('Only alphanumeric characters are allowed.'), - validators=[RegexValidator(regex='^[a-zA-Z0-9]+$')]) + name = forms.CharField(label=_('Name')) admin_name = forms.CharField(label=_('Admin Account Name')) diff --git a/plinth/modules/ikiwiki/templates/ikiwiki_configure.html b/plinth/modules/ikiwiki/templates/ikiwiki_configure.html index fa822d24f..7f7eaf133 100644 --- a/plinth/modules/ikiwiki/templates/ikiwiki_configure.html +++ b/plinth/modules/ikiwiki/templates/ikiwiki_configure.html @@ -38,27 +38,21 @@
{% if not sites %}

{% trans "No wikis or blogs available." %}

-

- - {% trans "Create a Wiki or Blog" %} - -

{% else %}
{% for site in sites %} {% endfor %} diff --git a/plinth/modules/ikiwiki/urls.py b/plinth/modules/ikiwiki/urls.py index cd66d97f5..bb1215f11 100644 --- a/plinth/modules/ikiwiki/urls.py +++ b/plinth/modules/ikiwiki/urls.py @@ -24,7 +24,6 @@ from . import views urlpatterns = [ url(r'^apps/ikiwiki/$', views.IkiwikiAppView.as_view(), name='index'), - url(r'^apps/ikiwiki/(?P[\w.@+-]+)/delete/$', views.delete, - name='delete'), + url(r'^apps/ikiwiki/(?P.+)/delete/$', views.delete, name='delete'), url(r'^apps/ikiwiki/create/$', views.create, name='create'), ] diff --git a/plinth/modules/ikiwiki/views.py b/plinth/modules/ikiwiki/views.py index bddc53a41..4db5a0ae4 100644 --- a/plinth/modules/ikiwiki/views.py +++ b/plinth/modules/ikiwiki/views.py @@ -43,7 +43,7 @@ class IkiwikiAppView(views.AppView): def get_context_data(self, **kwargs): """Return the context data for rendering the template view.""" - sites = actions.run('ikiwiki', ['get-sites']).split('\n') + sites = ikiwiki.app.refresh_sites() sites = [name for name in sites if name != ''] context = super().get_context_data(**kwargs) @@ -67,9 +67,9 @@ def create(request): form.cleaned_data['admin_name'], form.cleaned_data['admin_password']) - site = form.cleaned_data['name'].replace(' ', '') - shortcut = ikiwiki.app.add_shortcut(site) - shortcut.enable() + ikiwiki.app.refresh_sites() + if ikiwiki.app.is_enabled(): + ikiwiki.app.set_enabled(True) return redirect(reverse_lazy('ikiwiki:index')) else: @@ -118,20 +118,22 @@ def delete(request, name): On GET, display a confirmation page. On POST, delete the wiki/blog. """ + title = ikiwiki.app.components['shortcut-ikiwiki-' + name].name if request.method == 'POST': try: actions.superuser_run('ikiwiki', ['delete', '--name', name]) ikiwiki.app.remove_shortcut(name) - messages.success(request, _('{name} deleted.').format(name=name)) + messages.success(request, + _('{title} deleted.').format(title=title)) except actions.ActionError as error: messages.error( request, - _('Could not delete {name}: {error}').format( - name=name, error=error)) + _('Could not delete {title}: {error}').format( + title=title, error=error)) return redirect(reverse_lazy('ikiwiki:index')) return TemplateResponse(request, 'ikiwiki_delete.html', { 'title': ikiwiki.name, - 'name': name + 'name': title }) diff --git a/plinth/modules/infinoted/__init__.py b/plinth/modules/infinoted/__init__.py index 491a294c1..ab5446e2e 100644 --- a/plinth/modules/infinoted/__init__.py +++ b/plinth/modules/infinoted/__init__.py @@ -29,7 +29,7 @@ from plinth.modules.firewall.components import Firewall from plinth.utils import format_lazy from plinth.views import AppView -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/jsxc/__init__.py b/plinth/modules/jsxc/__init__.py index 1f855c594..2b45fbc96 100644 --- a/plinth/modules/jsxc/__init__.py +++ b/plinth/modules/jsxc/__init__.py @@ -27,7 +27,7 @@ from plinth import app as app_module from plinth import frontpage, menu from plinth.modules.firewall.components import Firewall -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/matrixsynapse/__init__.py b/plinth/modules/matrixsynapse/__init__.py index 864ce9b11..9a4fb4a10 100644 --- a/plinth/modules/matrixsynapse/__init__.py +++ b/plinth/modules/matrixsynapse/__init__.py @@ -34,7 +34,7 @@ from plinth.modules.apache.components import Webserver from plinth.modules.firewall.components import Firewall from plinth.modules.letsencrypt.components import LetsEncrypt -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 5 diff --git a/plinth/modules/mediawiki/__init__.py b/plinth/modules/mediawiki/__init__.py index a369d7561..66c7b490e 100644 --- a/plinth/modules/mediawiki/__init__.py +++ b/plinth/modules/mediawiki/__init__.py @@ -27,7 +27,7 @@ from plinth.daemon import Daemon from plinth.modules.apache.components import Webserver from plinth.modules.firewall.components import Firewall -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 6 diff --git a/plinth/modules/mldonkey/__init__.py b/plinth/modules/mldonkey/__init__.py index cc00f050e..17ee6ad43 100644 --- a/plinth/modules/mldonkey/__init__.py +++ b/plinth/modules/mldonkey/__init__.py @@ -29,7 +29,7 @@ from plinth.modules.firewall.components import Firewall from plinth.modules.users import register_group from plinth.utils import format_lazy -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/monkeysphere/__init__.py b/plinth/modules/monkeysphere/__init__.py index f9187dac7..de05d6538 100644 --- a/plinth/modules/monkeysphere/__init__.py +++ b/plinth/modules/monkeysphere/__init__.py @@ -23,7 +23,7 @@ from django.utils.translation import ugettext_lazy as _ from plinth import app as app_module from plinth import menu -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/mumble/__init__.py b/plinth/modules/mumble/__init__.py index 60ee04a8f..881af3de8 100644 --- a/plinth/modules/mumble/__init__.py +++ b/plinth/modules/mumble/__init__.py @@ -28,7 +28,7 @@ from plinth.daemon import Daemon from plinth.modules.firewall.components import Firewall from plinth.views import AppView -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/openvpn/__init__.py b/plinth/modules/openvpn/__init__.py index 5c782f38b..a3d7853ab 100644 --- a/plinth/modules/openvpn/__init__.py +++ b/plinth/modules/openvpn/__init__.py @@ -28,7 +28,7 @@ from plinth.daemon import Daemon from plinth.modules.firewall.components import Firewall from plinth.utils import format_lazy -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 3 diff --git a/plinth/modules/power/__init__.py b/plinth/modules/power/__init__.py index a5bef71dc..8a61adf5f 100644 --- a/plinth/modules/power/__init__.py +++ b/plinth/modules/power/__init__.py @@ -20,7 +20,7 @@ FreedomBox app for power controls. from django.utils.translation import ugettext_lazy as _ -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/privoxy/__init__.py b/plinth/modules/privoxy/__init__.py index 5d7ce8f00..c3cfc4919 100644 --- a/plinth/modules/privoxy/__init__.py +++ b/plinth/modules/privoxy/__init__.py @@ -29,7 +29,7 @@ from plinth.modules.firewall.components import Firewall from plinth.utils import format_lazy from plinth.views import AppView -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/quassel/__init__.py b/plinth/modules/quassel/__init__.py index 5ee3823dc..dcdbdcf4a 100644 --- a/plinth/modules/quassel/__init__.py +++ b/plinth/modules/quassel/__init__.py @@ -18,18 +18,21 @@ FreedomBox app for Quassel. """ +import pathlib + from django.urls import reverse_lazy from django.utils.translation import ugettext_lazy as _ -from plinth import action_utils +from plinth import action_utils, 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.firewall.components import Firewall +from plinth.modules.letsencrypt.components import LetsEncrypt from plinth.utils import format_lazy -from plinth.views import AppView -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 1 @@ -37,6 +40,8 @@ managed_services = ['quasselcore'] managed_packages = ['quassel-core'] +managed_paths = [pathlib.Path('/var/lib/quassel/')] + name = _('Quassel') short_description = _('IRC Client') @@ -92,6 +97,15 @@ class QuasselApp(app_module.App): is_external=True) self.add(firewall) + letsencrypt = LetsEncrypt( + 'letsencrypt-quassel', domains=get_domains, + daemons=managed_services, should_copy_certificates=True, + private_key_path='/var/lib/quassel/quasselCert.pem', + certificate_path='/var/lib/quassel/quasselCert.pem', + user_owner='quasselcore', group_owner='quassel', + managing_app='quassel') + self.add(letsencrypt) + daemon = Daemon('daemon-quassel', managed_services[0]) self.add(daemon) @@ -106,20 +120,11 @@ def init(): app.set_enabled(True) -class QuasselAppView(AppView): - app_id = 'quassel' - diagnostics_module_name = 'quassel' - name = name - description = description - clients = clients - manual_page = manual_page - port_forwarding_info = port_forwarding_info - - def setup(helper, old_version=None): """Install and configure the module.""" helper.install(managed_packages) helper.call('post', app.enable) + app.get_component('letsencrypt-quassel').setup_certificates() def diagnose(): @@ -130,3 +135,40 @@ def diagnose(): results.append(action_utils.diagnose_port_listening(4242, 'tcp6')) return results + + +def get_available_domains(): + """Return an iterator with all domains able to have a certificate.""" + return (domain.name for domain in names.components.DomainName.list() + if domain.domain_type.can_have_certificate) + + +def set_domain(domain): + """Set the TLS domain by writing a file to data directory.""" + if domain: + actions.superuser_run('quassel', ['set-domain', domain]) + + +def get_domain(): + """Read TLS domain from config file select first available if none.""" + domain = None + try: + with open('/var/lib/quassel/domain-freedombox') as file_handle: + domain = file_handle.read().strip() + except FileNotFoundError: + pass + + if not domain: + domain = next(get_available_domains(), None) + set_domain(domain) + + return domain + + +def get_domains(): + """Return a list with the configured domain for quassel.""" + domain = get_domain() + if domain: + return [domain] + + return [] diff --git a/plinth/modules/quassel/forms.py b/plinth/modules/quassel/forms.py new file mode 100644 index 000000000..5455b7fc1 --- /dev/null +++ b/plinth/modules/quassel/forms.py @@ -0,0 +1,42 @@ +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +""" +Forms for Quassel app. +""" + +from django import forms +from django.utils.translation import ugettext_lazy as _ + +from plinth.forms import AppForm +from plinth.modules import quassel + + +def get_domain_choices(): + """Double domain entries for inclusion in the choice field.""" + return ((domain, domain) for domain in quassel.get_available_domains()) + + +class QuasselForm(AppForm): + """Form to select a TLS domain for Quassel.""" + + domain = forms.ChoiceField( + choices=get_domain_choices, + label=_('TLS domain'), + help_text=_( + 'Select a domain to use TLS with. If the list is empty, please ' + 'configure at least one domain with certificates.'), + ) diff --git a/plinth/modules/quassel/urls.py b/plinth/modules/quassel/urls.py index a2dc6f9c0..fb64091d5 100644 --- a/plinth/modules/quassel/urls.py +++ b/plinth/modules/quassel/urls.py @@ -20,7 +20,7 @@ URLs for the quassel module. from django.conf.urls import url -from plinth.modules.quassel import QuasselAppView +from .views import QuasselAppView urlpatterns = [ url(r'^apps/quassel/$', QuasselAppView.as_view(), name='index'), diff --git a/plinth/modules/quassel/views.py b/plinth/modules/quassel/views.py new file mode 100644 index 000000000..62e018079 --- /dev/null +++ b/plinth/modules/quassel/views.py @@ -0,0 +1,48 @@ +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +from plinth.modules import quassel +from plinth.views import AppView + +from .forms import QuasselForm + + +class QuasselAppView(AppView): + app_id = 'quassel' + diagnostics_module_name = 'quassel' + name = quassel.name + description = quassel.description + clients = quassel.clients + manual_page = quassel.manual_page + port_forwarding_info = quassel.port_forwarding_info + form_class = QuasselForm + + def get_initial(self): + """Return the values to fill in the form.""" + initial = super().get_initial() + initial['domain'] = quassel.get_domain() + return initial + + def form_valid(self, form): + """Change the access control of Radicale service.""" + data = form.cleaned_data + if quassel.get_domain() != data['domain']: + quassel.set_domain(data['domain']) + quassel.app.get_component( + 'letsencrypt-quassel').setup_certificates() + + return super().form_valid(form) diff --git a/plinth/modules/radicale/__init__.py b/plinth/modules/radicale/__init__.py index d9dae49bb..bf7315f98 100644 --- a/plinth/modules/radicale/__init__.py +++ b/plinth/modules/radicale/__init__.py @@ -34,7 +34,7 @@ from plinth.modules.apache.components import Uwsgi, Webserver from plinth.modules.firewall.components import Firewall from plinth.utils import format_lazy -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 2 diff --git a/plinth/modules/repro/__init__.py b/plinth/modules/repro/__init__.py index 804c03fa9..d1c105d41 100644 --- a/plinth/modules/repro/__init__.py +++ b/plinth/modules/repro/__init__.py @@ -29,7 +29,7 @@ from plinth.modules.apache.components import Webserver from plinth.modules.firewall.components import Firewall from plinth.views import AppView -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 2 diff --git a/plinth/modules/roundcube/__init__.py b/plinth/modules/roundcube/__init__.py index 89fe2936b..d5bd5ac2f 100644 --- a/plinth/modules/roundcube/__init__.py +++ b/plinth/modules/roundcube/__init__.py @@ -26,7 +26,7 @@ from plinth import frontpage, menu from plinth.modules.apache.components import Webserver from plinth.modules.firewall.components import Firewall -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/shadowsocks/__init__.py b/plinth/modules/shadowsocks/__init__.py index 1a185fa86..4051abcdf 100644 --- a/plinth/modules/shadowsocks/__init__.py +++ b/plinth/modules/shadowsocks/__init__.py @@ -28,7 +28,7 @@ from plinth.daemon import Daemon from plinth.modules.firewall.components import Firewall from plinth.utils import format_lazy -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/sharing/__init__.py b/plinth/modules/sharing/__init__.py index 778960769..06e96ede5 100644 --- a/plinth/modules/sharing/__init__.py +++ b/plinth/modules/sharing/__init__.py @@ -27,7 +27,7 @@ from plinth import app as app_module from plinth import cfg, menu from plinth.utils import format_lazy -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/snapshot/__init__.py b/plinth/modules/snapshot/__init__.py index 87f7b5a73..5587035f3 100644 --- a/plinth/modules/snapshot/__init__.py +++ b/plinth/modules/snapshot/__init__.py @@ -28,7 +28,7 @@ from plinth import app as app_module from plinth import menu from plinth.modules import storage -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 4 diff --git a/plinth/modules/ssh/__init__.py b/plinth/modules/ssh/__init__.py index 7d3911cbd..2169ab7a2 100644 --- a/plinth/modules/ssh/__init__.py +++ b/plinth/modules/ssh/__init__.py @@ -18,6 +18,10 @@ FreedomBox app for OpenSSH server. """ +import pathlib +import re +import subprocess + from django.utils.translation import ugettext_lazy as _ from plinth import actions @@ -25,9 +29,8 @@ from plinth import app as app_module from plinth import menu from plinth.daemon import Daemon from plinth.modules.firewall.components import Firewall -from plinth.views import AppView -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 1 @@ -84,8 +87,21 @@ def setup(helper, old_version=None): actions.superuser_run('ssh', ['setup']) -class SshAppView(AppView): - app_id = 'ssh' - name = name - description = description - port_forwarding_info = port_forwarding_info +def get_host_keys(): + """Return Host keys of the system.""" + etc_ssh = pathlib.Path('/etc/ssh/') + host_keys = [] + pattern = re.compile(r'^(?P\d+) (?P[\S]+) ' + r'.+ \((?P\w+)\)$') + + for public_key in etc_ssh.glob('*.pub'): + process = subprocess.run(['ssh-keygen', '-l', '-f', + str(public_key)], stdout=subprocess.PIPE, + check=True) + output = process.stdout.decode().strip() + if output: + match = re.match(pattern, output) + if match: + host_keys.append(match.groupdict()) + + return host_keys diff --git a/plinth/modules/ssh/templates/ssh.html b/plinth/modules/ssh/templates/ssh.html new file mode 100644 index 000000000..e9589476c --- /dev/null +++ b/plinth/modules/ssh/templates/ssh.html @@ -0,0 +1,51 @@ +{% extends "app.html" %} +{% comment %} +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +{% endcomment %} +{% load bootstrap %} +{% load i18n %} + +{% block status %} + {{ block.super }} + +

{% trans "Server Fingerprints" %}

+ +

+ {% blocktrans trimmed %} + When connecting to the server, ensure that the fingerprint shown by the + SSH client matches one of these fingerprints. + {% endblocktrans %} +

+ + + + + + + + + + {% for host_key in host_keys %} + + + + + {% endfor %} + +
{% trans "Algorithm" %}{% trans "Fingerprint" %}
{{ host_key.algorithm }}{{ host_key.fingerprint }}
+{% endblock %} diff --git a/plinth/modules/ssh/urls.py b/plinth/modules/ssh/urls.py index e8b1264d3..66d4701c9 100644 --- a/plinth/modules/ssh/urls.py +++ b/plinth/modules/ssh/urls.py @@ -20,7 +20,7 @@ URLs for the Secure Shell Server module. from django.conf.urls import url -from plinth.modules.ssh import SshAppView +from plinth.modules.ssh.views import SshAppView urlpatterns = [ url(r'^sys/ssh/$', SshAppView.as_view(), name='index'), diff --git a/plinth/modules/ssh/views.py b/plinth/modules/ssh/views.py new file mode 100644 index 000000000..83ce5b5f0 --- /dev/null +++ b/plinth/modules/ssh/views.py @@ -0,0 +1,36 @@ +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +""" +Views for the SSH module +""" + +from plinth.modules import ssh +from plinth.views import AppView + + +class SshAppView(AppView): + app_id = 'ssh' + name = ssh.name + description = ssh.description + port_forwarding_info = ssh.port_forwarding_info + template_name = 'ssh.html' + + def get_context_data(self, *args, **kwargs): + context = super().get_context_data(**kwargs) + context['host_keys'] = ssh.get_host_keys() + + return context diff --git a/plinth/modules/syncthing/__init__.py b/plinth/modules/syncthing/__init__.py index 358b18494..915ba4f6d 100644 --- a/plinth/modules/syncthing/__init__.py +++ b/plinth/modules/syncthing/__init__.py @@ -29,7 +29,7 @@ from plinth.modules.firewall.components import Firewall from plinth.modules.users import register_group from plinth.utils import format_lazy -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 2 diff --git a/plinth/modules/tahoe/__init__.py b/plinth/modules/tahoe/__init__.py index a3fb8e1a4..c3ff91624 100644 --- a/plinth/modules/tahoe/__init__.py +++ b/plinth/modules/tahoe/__init__.py @@ -32,7 +32,7 @@ from plinth.modules.firewall.components import Firewall from plinth.utils import format_lazy from .errors import TahoeConfigurationError -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/modules/transmission/__init__.py b/plinth/modules/transmission/__init__.py index 0a88a39eb..7f9a0cd69 100644 --- a/plinth/modules/transmission/__init__.py +++ b/plinth/modules/transmission/__init__.py @@ -30,7 +30,7 @@ from plinth.modules.apache.components import Webserver from plinth.modules.firewall.components import Firewall from plinth.modules.users import register_group -from .manifest import backup, clients # noqa, pylint: disable=unused-import +from .manifest import backup, clients # noqa, pylint: disable=unused-import version = 2 diff --git a/plinth/modules/upgrades/__init__.py b/plinth/modules/upgrades/__init__.py index 90ff53f85..9fcfb5d22 100644 --- a/plinth/modules/upgrades/__init__.py +++ b/plinth/modules/upgrades/__init__.py @@ -24,7 +24,7 @@ from plinth import actions from plinth import app as app_module from plinth import menu -from .manifest import backup # noqa, pylint: disable=unused-import +from .manifest import backup # noqa, pylint: disable=unused-import version = 1 diff --git a/plinth/templates/language-selection.html b/plinth/templates/language-selection.html index 8c95bd6e5..152917789 100644 --- a/plinth/templates/language-selection.html +++ b/plinth/templates/language-selection.html @@ -1,7 +1,7 @@ {% extends 'base.html' %} {% comment %} # -# This file is part of Plinth. +# This file is part of FreedomBox. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/plinth/tests/config.py b/plinth/tests/config.py index d4e09d8f8..e586aa2ae 100644 --- a/plinth/tests/config.py +++ b/plinth/tests/config.py @@ -14,7 +14,6 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # - """ Configuration for running tests. @@ -32,6 +31,6 @@ backups_ssh_repo_uuid = 'plinth_test_sshfs' # will be mounted to /media/ # Import config_local to override the default variables try: - from .config_local import * # noqa, pylint: disable=unused-import + from .config_local import * # noqa, pylint: disable=unused-import except ImportError: pass diff --git a/plinth/tests/test_frontpage.py b/plinth/tests/test_frontpage.py index 764cc14b3..1566a5b4b 100644 --- a/plinth/tests/test_frontpage.py +++ b/plinth/tests/test_frontpage.py @@ -86,9 +86,9 @@ def fixture_common_shortcuts(clean_global_shortcuts): shortcuts = [ Shortcut('anon-web-app-component-1', 'name1', 'short4', url='url1'), Shortcut('group1-web-app-component-1', 'Name2', 'Short3', url='url2', - allowed_groups=['group1']), + login_required=True, allowed_groups=['group1']), Shortcut('group2-web-app-component-1', 'name3', 'short2', url='url3', - allowed_groups=['group2']), + login_required=True, allowed_groups=['group2']), Shortcut('anon-non-web-app-component-1', 'name4', 'short1', url=None), ] return shortcuts @@ -142,6 +142,16 @@ def test_shortcut_list_with_username(superuser_run, common_shortcuts): return_list = Shortcut.list(username='user2') assert return_list == [cuts[0], cuts[1], cuts[2], cuts[3]] + cut = Shortcut('group2-web-app-component-1', 'name5', 'short2', url='url4', + login_required=False, allowed_groups=['group3']) + superuser_run.return_value = 'group3' + return_list = Shortcut.list(username='user3') + assert return_list == [cuts[0], cuts[3], cut] + + superuser_run.return_value = 'group4' + return_list = Shortcut.list(username='user4') + assert return_list == [cuts[0], cuts[3], cut] + @pytest.mark.usefixtures('nextcloud_shortcut') def test_add_custom_shortcuts(): diff --git a/plinth/translation.py b/plinth/translation.py index df75dcd18..2f96282d7 100644 --- a/plinth/translation.py +++ b/plinth/translation.py @@ -1,5 +1,5 @@ # -# This file is part of Plinth. +# This file is part of FreedomBox. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -66,7 +66,8 @@ def set_language(request, response, language_code): request.session[translation.LANGUAGE_SESSION_KEY] = language_code else: response.set_cookie( - settings.LANGUAGE_COOKIE_NAME, language_code, + settings.LANGUAGE_COOKIE_NAME, + language_code, max_age=settings.LANGUAGE_COOKIE_AGE, path=settings.LANGUAGE_COOKIE_PATH, domain=settings.LANGUAGE_COOKIE_DOMAIN, diff --git a/static/themes/default/icons/gitweb.png b/static/themes/default/icons/gitweb.png new file mode 100644 index 000000000..9d1a00d36 Binary files /dev/null and b/static/themes/default/icons/gitweb.png differ diff --git a/static/themes/default/icons/gitweb.svg b/static/themes/default/icons/gitweb.svg new file mode 100644 index 000000000..7b74e37ee --- /dev/null +++ b/static/themes/default/icons/gitweb.svg @@ -0,0 +1,73 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + +